Sie sind auf Seite 1von 10

Manual John The Ripper

Gua para JTR bajo linux en general no importa si tu distro es backtrack tambin es
vlido para ubuntu, debian, fedora o cualquier otra.
Tambien puede interesarte: Como usar JTR para generar claves WPA.
Uno de los sistemas usados para proteger aquellos archivos que se consideran
importantes, consiste en encriptarlos, es decir tomar una frase o palabra normales, y a
traves de un algoritmo convertirlo en algo indescifrable para las personas, este metodo
es usado generalmente con las passfile de muchos sitios (algo asi como del 99 % de los
sitios lo hacen).
Ahora bien, mucha gente que esta en esto, tarde o temprano se encuentra con estos
archivos, y la pregunta entonces es : Y ahora que?, como convierto esto en algo util.
Por suerte existen algunos programas que pueden ayudarnos en la tarea de
desencriptacion, el mas conocido e todos es el John The Ripper (JTR) Siendo una
herramienta bastante importante, noto que no hay demasiado escrito sobre su uso, asi
que intentemos aclarar un poco el tema.
JTR sirve para aquellos archivos User:Password donde la password se halla
encriptada.Prueba combinaciones de palabras siguiendo los algoritmos de
encriptacion,cuando tiene un match del 100 % con una de las passwords la da por
buena.
Es un programa basado en DOS, preparado ademas para correr en 32 bits, por supuesto
cuando se ejecuta abre una ventana de dos, y responde a una serie de comandos en linea
como cualquier programa de la vieja escuela. Actualmente existen algunos prog. que se
montan sobre windows y ofrecen una interfase para acceder al JTR, a mi juicio excepto
una funcionalidad pequea (la de evitarse el escribir el comando) no ofrecen nada
nuevo, y poseen la gran desventaja de no permitirte sacarle el jugo completo al JTR. Por
lo cual solo hablare del JTR en modo nativo (por decirle de alguna manera).

A. La Instalacin.
En Windows:
Van a esta pgina: http://www.openwall.com/john/ leen donde dice Free versions y
click en el lick de Windows que al hacer este minitutorial es
http://www.openwall.com/john/h/john179w2.zip y viene en un .zip que lo
descomprimen tiene una carpeta johnXXX donde xx es la versin john179 en este caso
que dentro tiene 2 directorios mas run y doc, en doc esta la ayuda en ingles explica con
mucho ms detalle que este tutorial como usarlo si entendes algo de ingls recomiendo
que leas los .txt, caso contrario, recomend que aprendas ingls. Como sea la otra
carpeta run tiene el programa en si.La ubican donde mas les guste (a la carpeta)
pueden registrar la ruta del ejecutable para que al escribir John en la cosola
automticamente reconesca el ejecutable y no tengan que andar escribiendo la ruta
completa del ejecutable, para hacer esto, Click derecho sobre MI PC > propiedades >
(windows vista/7: configuracin avanzada) > avanzado > variables de entorno > en la
parte de abajo ponte en la variable "Path", editala y aade al final: ;<Path del JTR>
Donde <Path del JTR> es la ruta donde pusieron el John.exe
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
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.

Das könnte Ihnen auch gefallen