Comprobación de las contraseñas de Windows
Para comprobar la fortaleza de las contraseñas de los usuarios de un sistema Windows, lo primero que debemos hacer es generar un fichero con las claves, para lo cual debemos conseguir los dos ficheros donde guarda Windows las contraseñas:
En Windows XP (algoritmo de cifrado LM):
- C:\WINDOWS\system32\config\system
- C:\WINDOWS\system32\config\SAM
En Windows 7 (algoritmo de cifrado NTLM):
- C:\Windows\System32\config\SYSTEM
- C:\Windows\System32\config\SAM
Los dos ficheros anteriores debemos fusionarlos en un único fichero de contraseñas con el comando samdump2, el cual instalaremos si no lo está:
# aptitude install samdump2
Suponiendo que hemos colocado los dos ficheros anteriores en el directorio de trabajo, en el caso de Windows XP ejecutamos lo siguiente:
# samdump2 -o claves system SAM
y para chequear la fortaleza de las claves:
# john claves
En el caso de Windows 7, al utilizar NTLM, no podemos hacer lo mismo con la versión libre de JtR, es necesario instalar la versión Jumbo, para lo cual hay que descargarse, en su última versión, los ficheros fuentes y compilarlos. Los pasos a seguir son:
- Instalar el paquete libssl-dev.
# aptitude install libssl-dev
- Descomprimir los fuentes.
- Desde el directorio src ejecutar:
# ./configure
- Desde el mismo directorio ejecutar lo siguiente para compilar el código fuente, lo cual puede llevar algunos minutos (si queremos ver cómo progresa la compilación eliminar la opción -s):
# make clean && make -s
- Ejecutar john desde la carpeta run:
# ./john
John the Ripper password cracker, version 1.8.0-jumbo-1_omp [linux-gnu 64-bit AVX-autoconf]
Copyright (c) 1996-2014 by Solar Designer and others
Homepage: http://www.openwall.com/john/
Usage: john [OPTIONS] [PASSWORD-FILES]
--single[=SECTION] "single crack" mode
--wordlist[=FILE] --stdin wordlist mode, read words from FILE or stdin
--pipe like --stdin, but bulk reads, and allows rules
--loopback[=FILE] like --wordlist, but fetch words from a .pot file
--dupe-suppression suppress all dupes in wordlist (and force preload)
--format=NAME force hash type NAME: 7z AFS agilekeychain aix-smd5
aix-ssha1 aix-ssha256 aix-ssha512 asa-md5 bcrypt
bfegg Bitcoin blackberry-es10 Blockchain bsdicrypt
chap Citrix_NS10 Clipperz cloudkeychain cq CRC32
crypt dahua descrypt Django django-scrypt dmd5 dmg
dominosec dragonfly3-32 dragonfly3-64 dragonfly4-32
dragonfly4-64 Drupal7 dummy dynamic_n eCryptfs EFS
eigrp EncFS EPI EPiServer fde FormSpring Fortigate
gost gpg HAVAL-128-4 HAVAL-256-3 hdaa HMAC-MD5
HMAC-SHA1 HMAC-SHA224 HMAC-SHA256 HMAC-SHA384
HMAC-SHA512 hMailServer hsrp IKE ipb2 KeePass
keychain keyring keystore known_hosts krb4 krb5
krb5-18 krb5pa-md5 krb5pa-sha1 kwallet LastPass LM
lotus5 lotus85 LUKS MD2 md4-gen md5crypt md5ns mdc2
MediaWiki MongoDB Mozilla mscash mscash2 MSCHAPv2
mschapv2-naive mssql mssql05 mssql12 mysql mysql-sha1
mysqlna net-md5 net-sha1 nethalflm netlm netlmv2
netntlm netntlm-naive netntlmv2 nk nsldap NT nt2
o5logon ODF Office oldoffice OpenBSD-SoftRAID
openssl-enc OpenVMS oracle oracle11 osc Panama
PBKDF2-HMAC-SHA1 PBKDF2-HMAC-SHA256
PBKDF2-HMAC-SHA512 PDF PFX phpass PHPS pix-md5 PKZIP
po postgres PST PuTTY pwsafe RACF RAdmin RAKP rar
RAR5 Raw-Blake2 Raw-Keccak Raw-Keccak-256 Raw-MD4
Raw-MD5 Raw-MD5u Raw-SHA Raw-SHA1 Raw-SHA1-Linkedin
Raw-SHA1-ng Raw-SHA224 Raw-SHA256 Raw-SHA256-ng
Raw-SHA384 Raw-SHA512 Raw-SHA512-ng ripemd-128
ripemd-160 rsvp Salted-SHA1 sapb sapg scrypt sha1-gen
sha1crypt sha256crypt sha512crypt Siemens-S7 SIP
skein-256 skein-512 skey Snefru-128 Snefru-256 SSH
SSH-ng SSHA512 STRIP SunMD5 sxc Sybase-PROP sybasease
tc_aes_xts tc_ripemd160 tc_sha512 tc_whirlpool
tcp-md5 Tiger tripcode VNC vtp wbb3 whirlpool
whirlpool0 whirlpool1 WoWSRP wpapsk xsha xsha512 ZIP
Vemos que esta versión puede trabajar con muchos más algoritmos de cifrado, entre ellos el nt2, que es el que se necesita en este caso.
Ahora la forma de ejecutar el comando john desde el directorio run sería así:
# ./john --format=nt2 directorio/claves
Obra publicada con Licencia Creative Commons Reconocimiento 4.0