Explorer
KNOW-PAT-063

Extraction forensique de credentials - Chrome DPAPI, FileZilla, SAM, SSH

Domaine
forensics
Type
pattern
Priorité
P2

Parent : [[INDEX-CYBERSECU]]

Extraction forensique de credentials - Chrome DPAPI, FileZilla, SAM, SSH

Problème

L'archive Ygg contient une extraction massive de credentials depuis une machine Windows : Chrome décrypté (cookies, passwords), FileZilla (serveurs récents), DPAPI keys (Windows Data Protection), Registry SAM (hashes Windows), SSH keys, et SSL certificates. Ces données montrent comment un système compromis révèle TOUT.

Contexte archive Ygg

  • Dossier : 04_CREDENTIALS/
  • Sous-dossiers : 04a_filezilla/, 04b_chrome_decrypted/, 04c_chrome_raw/, 04d_dpapi_keys/, 04e_configs_secrets/, 04f_registry_sam/, 04g_ssl_certs/, 04h_tor_browser/

Données extraites

1. FileZilla (recentservers.xml)

<RecentServers>
    <Server>
        <Host>example.com</Host>
        <Port>21</Port>
        <User>admin</User>
        <Pass encoding="base64">YWRtaW5wYXNz</Pass>
    </Server>
</RecentServers>

Problème : Mots de passe en base64 (pas chiffrés), serveurs récents = historique complet.

2. Chrome décrypté (passwords.json, cookies.json)

{
  "url": "https://example.com",
  "username": "admin@example.com",
  "password": "GoPay2024!Secure"
}

Problème : Chrome stocke les passwords chiffrés avec DPAPI. Avec les DPAPI keys extraites, ils sont décryptables.

3. DPAPI keys

04d_dpapi_keys/
├── 5e816aa7-3c64-4487-861e-cb94f0a42568
├── 79eca71c-11d8-4f34-8673-ecaa929560ce
├── 7c153764-002b-4666-8ae2-01085f193220
├── CREDHIST
└── Preferred

Problème : Les DPAPI keys protègent Chrome Login Data, cookies, et certificats. Une fois extraites, tout est décryptable.

4. Registry SAM dump

04f_registry_sam/
├── secretsdump.sam
├── secretsdump.secrets
└── secretsdump_log.txt

Problème : Contient les hashes NTLM des utilisateurs Windows. Crackable avec hashcat/John.

5. SSH keys

04e_ssh_keys/
├── id_rsa
├── id_rsa.pub
└── known_hosts

Problème : Clés privées SSH = accès à tous les serveurs configurés dans known_hosts.

6. SSL certificates

04g_ssl_certs/
├── server.crt
└── server.key

Problème : Clé privée SSL = MITM possible, déchiffrement de trafic TLS capturé.

Solution protectif — Protection contre l'extraction forensique

1. Empêcher l'extraction Chrome

# Disable Chrome password saving via GPO / Registry
# Windows
Set-ItemProperty -Path "HKLM:\Software\Policies\Google\Chrome" -Name "PasswordManagerEnabled" -Value 0
Set-ItemProperty -Path "HKLM:\Software\Policies\Google\Chrome" -Name "AutofillAddressEnabled" -Value 0
Set-ItemProperty -Path "HKLM:\Software\Policies\Google\Chrome" -Name "PaymentMethodQueryEnabled" -Value 0

# macOS
defaults write com.google.Chrome PasswordManagerEnabled -bool false

# Linux (Chrome policies)
sudo mkdir -p /etc/opt/chrome/policies/managed
cat <<EOF | sudo tee /etc/opt/chrome/policies/managed/security.json
{
  "PasswordManagerEnabled": false,
  "AutofillAddressEnabled": false,
  "PaymentMethodQueryEnabled": false,
  "SafeBrowsingEnabled": true
}
EOF

2. Détection d'extraction DPAPI

# detect_dpapi_extraction.ps1
$dpapiPath = "$env:APPDATA\Microsoft\Protect"
$dpapiKeys = Get-ChildItem -Path $dpapiPath -Recurse -File

# Surveiller l'accès aux DPAPI keys
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4663} | Where-Object {
    $_.Message -like "*$dpapiPath*"
} | ForEach-Object {
    Write-Warning "Accès DPAPI détecté: $($_.Message)"
}

3. FileZilla sécurisé

<!-- filezilla.xml -->
<Settings>
    <!-- Désactiver le stockage des mots de passe -->
    <Setting name="Kiosk mode">1</Setting>
    <!-- ou utiliser un master password -->
    <Setting name="Master password">true</Setting>
</Settings>

4. SSH key protection

# ~/.ssh/config
Host *
    # Utiliser un agent avec confirmation
    AddKeysToAgent confirm
    # Ou utiliser un hardware token (YubiKey)
    IdentityFile ~/.ssh/id_ed25519_sk  # FIDO2 / hardware-backed

# Chiffrer les clés SSH avec une passphrase FORTE
ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_ed25519
# -a 100 = 100 rounds KDF (lent contre le bruteforce)

5. Détection de forensics tools

# detect_forensics.py — Détecter les outils d'extraction
import psutil
import os

FORENSICS_PROCESSES = [
    'mimikatz', 'procdump', 'secretsdump', 'lsass',
    'volatility', 'autopsy', 'ftk', 'encase',
    'dpapi', 'chromepass', 'webbrowserpassview',
    'nirsoft', 'mftexplorer'
]

FORENSICS_PATHS = [
    r'C:\Tools\mimikatz',
    r'C:\Forensics',
    r'%TEMP%\mimikatz',
    r'%TEMP%\dpapi',
]

def detect_forensics_activity():
    alerts = []
    
    # Vérifier les processus
    for proc in psutil.process_iter(['pid', 'name']):
        for forensics_name in FORENSICS_PROCESSES:
            if forensics_name.lower() in proc.info['name'].lower():
                alerts.append(f"Processus forensics: {proc.info['name']} (PID: {proc.info['pid']})")
    
    # Vérifier les chemins suspects
    for path in FORENSICS_PATHS:
        expanded = os.path.expandvars(path)
        if os.path.exists(expanded):
            alerts.append(f"Chemin forensics: {expanded}")
    
    # Vérifier l'accès aux fichiers sensibles
    sensitive_files = [
        os.path.expandvars(r'%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data'),
        os.path.expandvars(r'%APPDATA%\Microsoft\Protect'),
    ]
    
    return alerts

6. YubiKey / FIDO2 pour SSH et password manager

# Générer une clé SSH hardware-backed (ne peut PAS être extraite)
ssh-keygen -t ed25519-sk -O resident -O verify-required
# -t ed25519-sk = Ed25519 avec FIDO2/U2F
# -O resident = stockée sur le YubiKey
# -O verify-required = demande le PIN à chaque usage

Checklist de validation

  • Chrome : PasswordManagerEnabled = false (GPO)
  • FileZilla : Master password ou Kiosk mode
  • SSH : Clés chiffrées avec passphrase (+ hardware token si possible)
  • Windows : Credential Guard activé (HVCI)
  • Windows : LSA Protection (RunAsPPL)
  • Windows : DPAPI isolation (credential guard)
  • Pas de stockage de mots de passe en base64/clair
  • SSL keys chiffrées avec passphrase
  • Détection de processus forensics (Mimikatz, etc.)
  • Monitoring accès fichiers sensibles (Login Data, DPAPI, SAM)
  • YubiKey/FIDO2 pour les credentials critiques

Anti-pattern associé

  • KNOW-ANT-011 — Unencrypted credential storage

Références