Sei sulla pagina 1di 7

0

Ms

Siguiente blog

inSeguridad Informatica

Seleccionar idioma

Wifite haciendonos la

Crackear WPA/WPA2

Crack Wpa/Wpa2 des

Terminologa Wireless

Conceptos Bsicos de

Crack Wpa/Wpa2 con

Crack WPA/WPA2 usa

Manual de AriCrack en Miniguia de Ettercap

Manual de John the rip

Crackear Wep en 6 pa

Instalar Aircrack Suite

Ejecutar Chrome com

Estructura de director

Ejecutar Chromium co

Reparar un Bug de fla

Celular/Mvil/Tablet

Claves WEP/WAP pa

Mirando hacia el futur

Router Keygen (app p

ejemplo: ;c:\john179\run\ En linux: Bueno ac asumo que estn usando algn Debian/Ubuntu por que sino es improbable que estn leyendo este tutorial. Instalamos John the Ripper desde los repositorios de Ubuntu: Abren un terminal y le pegan esto con shift+ctrl+V sudo apt-get install john. Si usan algun linux que no tiene el JTR en sus repositorios:

1. Descarga la ultima versin de John y descomprimir el fichero tar.gz en un directorio. 2. Navegar hasta el directorio src/ donde se encuentran los ficheros fuente y ejecutar uno de los dos siguientes comandos: make clean generic: Para ejecutar una instalacin genrica. make clean <SISTEMA>: Para ejecutar una instalacin especifica para un sistema determinado, esta opcin es til cuando se quiere distribuir el programa en una plataforma especifica (como por ejemplo DOS de windows): make clean dos-djgpp-x86-any make clean win32-cygwin-x86-any make clean linux-x86-64 Los posibles valores pueden ser consultados con ejecutar simplemente el comando makesin ningn parmetro, de esta forma john listar los posibles valores que admitir el campo <SISTEMA> Esta opcin es recomendable en instalaciones que se mueven a una maquina distinta, por cuestiones de rendimiento, ya que cuando se ejecuta con la opcingeneric en tiempo de compilacin se instancian caractersticas que mejoran el rendimiento de john en el sistema donde se esta creando la instalacin, sin embargo si esta misma instalacin se mueve a un sistema operativo con una arquitectura distinta el resultado puede ser distinto al esperado. 3. Una vez ejecutado el comando make correspondiente a la plataforma (o generic) navegar hasta el directorio run/ desde all ejecutar el comando: ./john test
B) Como usarlo. Existen varias formas de hacerlo, dependiendo de cual sea nuestro objetivo (desencriptar todo el archivo, obtener solo unos pocos y rapidamente, etc) Supongamos que obtuvimos un archivo passfile.txt, supongamos para hacer mas simple los comandos que estamos ubicados en el directorio john-16/run y que alli tambien se encuentra el passfile.txt. los distintos metodos serian algo asi john -s passfile.txt Metodo de ataque en modo simple, es el mas rapido de todos y consiste en unas pocas reglas y palabras simples que el JTR intenta, no sirve para obtener una gran cantidad de passwords, pero tarda muy poco y algunas saca. john passfile.txt Metodo standard, prueba una serie de reglas mas complejas que en el caso anterior (aclaro, todas las reglas usadas por el JTR se hallan en el archivo jtr.ini, para aquellos que les gusta bucear en los softwares, pueden ser modificadas, recomendable solo para usuarios avanzados). Estas reglas estan clasificadas por grupos, elevando el nivel de dificultad (y de cantidad de pruebas, a medida que transcurre el tiempo). Asi veran que para los primeros casos (aparece un 1 y un 2), usa muchas combinaciones con los usuarios (user4, 3user, resu, etc), palabras muy usadas por ejemplo password, y palabras que ya han sido desfridas en ataques anteriores (y que JTR guarda en el archivo john.pot). Si ud teclean cualquier letra mientras JTr esta en esta fase aparecera una leyenda qe les informara cual es el progreso del mismo, palabras halladas, % del archivo que ya ha testeado y cuanto tiempo ha tardado. Suele sacar un buen numero de passwords (entre un 5 y un 20 %), dependiendo entre otras cosas del tamao del POT del JTR.Digamos que cuanto mas saca, mas aprende. No hay un tiempo de finalizacion cercano, el simplemente va cambiando la serie de reglas a testear. Las reglas del tercer grupo por ejemplo tardan muchiiiiisimo, (honestamente no se si tiene un 4 grupo, creo que si, nunca tuve

tanta paciencia para terminar las del 3). Por lo cual suelo cortar cuando termina las reglas del 2 grupo, para ello usar Control + C john -i:alpha passfile.txt john -i:digits passfile.txt john -i:all passfile.txt Metodo incremental, aca simplemente prueba TODAS las combinaciones posibles dentro de las limitaciones del JTR y por el parametro detras de i: (alpha, all, digits, y hay otro para caracteres especiales) Limitaciones del JTR, recordar que este solo sirve para palabras entre 1 y 8 caracteres, no es posible sacar de esta forma palabras con 9 caracteres o mas. Alpha: solo testea palabras compuestas por caracteres Digits: Usa solo numeros para las combinaciones All: testea todos los caracteres posibles, numeros, letras, etc. Obviamente, este metodo serviria para desencritar la totalidad de la passfile de hasta 8 caracteres, el problema que estamos hablando de un tiempo que debe ser medido en dias y dias. john -w:lista.txt passfile.txt Metodo de ataque a traves de una wordlist. Quizas el mejor metodo de desencriptacion y uno de los menos conocidos. En lista.txt tenemos simplemente una lista fabricada con palabras,las mejores son aquellas preparadas con pases y usuarios de nuestras wordlist de ataque, una herramienta muy util es el raptor, abren la wordlist con el, y la convierten a un archivo simple (genera una nueva lista con los user y paswords encolumnadas) hay personas que usan directamente diccionarios, en ingles, espaol, japones, ruso, etc, se consiguen en la red, y si mi memoria no falla en el cubil del novato habia direcciones con algunos de ellos. Suelen ser archivos de varias decenas de megas, el mas grande que vi superaba el giga, a mi no me han resultado particularmente efectivos con la contra que el tiempo de ataque se estira enormemente. Listas sacadas de nuestras wordlist, nuevas y viejas son mucho mas efectivas, corren en un tiempo aceptable y da muy buenos resultados (entre el 30% y 40%), el JTR trata cada palabra de lista.txt con los algoritmos de encriptacion y verifica que coincidan o no con la password encriptada. john -w:lista.txt -rules pasfile.txt Variante del metodo anterior, ademas de usar la lista de palabras que hemos fabricado, le aplica a estas la serie de reglas que figuran en el john.ini, aumentando su efectividad ,el tamao de las palabras a comprobar y el tiempo usado. john -show passfile.txt Muestra por pantalla, los resultados obtenidos por jtr. john -show passfile.txt > passwords.txt Guarda en el archivo passwords.txt todas las palabras que han sido desencriptadas, con el formato U agregando en la ultima linea, cuantas han sido desencriptadas y cuanta faltan. Para obtener resultados efectivos, digamos mas del 50 % de desencriptacion en un tiempo razonable (menos de 2 horas), se utilizan combinaciones de lo anterior. Asi por ejemplo es comun que se trate al principio con un ataque standard hasta nivel 1 o 2, y luego con ataques de wordlist, dejando para el final el ataque con wordlist y reglas, donde esta wordlist es una lista relativamente pequea (de 10000 o menos) y alta efectividad. despues escribire como fabricar alguna de este tipo. C) El metodo de encriptacion. No existe un unico metodo de encriptacion, el JTR reconoce los siguientes DES BSDI - MD5 - BF - AFS - LM, de estos los mas populares son el DES, casi el standar, y el MD5 el metodo mas molesto para descifrar. Cuando JTR esta desencriptando un archivo, reconoce automaticamente con cual esta encriptado (generalmente se guardan unos bytes en la misma palabra encriptada que informa cual es ese metodo). Desgraciadamente si encuentra que son varios tipos distintos de encriptacion,

solo actua usando aquel con el cual la mayaria fue encriptado, a menos claro que nosotros le indiquemos lo contrario. Ejemplo, supongamos que poseemos una passfile o combinaciones de ellas, que estan encriptadas con el metodo DES y una parte con el Free MD5. Si usamos el ataque standard john passfile.txt solo atacara aquellas que sean DES encriptadas (o free MD5), pero no ambas, el segundo grupo sera descartado en ese ataque. Si nosotros deseamos posteriormente desencriptar las que faltan debemos usar la siguiente linea john passfile.txt format:MD5 o format:DES con lo cual forzaremos al JTR a actuar solo sobre el grupo que antes fue ignorado. D) Los saltos. Los saltos son una complicacion mas que nos ponen a la hora de desencriptar un archivo de passwords, lo que voy a decir no es totalmente correcto, pero sirve para dar una idea, digamos que los saltos son distintos grupos de encriptacion dentro de un grupo mayor (DES, MD5, BF, etc), existen 4048 saltos posibles que son detectados por el JTR (cuando inicia un ataque informa la cantidad de saltos del archivo), estos saltos tienen una influencia enorme en el tiempo que se tarda en desencriptar, si tiene menos de 100 saltos, los ataques son muy rapidos, cuando se superan los 1000 son terriblemente lentos. Existen algunas posibilidades de optimizar aquellos archivos que presentan muchismos saltos john passfile.txt -salts:NN Donde NN es un numero, este comando fuerza a que JTR ignore todos aquellos saltos que no han sido usados por lo menos NN veces, con lo cual el ataque se hace sobre un grupo mas reducido de saltos (y por supuesto de passwords). Es comun que de una passfile de 500 user:pass, y unos 400 saltos, solo queden menos de 100 user:pass y unos 10 saltos usando john passfile.txt -salts:5 Se gana mucha velocidad pero se pierden muchas palabras. Tambien pueden editar las passfile y armar una lista de pocos saltos, para ello solo deben ordenear el archivo por las passwords encriptadas, los dos primeros caracteres representan el salto, caracteres iguales son el mismo salto. Hay mas comandos para el jtr, si quieren ver cuales son tecleen john, y aparecera la lista completa junto con una pequea explicacion sobre su uso. los que puse son los mas usados generalemente. E) Optimizando el JTR. Para tratar de sacarle mas jugo al JTR, estos son unos pequeos trucos. Si Uds. tienen una idea de cual es el formato de las paswords que quieren desencriptar, construyan las listas de ataque para el metodo de wordlist con ese formato, no pierdan tiempo con palabras que saben que no pueden estar. Siempre agreguen a sus listas, las listas de usuarios del archivo de passwords encriptadas. USEN el archivo PASSWORDS.LST, es un archivito que viene con el JTR y hay unas 2000 passwords muy, pero muy usadas. Recuerden ordenar todas las listas de ataques. Mejoren los ataques incrementales (john -i:opcion passfile.txt), modi- ficando el jtr.ini. Por ejemplo busquen dentro del ini lo siguiente # Incremental modes [Incremental:All] File = ~/all.chr MinLen = 1 MaxLen = 8 CharCount = 95 [Incremental:Alpha] File = ~/alpha.chr MinLen = 1 MaxLen = 8 CharCount = 10 [Incremental:Digits] File = ~/digits.chr MinLen = 1 MaxLen = 7 CharCount = 10 [Incremental:LanMan] File = ~/lanman.chr MinLen = 0 MaxLen = 7 CharCount = 69 Esto controla cual es la longitud minima y maxima para todos los ataques incrementales, si la passfile es ccbill por ejemplo, y ud, quieren usar el metodo i:all modifiquen MinLen = 1 MaxLen = 8 por MinLen = 6 MaxLen = 8 Para probar solamente palabras entre 6 y caracteres, lo mismo con respecto a sitios verotel que usan combinaciones de 6 numeros (o algo asi), modificando la seccion correspondiente. Por ultimo, para fabricar buenas listas de ataques para metodos de wordlist y reglas, usen el mismo JTR, en particular el archivo JTR.POT (recuerden que alli, graba las paswords que ya desencripto). Para ello usen el programita de Gaamoa, Pothead, el cual genera del archivo JOHN.POT una lista con todas las palabras desencriptadas ordenadas por FRECUENCIA de aparicion, asi las primeras han sido halladas mas veces que las ultimas. Tomen de esa lista las primeras 10000 o 15000 y obtendran una excelente lista de ataque para JTR. Esto es una pequea explicacion sobre el JTR y su uso, ahora viene un pequeo trabajito practico, como para probar los conocimientos. La idea la tome de securibox, donde uno de los miebros (V) posteo una vieja passfile o armo una.

Esto es algo similar, solo que la he divido en tres partes, cada una de ella algo mas compleja que la anterior, y a las cuales les he agregado deliveradamente, unas pequeas trampas (que reproducen casos que se presentan realmente), he usado passfile no demasiado viejas. No mencionare de que sitios las he sacado, son combinaciones de ellos, ninguna es de un solo sitio, algunos son sitios bastante buscados, otros no tanto, pero en todos los casos lo que obtengan les servira como wordlist para ataques de fuerza bruta. El objetivo es tratar de desencriptar la mayor cantidad posible, en un tiempo razonable, posteando que metodos usaron, y cual fue el resultado (por favor, no postear las pases desencriptadas), y tratando de ver cuales son las dudas que surjan, para poder responderlas entre todos.

at 07:17 Labels: Seguridad

Recomendar esto en Google

5 comentarios:
Dave Ozcan 6 de enero de 2013 10:47

Responder Respuestas Annimo 25 de febrero de 2013 15:51 Borr sin querer tu pregunta dave, creo que preguntabas que sifnigicaba guesses time etc,guesses es el numero de hashes desencryptados que no estan en el archivo .pot todavia, que es el archivo donde JTR guarda los passwords que encuentra, c/s (en pocas palabras es una medida de la velocidad de tu pc) son los passwords candidatos que puede machear por segundo. Si seguis con la duda pregunta denuevo esta vez no lo borro. Responder

Annimo 5 de abril de 2013 10:21 Hola, est muy bueno el instructivo. Quisiera hacerte una pregunta para ver si me puedes orientar. Tengo un archivo shadow que tiene una contrasea que necesito obtener. De la contrasea conozco los primeros 4 caracteres (son cuatro letras), puede ser que tenga nmeros y caracteres "$" (pesos) y/o "@" (arroba), contando los 4 caracteres que conozco no debera tener ms de 9. He ledo varios helps e intructivos pero no me queda claro dnde debera incluir la regla y qu sintaxis debera tener. Debera incluirla en seccin List.Rules:Single? O debera realizar una bsqueda incremental anclando los primeros 4 caracteres? Muchas gracias por toda la claridad que puedas aportarme. Un saludo cordial, Responder

db

6 de abril de 2013 21:30

Ya que sabes parte te diria que uses el modo externo tenes que modificar el john.ini primero y despues llamar como se explica

arriba Para el caso ese que me decis, o creas una funcion nueva o modificas una parecida por ejemplo knownForce. Avisno no lo probe no estoy en mi pc ahora mismo siquiera puede tener errores la idea orientarte en que hacer te quedaria algo asi: [List.External:EJEMPLO] int last; // Last character position, zero-based int lastofs; // Last character position offset into charset[] int lastid; // Current character index in the last position int id[0x7f]; // Current character indices for other positions int charset[0x7f00]; // Character sets, 0x100 elements for each position void init() { int length; int pos, ofs, i, c; //Suponiendo que las primeras cuatro letras que sabes son "Hola" charset[0] = "H"; charset[1] = "o"; charset[2] = "l"; charset[3] = "a"; length = 9; // Password length to try /* This defines the character sets positions */ pos = 3; //Arranca de la 5 posicion while (pos < length) { ofs = pos++ << 8; i = 0; c = 'a'; while (c <= 'z') charset[ofs + i++] = c++; c = 'A'; while (c <= 'Z') charset[ofs + i++] = c++; c = '0'; while (c <= '9') charset[ofs + i++] = c++; charset[ofs + i++] = '$'; charset[ofs + i++] = '@'; charset[ofs + i] = 0; } last = length - 1; pos = -1; while (++pos <= last) word[pos] = charset[id[pos] = pos << 8]; lastid = (lastofs = last << 8) - 1; word[pos] = 0; } void generate() { int pos; /* Handle the typical case specially */ if (word[last] = charset[++lastid]) return; word[pos = last] = charset[lastid = lastofs]; while (pos--) { // Have a preceding position? if (word[pos] = charset[++id[pos]]) return; for different character

word[pos] = charset[id[pos] = pos << 8]; } word = 0; // We're done } void restore() { int i, c; /* Calculate the current length and infer the character indices */ last = 0; while (c = word[last]) { i = lastofs = last << 8; while (charset[i] != c && charset[i]) i++; if (!charset[i]) i = lastofs; // Not found id[last++] = i; } lastid = id[--last]; } Responder

Annimo 19 de abril de 2013 10:47 esta chido Responder

Comentar como:

Entrada ms reciente

Pgina principal

Entrada antigua

Suscribirse a: Enviar comentarios (Atom)

Plantilla Awesome Inc.. Con la tecnologa de Blogger.

Potrebbero piacerti anche