
Referencia de Hashcat para OSCP/pruebas de penetración: identificación de hashes, sintaxis de cracking para Linux, Windows, archivos comprimidos, bases de datos, tickets de Kerberos y ataques basados en reglas.
Chuleta de Hashcat para OSCP
https://hashcat.net/wiki/doku.php?id=hashcat
hash-identifier
Hashes de ejemplo: https://hashcat.net/wiki/doku.php?id=example_hashes
He descubierto que puedo exprimir un poco más de potencia al crackear hashes añadiendo estos parámetros:
--force -O -w 4 --opencl-device-types 1,2
Estos parámetros fuerzan a Hashcat a usar la interfaz CUDA de la GPU, que es inestable pero ofrece más rendimiento (–force), optimizan para contraseñas de 32 caracteres o menos (-O) y establecen la carga de trabajo en "Insane" (-w 4), que supuestamente hace que tu equipo sea prácticamente inutilizable durante el proceso de crackeo. Por último, "--opencl-device-types 1,2 " fuerza a Hashcat a usar TANTO la GPU como la CPU para gestionar el crackeo.
Crea un archivo .hash con todos los hashes que quieras crackear puthasheshere.hash: $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/
Ejemplo de Hashcat crackeando contraseñas Linux md5crypt $1$ con rockyou:
hashcat --force -m 500 -a 0 -o found1.txt --remove puthasheshere.hash /usr/share/wordlists/rockyou.txt
Ejemplo de Hashcat crackeando contraseñas de WordPress con rockyou:
hashcat --force -m 400 -a 0 -o found1.txt --remove wphash.hash /usr/share/wordlists/rockyou.txt
Hashes de ejemplo http://openwall.info/wiki/john/sample-hashes
Not So Secure ha creado una regla personalizada con la que he tenido buenos resultados en el pasado:
https://www.notsosecure.com/one-rule-to-rule-them-all/
La regla se puede descargar desde su sitio de GitHub:
https://github.com/NotSoSecure/password_cracking_rules
Normalmente coloco OneRuleToRuleThemAll.rule en la subcarpeta rules y lo ejecuto así desde mi equipo Windows (basado en el artículo de notsosecure):
hashcat64.exe --force -m300 --status -w3 -o found.txt --remove --potfile-disable -r rules\OneRuleToRuleThemAll.rule hash.txt rockyou.txt
predefined charsets
?l = abcdefghijklmnopqrstuvwxyz
?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ
?d = 0123456789
?s = «space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?a = ?l?u?d?s
?b = 0x00 - 0xff
?l?d?u es lo mismo que:
?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Fuerza bruta para todas las contraseñas de longitud 1-8 con los posibles caracteres A-Z a-z 0-9
hashcat64 -m 500 hashes.txt -a 3 ?1?1?1?1?1?1?1?1 --increment -1 ?l?d?u
| ID | Descripción | Tipo |
|---|---|---|
| 3000 | LM | Sistemas operativos |
| 1000 | NTLM | Sistemas operativos |
Después de obtener o volcar el NTDS.dit y el hive de registro SYSTEM, o de volcar la memoria de LSASS desde un equipo Windows, a menudo acabarás con hashes NTLM.
| Ruta | Descripción |
|---|---|
| C:\Windows\NTDS\ntds.dit | Base de datos de Active Directory |
| C:\Windows\System32\config\SYSTEM | Hive de registro que contiene la clave usada para cifrar los hashes |
Y usando Impacket para volcar los hashes
impacket-secretsdump -system SYSTEM -ntds ntds.dit -hashes lmhash:nthash LOCAL -outputfile ntlm-extract
Puedes crackear el volcado de hashes NTLM con la siguiente sintaxis de hashcat:
hashcat64 -m 1000 -a 0 -w 4 --force --opencl-device-types 1,2 -O d:\hashsample.hash "d:\WORDLISTS\realuniq.lst" -r OneRuleToRuleThemAll.rule
Benchmark usando una Nvidia 2060 GTX: Velocidad: 7000 MH/s Tasa de recuperación: 12.47% Tiempo transcurrido: 2 horas 35 minutos
Un nombre de principal de servicio (SPN) es un identificador único de una instancia de servicio. Los SPN los usa la autenticación Kerberos para asociar una instancia de servicio con una cuenta de inicio de sesión de servicio. Esto permite que una aplicación cliente solicite que el servicio autentique una cuenta aunque el cliente no tenga el nombre de cuenta. KRB5TGS: cuentas de servicio Kerberoasting que usan SPN. Una vez que hayas identificado una cuenta de servicio Kerberoasteable (¿Bloodhound? ¿Powershell Empire? - probablemente una cuenta de servicio de MS SQL Server), cualquier usuario de AD puede solicitar un hash krb5tgs de ella que se puede usar para crackear la contraseña.
Según mis pruebas comparativas, el crackeo de KRB5TGS es 28 veces más lento que el de NTLM.
Hashcat soporta múltiples versiones del hash KRB5TGS, que se pueden identificar fácilmente por el número entre los signos de dólar del propio hash.
KRB5TGS Tipo 23: lista de palabras solo humanos de Crackstation con la lista de reglas de mutaciones OneRuleToRuleThemAll.
hashcat64 -m 13100 -a 0 -w 4 --force --opencl-device-types 1,2 -O d:\krb5tgs.hash d:\WORDLISTS\realhuman_phill.txt -r OneRuleToRuleThemAll.rule
Benchmark usando una Nvidia 2060 GTX: Velocidad: 250 MH/s Tiempo transcurrido: 9 minutos
Puede que te pidan recuperar una contraseña de una autenticación SMB (NTLMv2) a partir de una captura de paquetes. El siguiente es un proceso de 9 pasos para formatear el hash correctamente y hacerlo. https://research.801labs.org/cracking-an-ntlmv2-hash/
unshadow passwd-file.txt shadow-file.txt
unshadow passwd-file.txt shadow-file.txt > unshadowed.txt
zip2john Zipfile.zip | cut -d ':' -f 2 > hashes.txt
hashcat -a 0 -m 13600 hashes.txt /usr/share/wordlists/rockyou.txt
Hashcat parece tener problemas con algunos formatos de hash zip generados por zip2john. Puedes solucionarlo editando el contenido del hash zip para que coincida con el formato de hash zip de ejemplo que se encuentra en la página de ejemplos de hashcat:
$zip2$*0*3*0*b5d2b7bf57ad5e86a55c400509c672bd*d218*0**ca3d736d03a34165cfa9*$/zip2$
Parece que John acepta una gama más amplia de formatos zip para crackear.
PRINCE (PRobability INfinite Chained Elements) es una utilidad de hashcat para generar aleatoriamente contraseñas probables:
pp64.bin --pw-min=8 < dict.txt | head -20 shuf dict.txt | pp64.bin --pw-min=8 | head -20
Referencia:
https://github.com/hashcat/princeprocessor
El ataque Purple Rain utiliza una combinación de Prince, un diccionario y reglas de mutación aleatorias para crear dinámicamente infinitas combinaciones de contraseñas.
shuf dict.txt | pp64.bin --pw-min=8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
Referencia:
https://www.netmux.com/blog/purple-rain-attack
| ID | Descripción | Tipo |
|---|
| 500 | md5crypt $1$, MD5(Unix) | Sistemas operativos |
| 200 | bcrypt $2*, Blowfish(Unix) | Sistemas operativos |
| 400 | sha256crypt $5, SHA256(Unix) | Sistemas operativos |
| 1800 | sha512crypt $6, SHA512(Unix) | Sistemas operativos |
| ID | Descripción | Tipo |
|---|
| 900 | MD4 | Hash crudo |
| 0 | MD5 | Hash crudo |
| 5100 | Half MD5 | Hash crudo |
| 100 | SHA1 | Hash crudo |
| 10800 | SHA-384 | Hash crudo |
| 1400 | SHA-256 | Hash crudo |
| 1700 | SHA-512 | Hash crudo |
| ID | Descripción | Tipo |
|---|
| 11600 | 7-Zip | Archivos |
| 12500 | RAR3-hp | Archivos |
| 13000 | RAR5 | Archivos |
| 13200 | AxCrypt | Archivos |
| 13300 | AxCrypt in-memory SHA1 | Archivos |
| 13600 | WinZip | Archivos |
| 9700 | MS Office <= 2003 $0/$1, MD5 + RC4 | Documentos |
| 9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1 | Documentos |
| 9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2 | Documentos |
| 9800 | MS Office <= 2003 $3/$4, SHA1 + RC4 | Documentos |
| 9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1 | Documentos |
| 9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2 | Documentos |
| 9400 | MS Office 2007 | Documentos |
| 9500 | MS Office 2010 | Documentos |
| 9600 | MS Office 2013 | Documentos |
| 10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4) | Documentos |
| 10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1 | Documentos |
| 10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2 | Documentos |
| 10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8) | Documentos |
| 10600 | PDF 1.7 Level 3 (Acrobat 9) | Documentos |
| 10700 | PDF 1.7 Level 8 (Acrobat 10 - 11) | Documentos |
| 16200 | Apple Secure Notes | Documentos |
| ID | Descripción | Tipo | Hash de ejemplo |
|---|
| 12 | PostgreSQL | Servidor de base de datos | a6343a68d964ca596d9752250d54bb8a:postgres |
| 131 | MSSQL (2000) | Servidor de base de datos | 0x01002702560500000000000000000000000000000000000000008db43dd9b1972a636ad0c7d4b8c515cb8ce46578 |
| 132 | MSSQL (2005) | Servidor de base de datos | 0x010018102152f8f28c8499d8ef263c53f8be369d799f931b2fbe |
| 1731 | MSSQL (2012, 2014) | Servidor de base de datos | 0x02000102030434ea1b17802fd95ea6316bd61d2c94622ca3812793e8fb1672487b5c904a45a31b2ab4a78890d563d2fcf5663e46fe797d71550494be50cf4915d3f4d55ec375 |
| 200 | MySQL323 | Servidor de base de datos | 7196759210defdc0 |
| 300 | MySQL4.1/MySQL5 | Servidor de base de datos | fcf7c1b8749cf99d88e5f34271d636178fb5d130 |
| 3100 | Oracle H: Type (Oracle 7+) | Servidor de base de datos | 7A963A529D2E3229:3682427524 |
| 112 | Oracle S: Type (Oracle 11+) | Servidor de base de datos | ac5f1e62d21fd0529428b84d42e8955b04966703:38445748184477378130 |
| 12300 | Oracle T: Type (Oracle 12+) | Servidor de base de datos | 78281A9C0CF626BD05EFC4F41B515B61D6C4D95A250CD4A605CA0EF97168D670EBCB5673B6F5A2FB9CC4E0C0101E659C0C4E3B9B3BEDA846CD15508E88685A2334141655046766111066420254008225 |
| 8000 | Sybase ASE | Servidor de base de datos | 0xc00778168388631428230545ed2c976790af96768afa0806fe6c0da3b28f3e132137eac56f9bad027ea2 |