Juan The Ripper
ReYDeS
...............................................................................
Antes que nada, deseo expresar mi agradecimiento a GuyBrush y a PaTa,
por hacer posible que este Peruano pertenezca al staff de RareGaZz. Es para
mi motivo de orgullo y a la par, un logro personal, el colaborar y compartir
los conocimientos que pueda poseer, con personas que se interesen en estos
temas.
...............................................................................
El presente articulo va a mostrar al John The Ripper. Asi es, vamos a hablar
sobre el John The Ripper, pero al estilo de RareGaZz; a nuestro estilo. Asi que
este modesto articulo pretende tocar los puntos mas sobresalientes que hacen
al John unico es su especie.
Como dicen los sillabus de mi universidad; Al finalizar el presente curso, el
alumno sera capaz de:
Escribir un articulo como este, e incluso mejor :D
Gracias a PaTa, por hacer que rehaga mi articulo, como te odio, :DD
El 99.1% del credito para los creadores del John The Ripper; el porcentaje
restante para un servidor Yo.ReYDeS.edu.pe
Ahora si empezemos...
[ReYDeS@amaranta /root]# head -n
----------------------------------+-------------------------------------
Indice: :
----------------------------------'
0000 INTRO:
(G5 G/B Csus2 Am7 C5 Dsus4 G5 G/B Csus2 Am7 C5 C/E Dsus4 G5 Sayin' I)
0001 PRE-REQUISITOS:
( Algunas cosillas a tener en consideracion para la lectura del
presente escrito )
0010 INSTALACION:
( Pos hombre!... para los windozeros es un Setup! )
0011 SOBRE LOS PASSWORDS:
( Si, el mismo rollo de los passwords :-)
0100 ENCRIPTACION:
( Como se hace que nuestra password 'judithsa', se tranforme en
'pAoXcz22Tjbfo' )
0101 JOHN.INI:
( En infame archivo de configuracion del JTR)
0110 OPCIONES:
( Simple, las diferentes formas de utilizarlo )
0111 LA TRILOGIA:
( Como todo lo existente... tres poderosas razones a favor )
1000 ReYDeS RULES:
( Ejemplos no muy didacticos del uso de 'rules' )
1001 OUTRO:
( words... G Csus2 G/B Gm/Bb Am7 |G)
------------------------------------------------------------------------
-------------------------------------,
0000 INTRO: :
-------------------------------------'
Nunca esta demas decir algunas cosillas; pues aunque la mayoria de los que
estamos en la informatica Under, sabemos lo que es el John The Ripper; debemos
darnos cuenta de que cada dia llegan oleadas de personas hacia nuestras costas,
deseosas de aprender lo que tal vez para nosotros resulta evidente. No debemos
olvidar que nuestra existencia es un constante aprender.
Asi es que demos una breve... brevisima descripcion, de lo que es el John The
Ripper:
JTR (Asi se le referenciara algunas veces)
John The Ripper es un crackeador de passwords, el cual esta disponible para
diferentes plataformas, como Unix, DOS y los win's. Y su proposito principal es
el de detectar passwords Unix.
Asi de sencillo... o NOOooo??
-------------------------------------,
0001 PRE-REQUISITOS: :
-------------------------------------'
* Conseguir e instalar el John The Ripper v 1.6 o anteriores; y aunque este
articulo lo hago basado en la version para Linux, no debe haber grandes
inconvenientes cuando se usa con la version para Win o DoS.
* Un archivo de passwords, que no este Shadow; si no sabes lo que es shadow,
pues; hay una breve explicacion en la seccion PASSWORDS, del presente
escrito.
* Pasando a pre-requisitos mas sutiles; pues, un poco de imaginacion,
paciencia, sentido comun, e inteligencia.
-------------------------------------,
0010. INSTALACION: :
-------------------------------------'
Lo primero que hay que realizar, para utilizar el John The Ripper, es
logicamente tener instalado el John The Ripper, en tu computador :). Puedes
obtenerlo en la siguiente direccion:
http://www.false.com/security/john/
Su instalacion se hace de una manera simple:
Habiendo descomprimido el archivo que contiene al John The Ripper...
cd src
make
Ahora se te presentara una lista de todos los tipos de sistemas soportados
por la version actual, elije una opcion y teclea lo siguiente:
make SYSTEM (supongo que sabras que es SYSTEM? 8)
Y si tu tipo de sistema es un 'TREntium' y no esta en la lista, intenta lo
siguiente:
make generic
En este punto ya debes de tener los binarios del John The Ripper, en tu
directorio. Lo ideal en compilar el John con el tipo de sistema que tienes, de
esta forma obtienes el maximo rendimiento. Un dato mas, no olvides ponerlo en
tu PATH.
-------------------------------------,
0011. SOBRE LOS PASSWORDS: :
-------------------------------------'
Mucho se ha hablado, se habla y se seguira hablando de los passwords. Pero
nuevamente hablaremos de ellos, no mucho claro; pues no es ol objetivo que
persigo con este escrito.
Al llegar a este punto, supongo que posees un archivito, el cual es muy
buscado por ciertas personas. ;) , el no menos famoso /etc/passwd. Pero!...
pero!... para poder utilizar el John, es necesario cerciorarse primero que el
archivo 'passwd', no este shadow. Ahora bien, si el archivo de passwords esta
shadow, tienes un problema mas, y necesitaras obtener dicho archivo, es decir,
el archivo /etc/shadow; y vale recalcar que este archivo no sera de lectura
general.
Veamos, cuando un archivo de passwords esta shadow, visualizaras un archivo
cuyas lineas seran similares a esta:
Aqui deberia estar el password encriptado.
|
|
V
Postmaster:x:113:20:Postmaster Nodo INTERNET-###,Ciudad Universitaria - ###
(Edificio de ###########),(51-44) 26 ## ## Anexo ###,:/usr/u/Postmaster:/bin
/csh
Nota: los "#", los he colocado yo, pues es de un archivo original, ;)
Es importante decir, que la division de los campos correspondientes a los
datos se dividen mediante el ':'
Ahora bien, en el archivo shadow correspondiente, se visualizarian lineas
como la siguiente:
Este es el Password encriptado.
_____|_____
| |
hr###:yVoedB.Sm44qY:20:9:Hospital Regional ######## ######### Prestacion de
S######## de S####:/var/spool/#####public:/usr/lib/uucp/######
Nota: Me he topado con archivos de passwords que estan completamente "shadow"
y tambien con una combinacion de estos, es decir, en un archivo que se
suponia esta shadow encontre algunos passwords encriptados. Asi es que
observad con cuidado.
Bien, el John viene con una 'utilidad' denominada UNSHADOW, el cual debe de
estar localizado en la carpeta donde residen los binarios del JTR. Ahora bien,
si tienes el archivo 'passwd' y el archivo 'shadow', pues se podria fusionar
estos dos archivos; asi en un crackeo single, este utilizara la informacion del
GECOS, el cual contiene nombres de usuario, shells y demas.
Si no entendiste algo de lo anterior, tu tranquilo!.
Entonces... la forma de uso del unshadow seria:... (redireccionandolo a otro
archivo, claro).
[ReYDeS@amaranta /root]# ./unshadow passwd shadow > FILE (Que original!)
-------------------------------------,
0100. ENCRIPTACION :
-------------------------------------'
Aclaremos como primer punto: Que es encriptacion?, para aquellos que vais un
poco perdidos en este tema.
Desde mucho tiempo atras, mas de lo que imaginais. La privacidad y
confiabilidad de la informacion a sido, y es un tema de constante
preocupacion; no soy muy docto en este tema; pero se lo suficiente para daros
unos peque~os conceptos.
Que es criptografia?. si no me equivoco debe provenir de dos terminos CRYPTO
y GRAFOS. La criptografia nos permite 'ocultar' o 'modificar' un mensaje,
siguiendo ciertas pautas, de forma tal que solo puedan descifrarlo aquellas
personas que tengan conociemiento de ellas. (Me salio bonito el concepto!)
Antes de proseguir, aclaremos el panorama concerniente al modo en que UNIX,
encripta las palabras que ingresamos como nuestras contrase~as. Realiza lo
siguiente: Unix utiliza el cifrado denominado DES, pero no solo aplica este
cifrado una sola vez, lo aplica 25 veces; luego a la 'palabra' resultante le
a~ade 2 caracteres mas; este es el demonida 'Salt', el cual proviene de la hora
de encriptado.
Ahora, lo que nos interesa a nosotros; bueno al menos a mi!, es: Que
mecanismos son usados para encriptar los passwords, que por ironias de las
cosas el JTR puede obtener. Aqui van, sin ningun orden en particular.
* DES (Data Encryption Standard)
Creado por la NSA (Estado-unidense), es un standard de encriptacion,
supuestamente solido y en el tiempo de su creacion, deberia de haber tomado
muchisimo tiempo el poder romperse. Pero con el paso del tiempo y del avance de
la tecnologia, su crackeo resulto siendo un hecho.
El algoritmo DES, es lo que se denomina un algoritmo 'Simetrico'.
Su algoritmo es el siguiente:
El algoritmo DES codifica bloques de 64 bits empleando claves de 56 bits. Es
una red de Feistel de 16 rondas con dos permutaciones, una inicial (Pi) y otra
final (Pf), tales que Pi=Pf'-1. (Pf'-1, significa f elevado a la menos 1).
La funcion f se compone de una permutacion de expansion (E), que convierte el
bloque de 32 bits correspondientes en uno de 48 bits. Despues realiza un XOR
con el valor Ki, tambien de 48 bits, aplica ocho S-cajas de 6*4 bits, y efectua
una nueva permutacion P.
Se calcula un total de 16 valores de Ki, uno para cada ronda, efectuando
primero una permutacion inicial sobre la clave, y luego llevando a cabo
desplazamientos a la izuierda de cada una de las dos mitades (de 28 bits)
resulatantes, y realizadndo una eleccion permutada de 48 bits en cada ronda,
que sera la Ki.
Para descifrar basta con usar el mismo algoritmo (ya que Pi=Pf'-1) empleando
las Ki en orden inverso.
Lo entendieron?... yo no! :P.
Ahora debemos hablar sobre HASH.
Hash es un algoritmo de una via, al estilo del DES, es una capa de seguridad
a~adida para mejorar la seguridad de los algoritmos de proteccion. El MD5 es
utilizado mediante un valor HASH, para hacer mas duro el encriptado de objetos.
* MD5
Se trata de uno de los mas populares algoritmos de generacion de signaturas
(firmas) digitales, debido a su inclusion en las primeras versiones del PGP
(Pretty Good Privacy). Es el resultado de una serie de mejoras sobre el
algoritmo MD4; procesa mensajes de entrada en bloques de 512 bits y produce una
salida de 128 bits. El MD5 es un metodo que nos va a permitir auntentificar
cualquier objeto. Pero es como todo :), ya que en los ultimos a~os el algoritmo
MD5 ha mostrado debilidades, eso si, sin implicanciones preacticas reales, por
lo que actualmente se considera seguro? :O Uds. lo creen?
Su algoritmo esta bien pesadito, y como no soy ningun experto criptologo.
Pos hombre!. Que me enredao con ese algoritmo!.
Resaltar que; el John the ripper soporta y autodetecta los siguientes
formatos de 'cifrado'.
Standard DES
BSDI DES
FreeBSD MD5
OpenBSD Blowfish
Kerberos AFS DES
NT LM DES
Y para finalizar esta seccion, decir que el JTR no usa rutinas estilo
crypt(3), en lugar de ello utiliza sus propios modulos para los diferentes
formatados de cifrado.
Creo que, con lo explicado anteriormente, a muchos de nosotros nos a picado
la curiosidad por la Criptografia. Pero afortunadamente tengo el antidoto para
esa picadura. :-).
-------------------------------------,
0101. JOHN.INI :
-------------------------------------'
Antes de seguir avanzando, y pasar a lo que son las opciones del JTR, es
necesario conocer a un archivo fundamental en el uso del John; es el archivo
denominado: JOHN.INI.
* JOHN.INI
El JTR, puede ser personalizado editando el archivo john.ini, en este archivo
se pueden definir 2 puntos importantes, variables y secciones. El simbolo usado
para colocar comentarios en este archivo es '#', las lineas que comienzen con
este simbolo seran ignorados.
En este archivo se configuran todos los aspectos fundamentales para el
comportamiento del JTR, en los diferentes modo de crackeo que este posee.
Gracias a este archivo la utilizacion del JTR se realiza con comodidad.
Algunas variables para el comportamiento general de el JTR se localizan en la
seccion [Options], en dicha seccion se definen:
Wordfile = ~password.lst
( Aqui podemos definir una lista de palabras por defecto, en lugar de dicho
archivo. )
Save = 600
( Aqui se define el lapso de tiempo, en el que el archivo 'restore' se
sobreescribira, salvando en el, el estado del John la ultima vez que se
inicio. )
Beep = Y
( Pues nada, un pitido que te avisara que ha encontrado un password! )
En la partes subsiguientes de este archivo se definen las siguientes
secciones:
[List.Rules:Single]
( Seccion utilizada para el crackeo, utilizando el parametro 'single'. )
[List.Rules:Wordlist]
( Seccion utilizada cuando se tiene una lista de palabras o diccionario y
se habilitan las reglas para este proposito. Cabe acotar que podemos
definir nuestras propias reglas de acuerdo a nuestras necesidades, mas
adelante comentaremos mas a respecto. )
[Incremental:MODO]
( Todos las secciones del modo incremental se definen con esta cabecera,
donde MODO, toma el valos de All, Alpha, Digits y LanMan. Ademas podemos
definir nuestros propios modos incrementales. )
[List.External:Filter_MODO]
( Esto define un modo externo utilizado para filtrar palabras. MODO, toma el
valor de Filter_Alpha, Filter_Digits y Filter_LanMan. Ademas de las que
podemos nosotros definir. )
[List.External:MODO]
( De esta forma se definen funciones en un tipo de lenguaje C, cuyo proposito
es generar palabras que cumplan determinadas caracteristicas. Aqui modo
puede tomar el valor de LanMan, Double y Parallel. Sin contar que nosotros
podemos definir una. )
En cada una de estas secciones se definen variables que solo funcionan para
la seccion en la cual han sido definidas; asi como en el lenguaje C, define
variables locales y globales.
Ahora bien, hablemos un poco sobre el archivo 'john.pot', no menos importante
en la utilizacion del JTR.
* JOHN.POT
En este archivo se van registrando aquellos passwords que van siendo
encontrados por el JTR. Pero!... Pero!, no solo tiene ese comentido. Tiene una
segunda mision, la cual es utilizada cuando se define un conjunto de caracteres
con el parametro -makechars:FILE. Tranquilos!... que en la seccion OPCIONES,
trateremos este punto.
-------------------------------------,
0110. OPCIONES :
-------------------------------------'
JTR tiene una conjunto muy interesante y variopinto de opciones. Las palabras
sobran para elogiar a este programa.
Lo mas tipico de hacer, cuando uno ya tiene un archivo de password es
utilizar el siguiente parametro con el JTR. Clasico!.
Asumiremos durante todo este escrito que el archivo a crackear es 'passwd'
(Que nombres tan originales!) :)
[ReYDeS@amaranta /]# ./john -single passwd
Esto de seguro sacara algunas claves, pero de donde?... alli esta el detalle.
De ello hablaremos con mas calma, mas adelante. Tranquilos, hay que saber
esperar, es una virtud.
Ahora, para aquellos que tengan vida eterna o mucha paciencia, pueden
utilizar este parametro y esperar a que termine:
[ReYDeS@amaranta /]# ./john -incremental:MODO passwd
MODO, se define en el archivo de configuracion, este puede ser All, Alpha,
digits o un modo creado por vosotros.
Ahora viene mi parametro engreido:
[ReYDeS@amaranta /]# ./john -rules -wordfile:FILE passwd
Utilizando estos parametros se utilizara una lista de palabras definida en el
'john.ini' o en la misma linea de comandos, depues de '-wordfile'. Ademas, el
parametro '-rules' habilitara las reglas, las cuales seran utilizadas para
manipular las palabras de una lista.
Ahora veamos la segunda utilidad que tiene el archivo 'john.pot', este
archivo es utilizado por el JTR cuando es utilizado con el siguiente parametro.
[ReYDeS@amaranta /]# john -makechars:FILE
A partir del archivo 'john.pot' se generara un juego de caracteres, basandose
en la frecuencia de caracteres que aparecen en los passwords crackeados. Algo
asi como los caracteres mas utilizados a la hora de elegir una palabra como
clave; asi se infiere que con este promedio, hay mas porcentaje de obtener un
password.
Podemos definir en la seccion correspondiente al modo incremental, una
seccion, la cual utilizara el archivo generado anteriormente; definiendo todas
las variables correspondientes para su utilizacion.
Una opcion interesante es la 'External', en esta seccion que reside en el
archivo de configuracion, se definen funciones escritas en un tipo de lenguaje
C, con estas funciones se generaran palabras para utilizar mientras se crackee,
estas funciones se compilaran cuando se inicie el JTR.
[ReYDeS@amaranta /]# john -external:MODO
Se puede utilizar un filtro externo con otros modos de crackeo, por ejemplo
incremental, wordlist.
Visualizemos ahora comandos menos complicados, pero no por ello menos utiles
que los demas. Se los presento a continuacion:
Con el siguiente parametro se reinizara una sesion del JTR que anteriormente
haya sido interrumpida. Se puede definir otro archivo en FILE, pues el JTR
leera el archivo por defecto que es el denominado 'restore'.
[ReYDeS@amaranta /]# john -restore:FILE
Con este siguiente parametro, si el JTR ha encontrado algunos passwords,
entonces los visualizara por vuestra terminal.
[ReYDeS@amaranta /]# john -show passwd
Ahora veamos un conjunto de parametros que le dan una mayor vitalidad al
proceso de crack; cabe resaltar que todos ellos pueden utilizarse de forma
separada, yo los coloco todos juntos aqui por razones didacticas :o).
Su significado es el siguiente; crackear aquellos passwords que cumplan los
siguientes requisitos; que sean de un usuario llamando ReYDeS, cuyo GID sea 100
y su shell sea el tcsh. Asi de simple!.
[ReYDeS@amaranta /]# john -users:ReYDeS -group:100 -shells:/bin/tcsh passwd
Ahora bien, si tenemos un archivo de passwd con un formato de encriptacion
diferente al DES, podemos forzar al JTR a utilizar otro formato soportado, como
por ejemplo el MD5. Esto se haria de la siguiente manera:
[ReYDeS@amaranta /]# john -format:MD5 (seguido de otros parametros) passwd
Hay otros parametros a utilizar, pero he creido conveniente explicar los
anteriores, pues son los mas utilizados. Bueno, eso creo!.
-------------------------------------,
0111. LA TRILOGIA :
-------------------------------------'
Asi denomino yo a los 3 puntos fuertes del JTR, el modo single, el
incremental y el wordlist (rules). Empezemos pues, sin mas demora...
1) -wordlist (-rules)
Bien, he creido conveniente explicar primero este comando para entrar luego
al '-single'.
Gracias al parametro '-wordlist' se hace posible la utilizacion de una lista
de palabras; sea esta obtenida por algun medio o creado por vosotros mismos.
Bien, pero esto no queda alli, noo!... ademas de probar las palabras tal y como
son, JTR nos da la posibilidad de alterar (en el sentido literal de la palabra)
esas mismas palabras a nuestro antojo.
Que como se hace esto?, pues con -rules.
-rules -reglas?
Asi es, reglas que como ya intuiran, se definen en el archivo de
configuracion del JTR; podemos hacer malavares con una lista de palabras. Esto
se realiza con los siguiente 'pseudo-comandos', el cual utiliza el
'preprocesador' del John para referirse a dichas reglas reglas.
Veamos lo que podemos hacer con las palabras en sus formas mas simples:
a) Comandos Simples:
: no-op (no-operacion) : no hace nada a la palabra de entrada.
l convierte los caracteres de la palabra a minusculas.
u convierte los caracteres de la palabra a mayusculas.
c capitaliza (Convierte el 1er caracter a mayuscula)
C convierte a minuscula el 1er caracter, y en mayuscula los demas.
t convierte a mayuscula las minusculas y viceversa.
r revierte: "Fred" -> "derF"
d duplica: "Fred" -> "FredFred"
f refleja: "Fred" -> "FredderF"
{ rota la palabra a la izquierda: "jsmith" -> "smithj"
} rota el palabra a la derecha: "smithj" -> "jsmith"
$X an~ade caracter X a la palabra.
^X antepone caracter X a la palabra.
Ademas tenemos definidas y divididas los diferentes caracteres, como dice la
frase; divide y venceras. Asi pues, estan definidas de la siguiente forma:
b) Clases de caracteres:
?? define un: " ? "
?v define vocales: " aeiouAEIOU "
?c define consonantes: " bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ "
?w define un espacio en blanco: " \t "
?p define signos de puntuacion: " .,:; ' \"?! ` "
?s define simbolos: " $% ^ & * () -_+ = | \ \ < > [] {} #@ / ~ "
?l define letras minusculas: [a-z]
?u define letras mayusculas: [A-Z]
?d define digitos: [0-9]
?a define letras: [a-z A-Z]
?x define letras y digitos: [a-z A-Z 0-9]
Tambien podemos controlar la longitud de las palabras con las siguientes
reglas:
c) Comandos de control de longitud:
N ejecuta la palabra, si esta es mayor que N caracteres de longitud.
'N trunca la palabra a longitud N.
Para modificar algunas palabras en ingles a terminaciones de esa gramantica
se utiliza:
d) Ordenes de la Gramatica Inglesa:
p pluraliza la palabra: "crack" -> "cracks", etc. (solo minusculas)
P "crack" -> "cracked", etc. (solo minusculas)
I "crack" -> "cracking", etc. (solo minusculas)
Ahora vienen comandos que son utilizados en conjuncion con las clases de
caracteres definidos en un acapite anterior. Aqui os podeis dar cuenta de lo
poderoso que puede llegar a ser el JTR con este modo de crackeo.
sXY reemplaza todos los caracteres X en la palabra con Y
s?CY reemplaza todos los caracteres de clase C en la palabra con Y
@X elimina todos los caracteres X de la palabra.
@?C elimina todos los caracteres de clase C de la palabra.
!X ejecuta la palabra, si contiene un caracter X
!?C ejecuta la palabra, si contiene un caracter de clase C
/X ejecuta la palabra, a menos que contenga un caracter X
/?C ejecuta la palabra, a menos que contenga un caracter de clase C
=NX ejecuta la palabra, a menos que el caracter en la posicion N sea
igual a X
=N?C ejecuta la palabra, a menos que el caracter en la posicion N este
en la clase C
(X ejecuta la palabra, a menos que su primer caracter sea X
(?C ejecuta la palabra, a menos que su primer caracter, este en la
clase C
)X ejecuta la palabra, a menos que su ultimo caracter sea X
)?C ejecuta la palabra, a menos que su ultimo caracter, este en la
clase C
%NX ejecuta la palabra, a menos que esta contenga por lo menos N casos
de X
%N?C ejecuta la palabra, a menos que esta contenga por lo menos N
caracteres de clase C
Y como penultimo acapite de esta seccion:
f) Comandos de Insercion/Borrado:
[ borra el primer caracter de la palabra.
] borra el ultimo caracter de la palabra.
DN borra el caracter en la posicion N
xNM extrae una subcadena empezando desde la posicion N, com M caracteres
de longitud.
iNX inserta un caracter X en la posicion N
oNX sobrepone un caracter en la posicion N con un caracter X
Y para cerrar con broche de oro:
g) Comandos de Conversion de caracteres:
S Tecla Shift: Crack96 -> cRACK(^
V vocales minusculas: Crack96 -> CRaCK96
R Crack96 -> Vtsvl07
L Crack96 -> Xeaxj85
( En estos dos ultimas lineas, observen las reglas y su teclado con mucho
detenimiento. Ya saben de lo que se trata?. )
Para mejor entendimiento de los acapites anteriormente mencionados,
resultaria, creo yo, beneficioso para el lector, que comente sobre el
Preprocesador.
* El Preprocesador:
Bien, el preprocesador del JTR, se utilizada para combinar comandos u ordenes
o las dichosas reglas en una solo linea. Con esto se logra ahorrar espacio y
no escribir reglas innecesarias para el procesamiento de las palabras. El
preprocesador empieza a generar las reglas cuando verifca la sintaxis y una
vez mas, en el proceso de crack; pero, no guarda las ordenes extendidas en
memoria.
Por ejemplo si deseamos hacer una orden que pruebe las palabras minusculas y
que ademas a~ada 2 digitos al final de dicha palabra, pues una forma de hacer
dicha regla, seria:
l$[0-9]$[0-9]
Cuando este comando sea interpretado por el preprocesador, esta regla se
'expandira', en las 100 ordenes que deberiamos de haber escrito, si no
existiese el preprocesador, para cumplir este proposito. Que avance, no?.
Demas decir, esto se aplica a las demas reglas, que residen en el 'john.ini'
y las que podemos definir nosotros.
Existen algunos caracteres de control que tienen que manipularse con algun
cuidado; es el caso de '[', el cual empieza una lista de caracteres del
preprocesador; tambien el de '-', el cual define un rango dentro de un a lista.
Para la utilizacion de esos caracteres es necesario anteponer el caracter con
un '\', asi perdera su significado especial. Y lo mismo se aplica al '\'.
2) -single
El modo '-single', es un clasico para comenzar un proceso de crackear
passwords. Este modo usara la informacion del GECOS; Que es GECOS?, pues
de una forma somera; es informacion de usuarios, como su nombre; como decia,
usa esta informacion en combinacion con algunas reglas pre-establecidas en el
archivo de configuracion, para intentar obtener algunas claves.
Las reglas a utilizar para este modo, son las mismas que las descritas
anteriormente para la seccion '-wordlist' (-rules). A mi gusto sus reglas son
mas interesantes en composicion y propositos :).
Cabe resaltar que este modo es mas rapido, que el modo de 'wordlist'. Ademas
los passwords hallados seran probados en el mismo archivo de claves, por si
existe mas de un usuario usando el mismo password.
Dada las caracteristicas de este tipo de crackeo, se obtendran mas claves,
mientras se usen mas archivos de passwords en este modo.
3) -incremental :(MODO)
Este modo, es mucho mas potente y seria el mas efectivo, si no fuese por el
tiempo; dado que por el mismo hecho de probar todas las combinaciones posibles;
por ese mismo hecho se asume que este modo no finalizaria nunca.
La unica manera de ver a este modo finalizar una sesion, seria la de limitar
la longitud de las palabras; o limitar el conjunto de caracteres a utilizar en
la contruccion de las 'palabras'.
Es por ello que es recomendable, utilizar este modo con una tabla de
frecuencia de caracteres, ya que asi sera posible coger mas claves en un menor
tiempo. Como se dijo anteriormente una tabla de frecuencia de caracteres, es
algo asi como un ranking de los caracteres mas usados al momento de elegir una
palabra clave; construido en base a las claves que han sido obtenidas.
En esta seccion se definen las siguientes variables:
File = ~/FILE.chr
( Aqui se define el nombre del archivo generado con el comando '-makechars'.)
MinLen =
( Define la longitud minima de la 'palabra'. )
MaxLen =
( Como ya habran intuido, la longitud maxima. )
CharCount =
( Permite limitar el juego de caracteres a usar. Si este parametro no se
especificase, se utilizan todos los caracteres definidos. )
Extra =
( Esto permite al JTR, a~adir algunos caracteres extras al juego defindo de
caracteres que se esta usando. )
Los juegos de caracteres que se establecen por defecto en el archivo de
configuracion son: All, para todos los caracteres posibles; Alpha, para
caracteres alfabeticos y Digits, para los digitos numericos.
-------------------------------------,
1000. ReYDeS RULES :
-------------------------------------'
Voy a hacer esta seccion, como un punto de partida a la utilizacion de las
reglas que es posible escribir para usar con una lista de words. Gracias a este
metodo se convierten en More Than Words (mas que palabras).
Empezamos por lo mas simple y gradualmente le agregaremos una nota de
complejidad:
Haber, empezemos con un clasico del crackeo y que me da escalofrios, el solo
pensar que en mi facultad aun usan esta combinacion en sus passwords. El tipico
password con una palabra y dos numeros al final (esos 2 numeros al final son
para seguridad), :).
Dadme... un password!...
cecilia00
Son 7 letras y dos numeros. Entonces como se "supone" que tenemos una
diccionario el cual contiene entre sus muchas palabras nombres de personas,
hacemos una regla como la siguiente:
l$[0-9]$[0-9]
Veamos, en este caso al John le dara lo mismo 'cecilia00' que 'cecilia0', asi
es que para ahorrarnos algunas comparaciones inuteles podemos hacer lo
siguiente: Para el primer caso, probar solamente con palabras cuya longitud, no
supere los 6 caracaters; de esta forma, al agregarle los dos numeros al final
tendriamos 8 caracteres, que corresponde al formato DES. Entonces quedaria como
sigue:
<7l$[0-9]$[0-9]
Si deseamos probar palabras, y solamente agragarle un numero al final, se
haria lo siguiente:
l$[0-9]
Ahora, hacemos lo mismo si desemaos probar palabras de determinada longitud.
<8l$[0-9] o <*l$[0-9]
Para ambos casos, si deseamos probar con palabras a partir de una longitud
minima, contamos con las siguientes formas:
>2l$[0-9]$[0-9]
Lo anterior probara solo palabras a partir de una longitud mayor a dos
caracteres; pero tambien podriamos hacer lo siguiente:
<*>2u$[0-9]
Recuerdan lo que significaba max_lenght?, pues es lo que representa el '*',
para el caso del DES, toma el valor de 8, que son ocho caracteres. Y lo que
hace la 'u', es convertir la palabra en mayusculas, por lo cual las palabras
quedarian con este formato: 'PAOLA0'.
Ahora bien, lo que podriamos hacer para no preocuparse por la longitud de la
palabra, seria truncar la longitud de la palabras. Asi:
'6c$[0-9]$[0-9]
Tener en cuenta que esto modificara a la palabras. Serian algo como esto, en
lugar de 'elizabeth', seria 'Elizab78'.
Ahora se me ocurre que en lugar de colocar esos benditos dos numeros al
final, esos dos numeros sean colocados al principio, de la siguiente forma.
l^[0-9]^[0-9]
Tomando nuevamente la clave 'cecilia', la nueva palabra seria '00cecilia'.
Pero esas ultimas letras, en este caso a partir de la letra 'a', es
innecesario. Asi es que definimos lo siguiente.
<7l^[0-9]^[0-9]
Para clausurar esta seccion y algunas palabras depues, tambien este articulo,
se me viene a la mente esa forma que tienen algunos tipos de escribir.
Solo por ser una ocasion en la cual es inevitable este tipo de escritura,
veran esta combinacion de letras y caracteres. Con el perdon de los presentes:
Digamos un nombre mas... 'carol' por ejemplo, y digamos tambien, que es una
chica cool y que escribe su nombre reemplazando algunos caracteres con numeros,
asi: c4r01 :-|
Entonces... se los dejo como tarea... :D jeje!... No?
sa4so0sl1
Alli lo tienen la version alpha, examinenla...
-------------------------------------,
1001. OUTRO :
-------------------------------------'
[ReYDeS@amaranta /]# tail -n
Este articulo no solo representa, un conjunto de parrafos con algunos
conocimientos, va mas alla de eso; es parte de mi existencia, parte de todo lo
que me ocurre mientras lo elaboro; es por ello que toma un significado especial
para mi.
No es necesario que os prometa algo mucho mejor para el proximo numero, esa
promesa me la hago a mi mismo; y espero que sea de vuestro agrado.
Es todo por ahora.
Yo me despido hasta una proxima oportunidad.
o (:::::::::) o
El presente articulo lo dedico a mi querida hermana, por haber culminado
satisfactoriamente sus estudios Universitarios el 07/02/2000.
o (:::::::::) o
- Sayin' "I love you", is not the words I want to hear from you -
More Than Words (Extreme)
,,,,,,,,,,,,,,,,,,,,,,,
: ReYDeS@hobbiton.org :
: Peru, A~o 2000 :
'''''''''''''''''''''''
|