
Référence Hashcat pour OSCP/tests de pénétration: identification de hachages, syntaxe de cracking pour Linux, Windows, archives, bases de données, tickets Kerberos et attaques basées sur des règles.
Aide-mémoire Hashcat pour l'OSCP https://hashcat.net/wiki/doku.php?id=hashcat
hash-identifier
Exemples de hachages : https://hashcat.net/wiki/doku.php?id=example_hashes
J'ai constaté que je peux tirer un peu plus de puissance de mon craquage de hachages en ajoutant ces paramètres :
--force -O -w 4 --opencl-device-types 1,2
Ceux-ci forceront Hashcat à utiliser l'interface GPU CUDA qui est boguée mais offre plus de performances (–force), optimiseront pour les mots de passe de 32 caractères ou moins (-O) et régleront la charge de travail sur « Insane » (-w 4), ce qui est censé rendre votre ordinateur effectivement inutilisable pendant le processus de craquage. Enfin, « --opencl-device-types 1,2 » forcera Hashcat à utiliser à la fois le GPU et le CPU pour gérer le craquage.
Créez un fichier .hash avec tous les hachages que vous souhaitez craquer, puthasheshere.hash : $1$O3JMY.Tw$AdLnLjQ/5jXF9.MTp3gHv/
Exemple de Hashcat pour craquer des mots de passe Linux md5crypt $1$ avec rockyou :
hashcat --force -m 500 -a 0 -o found1.txt --remove puthasheshere.hash /usr/share/wordlists/rockyou.txt
Exemple de Hashcat pour craquer des mots de passe Wordpress avec rockyou :
hashcat --force -m 400 -a 0 -o found1.txt --remove wphash.hash /usr/share/wordlists/rockyou.txt
Exemples de hachages http://openwall.info/wiki/john/sample-hashes
Not So Secure a créé une règle personnalisée avec laquelle j'ai eu de la chance par le passé :
https://www.notsosecure.com/one-rule-to-rule-them-all/
La règle peut être téléchargée depuis leur site Github :
https://github.com/NotSoSecure/password_cracking_rules
Je place généralement OneRuleToRuleThemAll.rule dans le sous-dossier rules et je l'exécute comme ceci depuis ma machine Windows (d'après l'article 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 équivaut à :
?ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Bruteforce tous les mots de passe de longueur 1 à 8 avec les caractères possibles 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 | Description | Type |
|---|---|---|
| 3000 | LM | Systèmes d'exploitation |
| 1000 | NTLM | Systèmes d'exploitation |
Après avoir récupéré ou extrait le fichier NTDS.dit et la ruche de registre SYSTEM, ou après avoir vidé la mémoire LSASS d'une machine Windows, vous vous retrouvez souvent avec des hachages NTLM.
| Chemin | Description |
|---|---|
| C:\Windows\NTDS\ntds.dit | Base de données Active Directory |
| C:\Windows\System32\config\SYSTEM | Ruche de registre contenant la clé utilisée pour chiffrer les hachages |
Et en utilisant Impacket pour extraire les hachages
impacket-secretsdump -system SYSTEM -ntds ntds.dit -hashes lmhash:nthash LOCAL -outputfile ntlm-extract
Vous pouvez craquer le dump de hachages NTLM en utilisant la syntaxe hashcat suivante :
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 avec une Nvidia 2060 GTX : Vitesse : 7000 MH/s Taux de récupération : 12.47% Temps écoulé : 2 heures 35 minutes
Un nom de principal de service (SPN) est un identifiant unique d'une instance de service. Les SPN sont utilisés par l'authentification Kerberos pour associer une instance de service à un compte d'ouverture de session de service. Cela permet à une application cliente de demander que le service authentifie un compte même si le client ne possède pas le nom du compte. KRB5TGS - Kerberoasting des comptes de service qui utilisent un SPN. Une fois que vous avez identifié un compte de service Kerberoastable (BloodHound ? Powershell Empire ? - probablement un compte de service MS SQL Server), n'importe quel utilisateur AD peut demander un hachage krb5tgs à partir de ce compte, qui peut être utilisé pour craquer le mot de passe.
D'après mes benchmarks, le craquage KRB5TGS est 28 fois plus lent que le NTLM.
Hashcat prend en charge plusieurs versions du hachage KRB5TGS, qui peuvent être facilement identifiées par le nombre entre les signes dollar dans le hachage lui-même.
KRB5TGS Type 23 - liste de mots « humans only » de Crackstation avec la liste de règles de mutations 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 avec une Nvidia 2060 GTX : Vitesse : 250 MH/s Temps écoulé : 9 minutes
Il se peut qu'on vous demande de récupérer un mot de passe à partir d'une authentification SMB (NTLMv2) issue d'une capture de paquets. Voici un processus en 9 étapes pour formater correctement le hachage afin d'y parvenir. 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 semble avoir des problèmes avec certains formats de hachage zip générés par zip2john. Vous pouvez résoudre ce problème en modifiant le contenu du hachage zip pour l'aligner sur le format de hachage zip d'exemple trouvé sur la page d'exemples de hashcat :
$zip2$*0*3*0*b5d2b7bf57ad5e86a55c400509c672bd*d218*0**ca3d736d03a34165cfa9*$/zip2$
John semble accepter une plus large gamme de formats zip pour le craquage.
PRINCE (PRobability INfinite Chained Elements) est un utilitaire de hashcat pour générer aléatoirement des mots de passe probables :
pp64.bin --pw-min=8 < dict.txt | head -20 shuf dict.txt | pp64.bin --pw-min=8 | head -20
Référence :
https://github.com/hashcat/princeprocessor
L'attaque Purple Rain utilise une combinaison de PRINCE, d'un dictionnaire et de règles de mutation aléatoires pour créer dynamiquement une infinité de combinaisons de mots de passe.
shuf dict.txt | pp64.bin --pw-min=8 | hashcat -a 0 -m #type -w 4 -O hashes.txt -g 300000
Référence :
https://www.netmux.com/blog/purple-rain-attack
| ID | Description | Type |
|---|
| 500 | md5crypt $1$, MD5(Unix) | Systèmes d'exploitation |
| 200 | bcrypt $2*, Blowfish(Unix) | Systèmes d'exploitation |
| 400 | sha256crypt $5$, SHA256(Unix) | Systèmes d'exploitation |
| 1800 | sha512crypt $6$, SHA512(Unix) | Systèmes d'exploitation |
| ID | Description | Type |
|---|
| 900 | MD4 | Hachage brut |
| 0 | MD5 | Hachage brut |
| 5100 | Half MD5 | Hachage brut |
| 100 | SHA1 | Hachage brut |
| 10800 | SHA-384 | Hachage brut |
| 1400 | SHA-256 | Hachage brut |
| 1700 | SHA-512 | Hachage brut |
| ID | Description | Type |
|---|
| 11600 | 7-Zip | Archives |
| 12500 | RAR3-hp | Archives |
| 13000 | RAR5 | Archives |
| 13200 | AxCrypt | Archives |
| 13300 | AxCrypt in-memory SHA1 | Archives |
| 13600 | WinZip | Archives |
| 9700 | MS Office <= 2003 $0/$1, MD5 + RC4 | Documents |
| 9710 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #1 | Documents |
| 9720 | MS Office <= 2003 $0/$1, MD5 + RC4, collider #2 | Documents |
| 9800 | MS Office <= 2003 $3/$4, SHA1 + RC4 | Documents |
| 9810 | MS Office <= 2003 $3, SHA1 + RC4, collider #1 | Documents |
| 9820 | MS Office <= 2003 $3, SHA1 + RC4, collider #2 | Documents |
| 9400 | MS Office 2007 | Documents |
| 9500 | MS Office 2010 | Documents |
| 9600 | MS Office 2013 | Documents |
| 10400 | PDF 1.1 - 1.3 (Acrobat 2 - 4) | Documents |
| 10410 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #1 | Documents |
| 10420 | PDF 1.1 - 1.3 (Acrobat 2 - 4), collider #2 | Documents |
| 10500 | PDF 1.4 - 1.6 (Acrobat 5 - 8) | Documents |
| 10600 | PDF 1.7 Level 3 (Acrobat 9) | Documents |
| 10700 | PDF 1.7 Level 8 (Acrobat 10 - 11) | Documents |
| 16200 | Apple Secure Notes | Documents |
| ID | Description | Type | Example Hash |
|---|
| 12 | PostgreSQL | Serveur de base de données | a6343a68d964ca596d9752250d54bb8a:postgres |
| 131 | MSSQL (2000) | Serveur de base de données | 0x01002702560500000000000000000000000000000000000000008db43dd9b1972a636ad0c7d4b8c515cb8ce46578 |
| 132 | MSSQL (2005) | Serveur de base de données | 0x010018102152f8f28c8499d8ef263c53f8be369d799f931b2fbe |
| 1731 | MSSQL (2012, 2014) | Serveur de base de données | 0x02000102030434ea1b17802fd95ea6316bd61d2c94622ca3812793e8fb1672487b5c904a45a31b2ab4a78890d563d2fcf5663e46fe797d71550494be50cf4915d3f4d55ec375 |
| 200 | MySQL323 | Serveur de base de données | 7196759210defdc0 |
| 300 | MySQL4.1/MySQL5 | Serveur de base de données | fcf7c1b8749cf99d88e5f34271d636178fb5d130 |
| 3100 | Oracle H: Type (Oracle 7+) | Serveur de base de données | 7A963A529D2E3229:3682427524 |
| 112 | Oracle S: Type (Oracle 11+) | Serveur de base de données | ac5f1e62d21fd0529428b84d42e8955b04966703:38445748184477378130 |
| 12300 | Oracle T: Type (Oracle 12+) | Serveur de base de données | 78281A9C0CF626BD05EFC4F41B515B61D6C4D95A250CD4A605CA0EF97168D670EBCB5673B6F5A2FB9CC4E0C0101E659C0C4E3B9B3BEDA846CD15508E88685A2334141655046766111066420254008225 |
| 8000 | Sybase ASE | Serveur de base de données | 0xc00778168388631428230545ed2c976790af96768afa0806fe6c0da3b28f3e132137eac56f9bad027ea2 |