John the Ripper

Descripción del contenido.

Jtr está diseñado para ser efectivo y rápido. Combina diferentes formas de crackeo en un programa y es totalmente configurable para usos particulares (inclusive puede definir un modo particular de crackeo utilizando el compilador incorporado). Ademas Jtr se encuentra disponible para una amplia variedad de plataformas lo cual permite utilizar el mismo crackeador en cualquier lugar (inclusive continua la sesión de crackeo que ha sido iniciada en otra plataforma).

Jtr soporta (y autodetecta) los siguientes tipos de hashes Unix crypt(3), tradicional basado en DES, “bigcrypt”, basado en DES y extendido BSDI, basado en MD5 FreeBSD (ademas utilizado en Linux y Cisco IOS), y basado en Blowfish en OpenBSD (ahora utilizado en algunas distribuciones y soportado por recientes versiones de Solaris).
Ademas soporta “fuera de la caja” Kerberos/AFS y Windows LM (basado en DES) hashes, como también tripcodes basado en DES.

Al ejecutar en distribuciones Linux con glibc 2.7+, Jtr soporta (y autodetecta) hashes encriptados con SHA (actualmente utilizados por recientes versiones de Fedora y Ubuntu), con la opción de paralelización con OpenMP (requiere GCC 4.2+, necesita explicitamente estar activado al momento de compilar, quitando el comentario en la linea EMPFLAGS cerca del inicio del Makefile).

Similarmente, al ejecutar en versiones recientes de Solaris, Jtr soporta y autodectecta encriptaciones SHA y MD5, con la paralelización opcional OpenMP (requiere GCC 4.2+ o el más reciente Sun Studio, necesita explicitamente activarse al momento de compilar debe quitar el comentario OMPFLAGS cerca del inicio del archivo Makefile y en tiempo de ejecución configurar la variable OMP_NUM_THREADS por el número de hilos deseados).

La versión pro soporta NTLM (basado en MD4) de Windows y Mac OS X 10.4+ con el salt del hash SHA-1.
La  version “Community” -versiones jumbo agrega soporte para muchas mas contraseñas y tipos de hashes, incluyendo NTLM (basado en MD4) de Windows y SHA-1, tipos de hashes de contraseñas basadas en MD5 arbitrarios de “aplicaciones Web” , los hashes utilizados por servidores de bases de datos SQL (MySQL, MS SQL, Oracle) y algunos servidores LDAP, varios tipos de hashes utilizados en OpenVMS, hashes de contraseñas del bot IRC-eggdrop y más tipos de hashes, como también varios no-hashes como ser llaves privadas OpenSSH, archivos S/key skeykey, Kerberos TGTs, archivos Pdf, Zip (clasicos Pkzip y Winzip/Aes) y archivos Rar.
A diferencia de otros crackeadores, Jtr normalmente no utiliza rutinas crypt(3). Sin embargo,  posee módulos propios optimizados para diferentes tipos de hashes y arquitectura de procesadores. Algunos de los algoritmos utilizados como ser bitslice DES, no pueden ser implementados dentro de la librería crypt(3), necesita una interfaz más poderosa como la que utiliza Jtr.
Adicionalmente, hay rutinas en lenguaje ensamblador para varias arquitectura de procesadores, los más importantes para X86-64 y x86 con instrucciones SSE2.
  • Sitio Web: jtr
  • Autor: Solar Designer
  • Licencia: GPLv2.

Herramientas incluidas.

mailer – Correos de usuarios quienes tienen contraseñas crackeadas.

unafs – Script para advertir a los usuarios sobre contraseñas débiles.

unshadow – Combina archivos passwd y shadow.

unique – Quita duplicados de una lista de palabras.

Comandos Auxiliares.

  • Usage: john [OPTIONS] [PASSWORD-FILES]
–config=FILE Utiliza un archivo en vez de john.conf o john.ini
–single=[=SECTION] Modo de “crackeo simple”
 –wordlist[=FILE], –stdin  Modo de archivo de palabras, lee palabras desde un archivo o del stdin.
 –pipe como –stdin  Permite lecturas y reglas.
 –loopback[=FILE]  Similar a –wordlist, trae  palabras desde un archivo .pot
 –dupe-suppression   Quita todas las palabras similares (y forza una pre lectura).
 –encoding=NAME  Ingresa datos en formato no ascii (ej. UTF-8, ISO-8859-1). Para una lista completa de nombres utilice –list=encodings
 –rules[=SECTION]  Activa reglas para deformar palabras para el modo wordlists.
 –incremental[=MODE]  Activa el modo “incremental” [utilizando la sección MODE]
 –markov[=OPTIONS]  Activa el modo “Markov” (ver doc/markov)
 –external=MODE  Modo externo o filtra palabras.
 –stdout[=LENGTH]  Muestra la salida de contraseñas candidatas [corta en la longitud (length)].
  –restore[=NAME]  Reanuda  una sesión interrumpida  [llamada NAME]
 –session[=NAME]  Da a una nueva sesión nombre [NAME]
 –status[=NAME]  Muestra el estado de la sesión [llamada NAME]
 –make-charset=FILE  Construye un archivo de caracteres. Será sobre escrito.
 –show[=LEFT]  Muestra contraseñas crackeadas [si es =LEFT, muestra contraseñas sin crackear]
 –test[=TIME]  Realiza verificaciones y benchmarks para cada segundo de tiempo.
 –users=[-]LOGIN|UID[,..]  Lee únicamente usuarios o logins.
 –groups=[-]GID[,..]  Carga usuarios de grupos.
 –shells=[-]SHELL[,..]  Carga usuarios con/sin shell/s unicamente.
 –salts=[-]COUNT[:MAX]  Carga los salts con/sin COUNT [a max] hashes
 –pot=NAME  Archivo .pot a utilizar.
 –format=NAME  Fuerza al hash definido en NAME:  afs bf bfegg bsdi crc32 crypt
des django dmd5 dominosec dragonfly3-32 dragonfly3-64
dragonfly4-32 dragonfly4-64 drupal7 dummy dynamic_n
epi episerver gost hdaa hmac-md5 hmac-sha1
hmac-sha224 hmac-sha256 hmac-sha384 hmac-sha512
hmailserver ipb2 keepass keychain krb4 krb5 lm lotus5
md4-gen md5 md5ns mediawiki mscash mscash2 mschapv2
mskrb5 mssql mssql05 mysql mysql-sha1 nethalflm netlm
netlmv2 netntlm netntlmv2 nsldap nt nt2 odf office
oracle oracle11 osc pdf phpass phps pix-md5 pkzip po
pwsafe racf rar raw-md4 raw-md5 raw-md5u raw-sha
raw-sha1 raw-sha1-linkedin raw-sha1-ng raw-sha224
raw-sha256 raw-sha384 raw-sha512 salted-sha1 sapb
sapg sha1-gen sha256crypt sha512crypt sip ssh
sybasease trip vnc wbb3 wpapsk xsha xsha512 zip
 –list=WHAT  Lista las posibilidades, ver –list=help o doc/options
 –save-memory=LEVEL Activa el ahorro de memoria, Level 1..3
 –mem-file-size=SIZE  Tamaño del umbral de palabras a pre cargar (por defecto 5MB)
 –nolog  Desactiva la creación y escritura del archivo a john.log
 –crack-status  Imprime una línea de salida cuando una contraseña es crackeada.
 –max-run-time=N Sale con elegancia luego de un determinado tiempo.
 –regen-lost-salts=N  Regenera los salts (ver doc/options)
 –plugin=NAME[,…]  Carga este/estos plugin/s.

  • Usage: unique [-v] [-inp=fname] [-cut=len] [-mem=num] OUTPUT-FILE [-ex_file=FNAME2] [-ex_file_only=FNAME2]

Ejemplos de uso.

  • unshadow: Combinar los archivos provistos passwd (passwd) y shados (shadow) y enviarlo a un archivo (>unshadowed.txt)

  • john: Utilizando un archivo (–wordlist=/usr/share/john/password.lst), aplicar reglas para deformar (–rules) e intentar crackear el hash con la contraseña en el archivo dado (unshadowed.txt):

  • unique: Utilizando el modo verbose (-v), leer y listar contraseñas (-inp=allwords.txt) y guardar únicamente palabras singulares en el archivo (uniques.txt):