Documente Academic
Documente Profesional
Documente Cultură
Las versiones de DOS y Win32 han sido desarrolladas con DJGPP y el Cygnus
Developer's Kit, respectivamente.
Como instalarlo
-----------------
Como usarlo
-------------
john -restore
Caracteristicas y Rendimiento
-------------------------------
John the Ripper esta dise¤ado para ser a la vez portente y rapido.
Combina bastantes modos de crackeo en un solo porgrama, y es completamente
configurable para tus propias necesidades (incluso puedes definir tu propio
modo de crackeo usando el compilador interno, que soporta un sublenguaje
de C). Ademas, John esta disponible para una gran variedad de plataformas,
lo que te premite usar el mmmismo crackeador en cualquier parte (por ejemplo,
puedes continuar una sesion que comenzaste en otro sistema).
Documentacion
---------------
Feliz lectura!
cd scr
make
Con esto obtendras una lista de los sistemas soportados. Elige uno de ellos
y teclea:
make SISTEMA
make generic
Ahora puedes copiar este directorio a donde quieras: estos son todos los
archivos que necesita John en tiempo de ejecucion.
You can list any number of password files on John's command line, and also
specify some of the following options (all of them are case sensitive, but
can be abbreviated):
Additional Utilities
----------------------
There're some utilities in John's run directory:
mailer PASSWORD-FILE
A shell script to send mail to all the users who got weak passwords. You
should edit the message inside before using.
You can list any number of password files on John's command line, and also
specify some of the following options (all of them are case sensitive, but
can be abbreviated):
Additional Utilities
----------------------
mailer PASSWORD-FILE
A shell script to send mail to all the users who got weak passwords. You
should edit the message inside before using.
Estos ejemplos son para darte algunos trucos sobre como pueden ser usadas
las opciones del John. Algunos de ellos pueden no ser obvios; pido disculpas
si alguno lo es, pero es que estoy aburrido de contestar las mismas
preguntas.
Linea de comandos
-------------------
cp /etc/passwd passwd.1
aunque tambien pueden ser abreviadas las opciones (yo utilizare los nombres
completos en estos ejemplos):
o incluso:
o si quieres que John ignore alguna otra shell, por ejemplos '/etc/newuser':
o, con las reglas activadas (mas lento, pero mas potente; esto es lo que
deberas usar para localizar la mayoria de las claves debiles):
Para crackear solo las cuentas que tengan una shell valida (en general, los
filtros para usuarios, grupos y shells mencionadas arriba funcionan para
cualquier modo de crackeo):
Como con cualquier otro modo de crackeo, es mas rapido hacerlo con todos
los archivos de claves posibles:
Algunas veces es preferible partir tus archivos de claves para que puedan ser
crackeados separadamente, como esto:
Esto hara que John intente 'salts' con dos o mas claves rapidamente, y
a continuacion probar el resto. El tiempo total de crackeo sera mas o menos
el mismo, pero obtendras algunas claves mas rapidamente, y puedes no
necesitar el resto. Tambien puedes probar todas las cuentas con un 'wordlist'
peque¤o, y solo aquellas que puedas probar mas rapido (con '-salts:2') con
uno largo. Usualmente es mejor probar un valor mayor que 2 para '-salts'
(algunas veces incluso un valor tan alto como 1000 lo hara); ajustalo a tu
caso particular.
Nota que la regla por defecto para el modo 'wordlist' incluye el comando
':' como primera linea (lo que significa "prueba las palabras como aparecen
en la lista"). Si ya has probado con un 'wordlist' sin usar las reglas, y
ahora quieres probar con la misma lista pero usandolas, mejor que comentes
este comando.
john -i passwd.1
De nuevo, puedes crackear solo cuentas de root y usar algunas de las otras
caracteristicas de John con los modos incrementales. Este comando intentara
crackear todas las cuentas root (uid 0) en todos los archivos de claves, y
solo aquellos que produzcan los salts marcados, asi conseguiras casi el
doble de rapidez si tienes un monton de archivos de password (100 o mas,
llamados '*.pwd' por ejemplo), sin embargo probablemente no habra cuentas de
root con los salts marcados:
john -makechars:all.chr
john -makechars:alpha.chr -external:filter_alpha
john -makechars:digits.chr -external:filter_digits
mailer passwd.1
Archivo de Configuracion
--------------------------
[List.Rules:Single]
$?$!
Truco: si quieres comentar temporalmente todas las demas reglas por defecto,
puedes renombrar la seccion a algo que John no utilice, y definir unas nuevas
con el nombre antiguo, pero asegurate que dejas la parte 'List.' del nombre,
u obtendras un error.
[Incremental:MIO]
File = MIO.chr
Esto hara que John solo utilice los caracteres que estaban en los passwords
usados para generar el nuevo juego de caracteres. Para hacer que john utilice
algunos caracteres extras:
Extra = !@#$%
Estos caracteres extras seran utilizados pero siempre considerando que seran
los menos probables. Si quieres asugurarte de que, a¤adiendo tus caracteres
extra, John pruebe los 95 caracteres, puedes a¤adir la linea:
CharCount = 95
Tambien puedes usar CharCount para limitar el numero de caracteres que probara
John, aunque el juego de caracteres tenga mas:
CharCount = 25
Para hacer que John pruebe passwords de una determinada longitud, usa:
MinLen = 6
MaxLen = 8
[List.External:Filter1]
void filter()
{
int i;
i = 0;
while (word[i] && word[i] >= 'a' && word[i] <= 'z') i++;
if (word[i] != '1' || word[i + 1]) word = 0;
}
Este filtro solo dejara las palabras con caracteres alfabeticos y a¤adira
un '1' al final. Ahora puedes usar este filtro con algun otro modo de craking,
pero la mayoria de las veces sera demasiado lento, ya que la mayoria de las
palabras seran rechazadas por el filtro. Es mejor usarlo para generar los
juegos de caracteres y usar estos (siempre que tengas suficientes passwords
que pasen el filtraje).
Si no puedes usar las tablas de frecuencia por alguna razon, puedes usarlas
programando totalmente un nuevo modo externo:
[List.External:Suffix1]
int length, current[9];
void init()
{
int i;
void generate()
{
int i;
i = length + 1;
while (i--) word[i] = current[i];
i = length - 2;
while (++current[i] > 'z')
if (i) current[i--] = 'a'; else current = -1;
}
void restore()
{
int i;
i = length + 1;
while (i--) current[i] = word[i];
}
External Functions
--------------------
Todas son del tipo 'void', sin argumentos, y deben usar la variable global
'word'(predefinida como 'int word[]'), excepto para init() que es llamada
antes de que se inicialice 'word'. La variable 'word' contiene la palabra
que va a ser probada en ese momento, en formato ASCIIZ.
El Lenguaje
-------------
Una lista de los identificadores soportados: void, int, if, else, while,
continue, break, return. Puedes definir funciones estandar para ser llamadas
por John, definir variables locales y globales (incluyendo matrices
unidimensionales), usar todas las operaciones entre enteros soportados en
C y usar comentarios de C.
* solo las funciones estandar estan soportadas, no puedes definir las tuyas
propias;
* solo los bucles 'while' estan soportados;
* solo los tipos de datos 'int' y 'void' estan supported;
* solo se permiten matrices (arrays) unidimensionales;
* structs/unions no estan supported;
* los punteros no estan soportados (el nombre del array se refiere al primer
elemento)
* algunas cosas mas, probablemente...
You can find some external mode examples in the default configuration file
supplied with John.
Modos de crackeo de John the Ripper
=====================================
Estas descripciones son cortas y solo cubren las opciones basicas. Lee
los otros archivos de ayuda para obtener informacion sobre como personalizar
los modo.
Este es el modo mas simple soportado por John. Todo lo que necesitas hacer es
especificar un wordlist (un archivo con una palabra por linea) y algunos
archivos de passwords. Puedes activar las reglas (que se usan para modificar
dichas palabras) si lo deseas, y seran aplicadas a cada palabra de la lista.
Este archivo no debe contener vacios. John no ordena las palabras para
no usar demasiada memoria, ya que esto necesitaria cargar toda la lista
en la memoria, mientras que ahora se lee directamente del disco mientras
se crackea. Ademas, no ordenar las palabras te permite poner las mas
frecuentes al principio de la lista para que sean probadas antes.
words first. Sin embargo, si no tienes ninguna preferencia en el orden, es
mejor que ordenes las palabras alfabeticamente: John funciona un poco mas
rapido si cada palabra difiere solo en algunos caracteres, esto es
especialmente aplicable si solo crackeas unos pocos passwords de una vez.
La mayoria de los wordlist que encuentres en la red estan ya ordenados.
La manera recomendada de ordenar una wordlist para usarlo con las reglas
por defecto de dicho modo es:
Este es el modo con el que deberias comenzar a crackear. Este modo intentara
usar la informacion del login/GECOS como passwords. Como la informacion
solo se usa en la cuanta de la que se ha tomado (y solo con passwords
con los mismos 'salts', lo que no consume tiempo extra), el modo "single
crack" es mucho mas rapido que el modo wordlist, y permite el uso de muchas
reglas (estas estan siempre activadas en este modo) en un tiempo razonable.
Los passwords encontrados tambien son probados en el archivo de passwords,
por si hay mas de un usuario con el mismo password. Por supuesto, esto solo
cogera aquellos passwords que esten basados en la informacion usada.
Hay que darse cuenta que, por las caracteristicas de este modo, se obtendran
mas cuentas crackeadas si lo usas con multitud de archivos de passwords
que si lo usas en cada archivo por separado.
Modo Incremental
------------------
Este es el modo de crackeo mas potente, ya que probara todas las combinaciones
de caracteres posibles. Sin embargo, se asume que este modo nunca terminara
de ejecutarse ya que el numero de combinaciones son demasiado alto
(actualmente, la unica posibilidad de que termine en un tiempo razonable
-- mientras sigas vivo :-) -- es limitar la longitud del password, o usar un
juego de caracteres peque¤o), y tendras que interrumpirlo tu manualmente.
Para usar este modo necesitas una definicion especial de los parametros
del modo (incluyendo la longitud del password y los juegos de caracteres).
Estos parametros se definen en la seccion del ~/john.ini llamada
[Incremental:MODO], donde modo es cualquier nombre que asignes al modo
(este es el nombre que tendras que especificar a John en la linea de
comandos). Puedes usar cualquieras de los modos predefinidos ('All, 'Alpha',
o 'Digits'), o definir uno propio.
Modo Externo
---------------
Sobre la traduccion
---------------------
Q: ¨Por que muestra John los valores de c/s, en vez que los valores reales de
crypt() por segundo?
A: Los valores presentados indican las combinaciones (de login y passwords)
por segundo, no crypts() por segundo. Esta es la velocidad efectiva de crackeo
en un determinado archivo de passwords, y puede ser utili, por ejemplo, para
ajustar el valor que uses para la opcion '-salts'. Si solamente quieres hacer
un banco de pruebas de las rutinas de control de passwords, usa la opcion
'-test'.
Q: Me acabo de dar cuenta de que los valores de c/s que son mostrados cuando
uso los modos incrementales son mucho menores que en otros modos de cracking.
Son incluso menores de lo que eran en la version v1.0. ¨Que ha ocurrido?
A: Probablemente habras usado John solamente unos segundos. Mi nueva
implemententacion del modo incremental usa juegos de caracteres bastante
largos que necesitan ser expandidos cada vez que John cambia entre
distintas longitudes de passwords. Afortunadamente, esto solo se nota
cuando John acaba de ser iniciado, ya que raramente cambia esta longitud
cuando lleva trabajando varias horas. Creo que no es un precio demasiado alto
a cambio de un mejor orden en los intentos de crackeos.