Anda di halaman 1dari 23

\\\\\\\\\\\\ CURSO orientacin HACKER ////////////// //////////// By DarKh|s.exe (n+1) \\\\\\\\\\\\\\ http://www.cursohacker.com informacion@cursohacker.

.com Disclamer: NO se asume ninguna responsabilidad debida al mal empleo de la informacin aqu contenida, puesto que este texto solamente tiene fines educativos y en ningn caso pretende incitar a nadie a cometer ningn delito ya sea informtico o de otra ndole.

Tablas Rainbow en detalle (Criptografa)

Se preguntaran que son las tablas Rainbow o "tablas arcoiris" :P. La respuesta es relativamente simple, son un tipo de tablas de bsqueda especial que permiten recuperar passwords usando sus hashes. Estas tablas estn basadas en la teora de cambio de tiempo por espacio. La teora de cambio de tiempo por espacio (tiempo-espacio) es como una balanza, en este caso, necesitaremos ms espacio para reducir el tiempo, y como el tiempo es oro, las tablas rainbow son muy rpidas, y en este manual veremos como funcionan bsicamente. Philippe Oechslin (a que no pueden pronunciarlo ;P) fue el primero quien utiliz estas tablas en el programa Ophcrack. Ophcrack es una herramienta para crackear contraseas de Windows, y est basado justamente en las tablas Rainbow. Oechslin se bas en la teora de cambio de tiempo por espacio, desarrollada en el ao 1980 por Martin Hellman, luego fue usada por Ron Rivest en el ao 1982, y desde entonces no fue optimizado ni desarrollado nuevos avances, Philippe logr crear un anlisis criptogrfico ms eficiente basado en las teoras anteriores. Ahora las tablas rainbow se utilizan para romper gran variedad de hashes y algoritmos criptogrficos. Es importante mencionar que cada tabla rainbow est creada para slo una funcin hash, es decir, hay tablas rainbow solamente para MD5, LM, NTLM, etc.

Estas tablas pueden crackear fcilmente una contrasea de entre 1 y 16 caracteres. Ya sabemos que la funcin de hash es unilateral, o sea, no existe una funcin inversa, luego de encriptar texto plano, por ejemplo una clave de acceso, convirtindola en un hash, luego el hash no puede ser desencriptado para saber que esconda, bsicamente porque los hashes funcionan as, quiz recuerden las propiedades de los hashes en la leccin de la semana de criptografa, si no la recuerden lanla o esperen a que les llegue ;-). Si se quiere averiguar que texto se oculta bajo determinado hash, hay dos mtodos bsicos: Hashear cada texto que se ocurra uno por uno, y compararlo con el hash original Hashear cada texto que se ocurra uno por uno, pero guardarlos en una tabla ordenada, para que luego la comparacin sea ms rpida, entonces no generamos nuevamente los hashes.

Por tanto ganamos en velocidad, y se utilizan menos recursos de memoria Ram y procesador que hasheando cada posibilidad y comparando. Las tablas rainbow son una optimizacin eficiente del segundo punto, te dan todo en bandeja de plata :D. Ok, entonces las tablas rainbow son para realizar ataques por fuerza bruta, pero de forma bastante eficiente, y sin duda lo que caracteriza utilizar estas tablas es que adems de utilizar bastante espacio en disco, es que las bsquedas son muy rpidas, veamos su funcionamiento: En las tablas rainbow se utiliza una funcin de reduccin que ingresa hashes y devuelve texto plano, pero NO es una funcin inversa, la funcin de reduccin nunca resultar en el texto que produjo el hash. Por ejemplo si pasamos una clave a travs de la funcin MD5, tendramos: MD5("493823") -> "222f00dc4b7f9131c89cff641d1a8c50". Y para este caso aplicaremos una funcin de reduccin R() que simplemente recoger los primeros seis nmeros del hash: R("222f00dc4b7f9131c89cff641d1a8c50") -> "222004". Y obtenemos un texto plano de 6 dgitos del hash reducido, eso es bsicamente lo que hace la funcin de reduccin, y en esto se basan las tablas rainbow.

Ventajas y desventajas de utilizar tablas rainbow: Ventajas La principal ventaja de utilizar tablas rainbow es el menor espacio de almacenamiento necesario en comparacin con guardar todas las posibles claves y sus hashes y el menor tiempo de bsqueda. Adems existe mayor probabilidad de encontrar contraseas a partir de un hash que utilizando ataques de diccionario, pero este sistema no es tan exitoso como la fuerza bruta. Luego de tener las tablas generadas, el tiempo para crackear un hash es poco. Las tablas rainbow estn generadas para un amplio rango de algoritmos de hash, como MD5, SHA-1, LM, RIPEMD, etc. El nmero de bsquedas es reducido, comparado con el mtodo de fuerza bruta convencional. Desventajas La gran desventaja es el tiempo en el cual se pre-computan las tablas, o sea, el tiempo de generacin y el esfuerzo que requiere. Adems, si se cambia el juego de caracteres, se debern rehacer las tablas. Mientras el largo de la contrasea aumente, aumentar el nmero de posibilidades, y mientras el espacio de claves (cantidad de caracteres distintos) aumente, con ello ms lento se har factible realizar un ataque a hashes utilizando tablas rainbow. Esto se debe al aumento de tamao de la tabla. Adems, s el juego de caracteres aumenta mucho, el tiempo de precomputacin se convierte en un largo y lento proceso y la probabilidad de xito disminuye. Por ejemplo, s el juego de caracteres es alpha-numeric-symbol la cantidad de caracteres es 76 14 y para generar una tabla ptima y eficiente se tardara ms de 3 meses o muchos GB en disco para generarla. Comparacin tcnicas de cracking de contraseas:
# Espacio de claves Tiempo de precomputo Tiempo de bsqueda Almacenamiento Ataque de diccionario 23.109 1.05 segundos < 1 segundo (0,165) ~947 KB Fuerza bruta 8.031.810.176 96,54 horas (estimado) Depende del orden/funcin de bsqueda 300 GB! Tablas Rainbow 8.031.810.176 20,15 horas 2,6 segundos mximo ~611 MB

requerido

Como se construye una tabla rainbow En las tablas rainbow no se almacenan todas las posibles combinaciones y sus correspondientes hash, sino que solamente se almacenan algunas de ellas. Se guardan de tal manera que se puede deducir las que no estn guardadas a partir de las que estn. Esto se puede gracias a la funcin de reduccin, en la tabla se guardan cadenas de hash a partir de esta funcin. La funcin de reduccin ingresa un hash y devuelve texto plano. Se puede elegir cualquier algoritmo criptogrfico (MD5, LM, SHA1, etc), siempre que cumpla con lo anterior. Para generar una cadena de hashes, se comienza calculando el hash de una contrasea elegida al azar. El resultado es pasado a una funcin de reduccin, el texto plano devuelto es hasheado nuevamente, el cual pasa, otra vez, a la funcin de reduccin. As sucesivamente. Al final se desecha toda la cadena con excepcin de la primera contrasea y el ltimo hash calculado, los cuales son almacenados dentro de la tabla. La primera contrasea y el ltimo hash de la cadena comprenden una entrada en la tabla rainbow.

As una cadena que contiene miles de funciones de un solo sentido, se representa en un texto y un hash.

Al final la tabla contara con entradas parecidas a lo siguiente: Primer contrasea de cadena ltimo hash calculado ntvglaband 108a21b81de05cc7448b992678be3e33 S0rdromo 9179538774ac2c0caad3b435b51404ee merkk99 19fd2590e6f8dd8a25e6c6a091ddab09 : : 192i6877 3f6288969a7cab11c633b63571044597 Pueden crackear esos hashes LM para probar, divirtanse ;) Si an no saben hacerlo, sigan leyendo... Por tanto, cuanto ms filas se tenga ms combinaciones de contraseas tendremos y ms probabilidad de encontrar una clave a partir de su hash. Cuando crackean claves, o sea, cuando buscamos la contrasea que esconde un hash, se realiza el siguiente proceso: Se busca el hash original en la tabla, si no se encuentra, se aplica la funcin de reduccin al hash, el resultante texto plano se hashea y este se busca en la tabla. Esto se repite hasta que el hash aparece en la tabla. Luego de encontrado el hash, se conoce la cadena que cuenta con la contrasea que produjo el hash. Lo nico que falta hacer es volver a hashear esa cadena y comparar los resultados con el hash original.

Notar que no es posible ir hacia atrs desde el punto dnde encontramos coincidencias.

La funcin de reduccin es usada para generar la tabla como para buscar resultados en ella. La estructura de la tabla y su funcin de reduccin, garantiza que el hash coincidir con el hash final de alguna de las cadenas. El contenido de la tabla no depende de la entrada del algoritmo. Es creada una vez y luego utilizada repetidamente para las b squedas sin sufrir alteracin alguna. El resultado final de la generacin, es una tabla que contiene estadsticamente una alta probabilidad de revelar una contrasea en un corto perodo de tiempo, generalmente menos de un minuto. El tiempo depende de cmo se haya creado la tabla, pero si es eficiente no se tardar ms de un minuto encontrar el texto plano que gener el hash. La probabilidad de xito de la tabla depende en los parmetros que se hayan usado para generarla, esto es muy importante (ya lo veremos cuando generemos nuestra propias tablas). Esto incluye el juego de caracteres usado, largo de las contraseas, largo de las cadenas, cantidad de cadenas (filas) de la tabla. La probabilidad de acierto est definida por la probabilidad de encontrar un texto plano a partir de uno encriptado. En el caso de contraseas, la contrasea es el texto plano, y el hash de la password el cifrado/encriptado, por lo tanto, la probabilidad de xito, es la probabilidad de recuperar la contrasea original a partir del hash. RainbowCrack No, no es una nueva droga callejera... Este programa sirve para crackear contraseas, fue desarrollado por Zhu Shuanglei, luego de que nuestro amigo Philippe Oechslin desarrollara tablas rainbow eficientes. RainbowCrack es un programa disponible tanto para sistemas Windows como para GNU/Linux. Es libre (cdigo fuente disponible) y muy personalizable, permite romper gran cantidad de hashes, podremos crear nuestras propias tablas rainbow, utilizando herramientas sencillas, que iremos viendo en este manual. El programa se descarga desde http://www.antsight.com/zsl/rainbowcrack/ su pgina oficial:

Luego de descomprimir o compilar el programa, tendremos el programa rcrack para empezar a crackear, pero antes necesitamos las tablas, estas las podemos descargar de Internet, o bien, generarlas nosotros.

Pueden encontrar tablas rainbow http://www.freerainbowtables.com/ http://rainbowtables.ddl.cx/

para

usar

en:

Ya saben dnde las pueden descargar, ahora les explicaremos como generar sus propias tablas. Generando nuestras tablas Para esto tenemos herramientas que nos ayudaran en nuestro camino a la gloria. Rtgen es una aplicacin que se distribuye junto al paquete de RainbowCrack. En su versin 1.2 (ltima al da de hoy) permite generar tablas para hashes lm, md5 y sha1. Dmosle manija y echmosle andar... Si ejecutamos rtgen sin parmetros nos dar la clsica ayuda, como debe ser. Los parmetros que debemos pasarle son estos: rtgen algoritmo hash \ juego de caracteres \ largo mnimo contrasea \ largo mximo \ index de tabla \ largo de cadena \ cantidad de cadenas \ sufijo de archivo \ [-bench] Ejemplos: rtgen rtgen rtgen rtgen lm alpha 1 7 md5 byte 4 4 sha1 numeric lm alpha 1 7 0 0 1 0 100 16 test 100 16 test 10 0 100 16 test bench

Explicacin de los parmetros: El primer parmetro a pasar obligatoriamente, es el algoritmo hash, los disponibles son lm, md5 y sha1 que son los ms comunes y utilizados. El segundo parmetro a pasar es el juego de caracteres, se debe pasar un nombre del juego de caracteres representado en el archivo charset.txt, el cual debe estar dentro del mismo directorio de ejecucin. (Recomendacin ver el archivo charset.txt) Largo mnimo de contrasea, se refiere a cuantos caracteres tendrn los texto plano de los hashes. Largo mximo es la cantidad mxima de caracteres que tendr. Claro que cuanto ms largo sea el texto plano del hash, ms posibilidades habr y ms cadenas que generar. Index de tabla es el ndice de la tabla, se refiere al nmero que tendr el nombre del archivo.

Largo de cadena indica la cantidad en caracteres que tendrn las cadenas a generar. Cantidad de cadenas ser cuantas cadenas hay que generar (filas de la tabla) Sufijo de archivo, es para diferenciar entre archivos con iguales caractersticas, me refiero a haber creado otros archivos con los mismos parmetros anteriores, entonces para diferencias se coloca un sufijo. El parmetro bench (de benchmark) es para simular, probar los tiempos y resultados de crear esa tabla. Generando tablas en modo grfico Una opcin ms linda visualmente, que nos da mucho ms posibilidades que rtgen. Winrtgen una especie de front-end recargado de rtgen, que aade nuevas funciones. En primer lugar pueden descargar este programa desarrollado para sistemas MS Windows desde la siguiente direccin: Winrtgen: http://www.oxid.it/downloads/winrtgen.zip Luego de descomprimir el archivo descargado y ejecutar el archivo winrtgen.exe observarn una ventana que tiene dos columnas y varias filas, adems 6 botones en su parte inferior. Para configurar los parmetros de nuestra nueva tabla debemos elegir el primer botn Add Table y les aparecer algo simila r a lo correspondiente en la siguiente imagen.

Podrn percibir que el Winrtgen tiene los mismos parmetros que el rtgen, por lo tanto no los explicar de nuevo. En primer lugar elegimos el algoritmo para usar en la tabla, en la opcin Hash, podrn notar que disponen de ms algoritmos que con rtgen. Min Len y Max Len se refieren al largo mnimo y mximo que tendrn las contraseas a crackear. Chain Len es el largo de la cadena, cuanto ms larga es la cadena ms tiempo de procesamiento y ms probabilidad de xito, pero el tamao de la tabla no se afecta. Chain Count, indica cuantas cadenas generar, cuanto mayor sea el nmero, ms grande ser la tabla y ms posibilidad de xito, se puede ver en tiempo real en Table properties (propiedades de tabla) como varan los indicadores. Las propiedades de tabla indican cuantas claves son posibles con el juego de caracteres seleccionado (Charset) En N of tables se indica cuantas tablas generar. Porqu crear ms de una tabla ? Para tener mayor probabilidad de xito una sola tabla sera muy grande y tardara ms en el proceso de bsqueda. Por ello creamos

varias, ya que creando una sola muy grande deberemos ordenarla, lo que llevara bastante tiempo de proceso y de bsqueda. Reduciendo el tamao de cada tabla y dividindola en varias, tendremos un uso ms eficiente de la memoria y el ordenamiento de cada una sera ms veloz. Debemos elegir el juego de caracteres que queremos utilizar, podemos utilizar las que vienen predefinidas o editar el archivo charset.txt nosotros mismos, creando o modificando juegos de caracteres. Muy importante es el botn de Benchmark este realizar un simulacro de la generacin de la tabla con los parmetros y opciones indicados.

En la imagen se observa un Benchmark explicaremos los datos que nos entrega:

de

generar

tablas,

Hash speed ser la velocidad de generar hashes por segundo. Step speed la cantidad de pasos que har por segundo al generar la tabla. Table precomputation time, es el tiempo que llevar generar una tabla en ese computador. Total precomputation time, es el tiempo total de generar las tablas, en la imagen creamos 3 tablas, por tanto ser el tiempo de creacin de cada tabla multiplicado por 3, los tiempos pueden ser horas, das, aos, etc... Max cryptanalysis time, tiempo mximo de criptoanlisis, es el tiempo que llevara encontrar una coincidencia en las tablas, cuanto ms filas/ms cadenas (Chain Count) tenga la tabla ms rpido ser el proceso de encontrar una coincidencia, pero la tabla ser ms grande, nunca olviden la teora de cambio de tiempo por espacio. Los datos del simulacro se cumplen en la realidad cuando se genera la tabla con un pequeo margen de error.

Casos prcticos Tablas Rainbow Vs. Brute Force Compararemos dos tcnicas de cracking de hashes; tablas rainbow y brute force. En primer lugar demostraremos de forma prctica como crackear contraseas con el juego de caracteres ASDFGHJKL. Generaremos una tabla rainbow utilizando winrtgen, y crackearemos con rainbowcrack. Posteriormente crackearemos contraseas utilizando jtr y el mismo juego de caracteres. Quien ser el ganador para este primer reto, se lo imaginan ? Vamos a ensuciarnos las manos un poco... ;)

Especificamos los parmetros como se muestra en la imagen. La tabla de 458 MB se generar en 13 minutos aproximadamente, tendr una probabilidad de xito del 100% Tambin se pudiera haber realizado la misma tabla con el siguiente comando de rtgen:

rtgen lm CursoHacker 1 7 0 24 30000000 algo Les comento que generar tablas utiliza toda la capacidad del procesador, al igual que crackear contraseas con rainbowcrack. Luego de dar ok dos veces se comenzar a generar la tabla, como mostramos en la imagen a continuacin.

Mientras avance, se mostrar el progreso de generacin. Luego de completado tendremos el archivo.

Se habrn dado cuenta que los archivos se generan con una nomenclatura especial, los archivos que son generados dentro del directorio de winrtgen, tienen la particularidad que sus nombres comienzan con el algoritmo hash que fueron generadas esas tablas, luego el nombre del juego de caracteres usado, que debe estar especificado en el archivo charset.txt tambin dentro del mismo directorio, luego del primer smbolo de numeral # indica el mnimo y mximo nmero de caracteres que contiene la contrasea. El nombre del archivo contiene todos los parmetros que especificamos al crearla, el nombre del archivo no debe ser cambiado, porque es parte de los datos que toma el programa crackeador, por ejemplo el rainbowcrack. Luego de tener la tabla generada, pasamos a ejecutar el rainbowcrack. No olviden que deben tener el archivo con las passwords, pueden haberlo obtenido con pwdump. En nuestro caso utilizamos pwdump2 y dejamos solamente tres usuarios en el archivo de hashes. Nuestro archivo de hashes contiene lo siguiente: ganja:1005:b44789a28ab64d03aad3b435b51404ee:970acf0644a6cb 7e6da9e10174827590::: kuntakinte:1006:85367c4a7c154243b94745df070199fd:e83f97aacf4 0bf7cc3248ad3b6bf3ddf::: salomon:1004:1c82ca536a599f103e04f4ef84e62dfa:f05eda915b9355 4aa8a0ebfd2fcaf2e9::: Los usuarios son, ganja, kuntakinte y salomon.

Primero debemos copiar el archivo charset.txt desde el directorio de winrtgen haca el directorio del rainbowcrack, esto es para tener el mismo juego de caracteres en ambos, de lo contrario al crackear nos dar error de redundancia, al comprobar que el juego de caracteres no existe. Abrimos una consola de comandos, y luego nos ubicamos en el directorio de los ejecutables de rainbowcrack. El primer paso es reordenar la tabla rainbow, para ello utilizamos el programa rtsort utilizando el comando con su propio nombre.

Luego de reordenarla, pasamos al cracking con tablas rainbow, el momento esperado, dnde la magia se hace realidad, y develamos el secreto del ratn Prez ;P El ejecutable de rainbowcrack es rcrack lo ejecutamos y observamos maravillados:

Luego de haber ejecutado el comando : rcrack.exe lm_CursoHacker#1-7_0_24x30000000_oxid#000.rt f hashes.local

El primer parmetro es la tabla rainbow a utilizar, que es justamente la que creamos anteriormente, luego del parmetro f especificamos el archivo de hashes que ya saben cual era el contenido, porque lo dije en la pgina anterior ;P Como habrn podido observar en la imagen anterior, todas las contraseas fueron descubiertas, el tiempo que llev realizar toda la operacin fue de 19.75 segundos, de los cuales 19.72 segundos fueron de la lectura y verificacin del archivo de tablas. Y 0.03 segundos fueron del anlisis criptogrfico. Ahora vamos con JTR (John The Ripper), lo primero es crear el juego de caracteres y configurar el archivo john.ini, les explicamos como: Si todava no lo tienen en su sistema se lo descargan desde: http://www.openwall.com/john/ Luego de tenerlo y orejearlo un poco, debemos editar el archivo john.pot y dejarlo solamente con la siguiente lnea: $LM$:ASDFGHJKL Eso indica el juego de caracteres que vamos a utilizar. Para crear el archivo con el juego de caracteres ejecutamos el siguiente comando: john-386.exe --make-charset=CursoHacker.chr En pocos segundos tendremos el archivo con el juego de caracteres. A continuacin editamos con cualquier editor de textos el archivo john.ini, buscamos el texto # Incremental modes (sin comillas) all encontraremos las opciones para el crackeo por fuerza bruta. Agregamos la siguientes lneas: [Incremental:CH] File = $JOHN/CursoHacker.chr MinLen = 0 MaxLen = 7 CharCount = 9 Como sabrn, o no? Lo que all se indica es el archivo que contiene el juego de caracteres, el largo mnimo y mximo de las contraseas, y la cantidad de caracteres distintos del juego de caracteres. Luego de guardar todos los cambios en los archivos, nos dirigimos a la consola de comandos. Ahora es el momento de la verdad, no se asusten y continen...

Ejecutamos john-386.exe i:CH hashes.local Yyyy. magia !!

Tan solo 3 segundos !! Tenemos un ganador !! Como podrn observar muy rpido, las contraseas las separa en 2, porque as trabaja el algoritmo LM. Por tanto nosotros debemos unirlas. En este primer reto, concluimos que era ms simple y eficiente utilizar JTR que generar las tablas rainbow, y crackear con ellas, claro, las tablas se podran haber echo ms grandes y as consumir menos tiempo, pero de todas formas necesitaramos tiempo de procesamiento en generarlas y/o descargarlas de internet, por tanto y sin dudas JTR es ms eficiente, hagamos otra prueba para comprobar cuando utilizar una opcin u otra. Prueba N 2 En esta prueba prctica crackearemos contraseas con el juego de caracteres alfa (solo letras), generamos la tabla rainbow, como ya sabemos, y seleccionamos el juego de caracteres alpha. Crackeamos las contraseas de 3 usuarios utilizando rainbowcrack:

Como habrn observado, se descubrieron todas las contraseas en un tiempo total de 50 segundos. Ahora veamos que tal nos va con el JTR. Ejecutaremos el JTR tambin utilizando el juego de caracteres alpha, y hemos probado solamente descifrar una de las contraseas, para ello utilizamos el parmetro u para indicar la contrasea de que usuario queremos crackear:

JTR tard 26 minutos en descifrar una sola de las contraseas, mientras que con rainbowcrack y una tabla rainbow eficiente (99% probabilidad de xito y 700MB de espacio) tard 50 segundos en las contraseas de 3 usuarios ! Con estas pruebas prcticas concluimos que: Cuanto ms contraseas a deducir tengamos, es preferible utilizar tablas rainbow. Cuando se generen las tablas es importante saber que cuanto ms filas/cadenas ms rpida ser la bsqueda pero ms grande ser la tabla. Y que cuanto ms largas las cadenas y ms cantidad de cadenas por tabla, ms probabilidad de xito. Utilizando winrtgen pueden ir viendo y probando todo esto, no olviden tener un equilibrio, entre tamao de la tabla y tiempo de generacin de la misma.

Estas grficas aclararn su mente:

Por ltimo decirles que es posible crackear un solo hash, utilizando el parmetro h de rcrack. Supongamos que tenemos la siguiente lnea de un archivo de hashes generado por pwdump: salomon:1004:0c2951af971ffcd13bef6036f4d71807:de0e4eea4e5898 f4a0d5a0c3638befc5::: Lo primero que tenemos es el nombre del usuario y su UID (User ID, nmero identificador de usuario), el usuario es salomon y su UID es 1004, luego vienen los hashes de la contrasea, recuerden que en LM se descompone la contrasea en 2 secciones de 7 caracteres y luego se hashean por separado y se juntan en una, por tanto para crackear debemos pasarle el hash verdadero que son 16 caracteres. Entonces a las manos: rcrack.exe lm_CursoHacker#1-7_0_24x30000000_oxid#000.rt h 0c2951af971ffcd1 Con ello tendremos la primer parte deberemos crackear la segunda seccin. OphCrack Otro programa que pueden utilizar es el OphCrack, sencillo y efectivo. Sus tablas estn ms optimizadas que las de rainbowcrack. Y de regalo les voy a dar una pequea introduccin prctica para que disfruten, slo por esta vez, que no se les haga costumbre pedir ms ;P de la contrasea, luego

OphCrack se distribuye tanto como liveCD, o sea, un CD booteable que en este caso ejecuta un sistema operativo GNU/Linux, especficamente SLAX, que a su vez es derivado de Slackware. Este liveCD ya contiene tablas rainbow para LM y NTLM. Tambin se distribuyen programas para ser utilizados tanto en GNU/Linux como en MS Windows, ambos utilizan las libreras GTK+. Luego de descargarnos el programa ophcrack-win32-installer2.4.1.exe para Windows desde SourceForge (la red ms grande de distribucin y alojamiento de software libre) pasamos a la instalacin. El mismo nos da la posibilidad de descargar las tablas rainbow (Ophcrack no cuenta con generador de tablas). Las tablas:

La primera opcin es para instalar las tablas para NTLM desde DVD. Nosotros y ustedes por un tema prctico instalaremos la versin descargable por internet de 776 MB. Esta contiene hashes LM del 99,9% de todas las combinaciones alfanumricas, contraseas con combinaciones de letras y nmeros (cerca de 80 billones de hashes!). Los hashes LM no son case sensitive por eso la diferencia con los hashes NTLM. La tabla que indicamos tiene 283 passwords. La tabla de 8.5 GB contiene hashes NTLM es utilizado cuando se deshabilit LM en la pc, tiene el 99% de hashes posibles, son ms de 7 trillones de hashes! Algunas pruebas prcticas con passwords: Aqu tenemos una tabla que muestra en cuantos segundos fueron descubiertas las siguientes passwords (utilizando hashes LM y la tabla antes mencionada): 0d1n 120 segundos virtualpc 450 segundos m4r1hu4n4 500 segundos

abracadabra 615 segundos elvelozmurcilagohindcomafelizcardilloykiwi 700 segundos Contrasea no encontrada: 4+Y>!6i La ltima contrasea no la encontr, porque esta contiene caracteres que no estn en el juego de caracteres alfanumricos. Luego de instalado y ejecutado:

En primer lugar debemos tomar un archivo que tenga las contraseas, si queremos tomar automticamente el archivo de hashes de la maquina local como se ve en la imagen, presionamos en Load.. > From local SAM Nos cargar los usuarios del sistema y datos sobre sus contraseas. Luego en el botn Tables... podremos elegir que tablas rainbow utilizar. Para comenzar el crackeo le damos al botn Launch. Luego de 2 minutos en nuestro caso, encontramos la contrasea del usuario VirtualOdin que era 0d1n, y luego de 45 minutos termin por recorrer todas las tablas para descifrar las otras contraseas que tenan passwords fuertes y no pudieron ser descubiertas, veamos la imagen:

Como vern muy fcil de utilizar. Encuentran este hermoso programa en: http://ophcrack.sourceforge.net/ El ndice de xito de encontrar contraseas con Ophcrack es del 99,9% para hashes LM y NTLM, o sea, para Windows. Tambin para RainbowCrack utilizando las tablas rainbow que distribuyen para romper varios hashes. Como defenderse de las tablas rainbow en nuestros sistemas? En primera instancia las medidas de seguridad a implementar son: Limitar el acceso fsico, enforzar las contraseas para que sea ms difcil o imposible descubrirlas por mtodos de fuerza bruta, utilizando caracteres especiales. Utilizar protocolos de autenticacin fuertes, protocolos de acceso remoto fuertes, comunicaciones seguras (encriptadas con algoritmos fuertes). Proteger las bases de datos de passwords, investigar las tcnicas de password cracking. Forzar polticas de passwords y realizar entrenamientos de concientizacin y auditoras de passwords. Tener el sistema actualizado. Como medidas bsicas y generales, ahora en cuanto a las tablas rainbow:

Las tablas rainbow no sirven para crackear hashes generados con bits aleatorios. Los llamados salts o semillas aleatori as, son muy efectivos, ya que aaden complejidad y extienden el largo del hash. Actualmente se guardan hashes con salt nativamente en sistemas tipo Unix, BSD, GNU/Linux. El resultado de aadir semillas es un hash derivado del original. Por ejemplo con la siguiente funcin tendramos un hash derivado utilizando semillas aleatorias (salt): hash = MD5 (password . salt) (El punto es un operador de concatenacin) Sistemas Windows NT/2000, XP y Vista (por compatibilidad hacia atrs) utilizan Lan Manager (LM) y NT Lan Manager (NTLM), que no emplean salts, es por eso que la mayora de las tablas rainbow que pueden encontrar sern para romper estos sistemas poco seguros. LM utiliza DES, cifrando con la clave del usuario la constante KGS!@#$%. El hash se divide en dos bloques de 7 caracteres. Si la clave tiene menos de 14 caracteres, se rellena con null. Las contraseas con hash LM son ms proclives a ataques de fuerza bruta y menos seguras que NTLM (NTLMv1 utiliza md4, NTLMv2 utiliza md5), por lo tanto si no es necesaria la compatibilidad hacia atrs con sistemas Windows, es mejor desactivar LM, para conocer el procedimiento, les recomiendo esta lectura: http://support.microsoft.com/kb/299656/ Para contraseas que se guardan en Active Directory de Windows, es mejor utilizar el protocolo Kerberos. Por lo tanto una buena defensa adems de utilizar salts, para evitar este tipo de ataques, es incluir espacios y caracteres raros en las contraseas y aumentar su longitud, por tanto hacerlas ms fuertes ya que todo lo que aumente la complejidad del password ser en beneficio de la seguridad.

Conclusiones Las tablas rainbow se utilizan para descubrir el texto plano que esconden determinados hashes, las tablas son creadas para algoritmos especficos, luego de crear las tablas se pueden utilizar indefinidamente sin modificar su contenido. Se basan en la teora de cambio de tiempo por espacio. Se utiliza la funcin de reduccin para crear las tablas y para realiza bsquedas en ellas. Dependiendo del caso, nos ser ms efectivo utilizar las tablas rainbow u otro sistema de crackeo. Utilizando tablas rainbow destaca su velocidad y probabilidad de xito en casos de tener muchas contraseas a deducir. Por ltimo, se debe tener en cuenta una poltica de contraseas, (muchas de estas sern obvias luego de leer todo el material entregado): * Cambiar las contraseas cada cierto tiempo. * Deben de contener, idealmente, una mezcla de letras, nmeros y otros caracteres. * Deben de tener cierta cantidad de caracteres, ya que cuanto ms cortas, ms fciles de descubrir. * No se debe usar la misma contrasea para sitios distintos. * No deben de contener informacin personal de ningn tipo. * No debe de ser alguna palabra conocida o pertenecer a otro idioma (contramedida para ataques de diccionario). * No deberan ser mutaciones simples de palabras, estas son contraseas dbiles: unouno, tr3s, casa23, elgoog (google al revs). * Aunque al mismo tiempo ha de ser fcilmente recordable, porque no se debe escribir en ningn lugar. * No se deben anotar en ningn lugar, nada de pegatinas en el monitor que diga; Usuario de alumnoz.com es c4nibal contrasea comohombrestmbmujeres ;P Les recomiendo una pgina interesante para crear contraseas fuertes y recordarlas: http://strongpasswordgenerator.com/

Este sitio nos da la posibilidad de crear contraseas fuertes de largo entre 5 y 21 caracteres, utilizar smbolos, y lo ms interesante nos da una pauta de cmo recordar la contrasea, por ejemplo: La contrasea dR5h"75 ser recordada como disney RADIO 5 harry " 7 5. Ya me olvid ;P Claro que utilizando este mtodo pueden generar sus propias contraseas fuertes y recordarlas, la ma es mb1vaAySt3< (la recuerdo como: Me bao 1 vez al Ao y Se tapa 3l <ao XD) Otro servicio muy til que les caer como anillo al dedo si quieren comprobar que tan fuerte es una contrasea, es: http://www.passwordmeter.com/ Dnde adems de decirnos que tan fuerte es una contrasea, nos dar consejos de cmo mejorarla para hacerla ms fuerte e indeducible? Happy cracking !

FIN DEL MANUAL Autor: 0d1n Fecha ltima revisin: 29/05/2008 Elaborada con material ofrecido por autores Annimos y elaboracin propia. El presente material se promueve con fines completamente educativos, por lo que el Autor no se responsabiliza de malos usos o de usos de terceros. Esta prohibida la reproduccin parcial o total del material aqu contenido sin expresa autorizacin de cursohacker.com.