Attention au SparroWock : La porte dérobée qui mord, les commandes qui capturent
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Le groupe APT aligné avec la Chine, FamousSparrow, a déployé un nouveau cheval de Troie modulaire en C++ nommé SparroWocky, remplaçant son implant précédent SparrowDoor. Le logiciel malveillant inclut des capacités avancées d’anti-analyse telles que le faux empilage et le chargement en mémoire réfléchissante. L’activité actuelle est très concentrée sur les organisations gouvernementales à travers l’Amérique latine.
Enquête
Les chercheurs d’ESET ont identifié SparroWocky en examinant son architecture modulaire et ses caractéristiques de code distinctives, y compris des références au poème Jabberwocky. L’enquête a dévoilé un schéma de trident loader qui repose sur le chargement latéral de DLL et un format de charge utile personnalisé déchiffré avec RC4. Les analystes ont également observé des bibliothèques open-source telles que Mbed TLS et MinHook utilisées pour améliorer la discrétion et la fonctionnalité.
Mitigation
Les organisations devraient appliquer des contrôles stricts autour du chargement latéral de DLL et surveiller toute création de service suspecte ou modification des clés de registre Run. La détection avancée sur les points finaux capable d’identifier l’exécution de PE en mémoire uniquement et la manipulation de la pile est également importante. Les applications exposées au public, y compris les serveurs Exchange, doivent être corrigées rapidement pour réduire les opportunités d’accès initial.
Réponse
Si une activité de SparroWocky est détectée, les systèmes affectés doivent être isolés immédiatement pour empêcher le mouvement latéral et la communication de commande et contrôle. Les intervenants doivent effectuer une analyse forensique de la mémoire pour identifier les modules chargés de manière réfléchissante et enquêter sur les flux d’exécution détournés. Les journaux d’audit doivent également être examinés pour toute installation de service non autorisée ou changement des mécanismes de persistance tels que la SnapCart valeur de registre.
Flux d’attaque
Nous mettons encore à jour cette partie.
Détections
Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via registry_event)
Comportement possible d’exécution différée (via cmdline)
IOC (HashSha1) pour détecter : Méfiez-vous du SparroWock : Le cheval de Troie qui mord, les commandes qui capturent
IOC (SourceIP) pour détecter : Méfiez-vous du SparroWock : Le cheval de Troie qui mord, les commandes qui capturent
IOC (DestinationIP) pour détecter : Méfiez-vous du SparroWock : Le cheval de Troie qui mord, les commandes qui capturent
Détection du chargement de code réflexif du cheval de Troie SparroWocky [Windows Sysmon]
Communication C&C du cheval de Troie SparroWocky et détection de proxy [Windows Network Connection]
Détection de l’exécution en mémoire du cheval de Troie SparroWocky [Windows Process Creation]
Exécution de simulation
-
Narration & Commandes d’attaque : L’adversaire vise à établir un canal de communication clandestin avec un serveur de Commande et Contrôle (C2). Pour contourner les défenses périmétriques simples, l’attaquant utilise un proxy SOCKS5 pour tunneler le trafic, faisant apparaître le trafic comme provenant d’un serveur proxy légitime plutôt que du point final infecté. Cette action est destinée à déclencher le
logiciel_selection_http_proxylogique dans la règle de détection en générant des journaux qui identifient le protocole comme SOCKS5 et l’action comme ‘autoriser’. -
Script de test de régression :
# Simulation de SparroWocky C2 via Proxy SOCKS5 # Remarque : Cela nécessite un proxy accessible ou un écouteur simulé pour déclencher le journal 'autoriser'. $ProxyServer = "127.0.0.1:1080" # Suppose un écouteur/proxy local à des fins de simulation $TargetUrl = "http://example.com" Write-Host "[+] Tentative d'établissement de connexion de proxy SOCKS5 pour simuler C2..." # Utilisation de PowerShell pour forcer une connexion via un proxy $proxy = New-Object System.Net.WebProxy("http://$ProxyServer") $wc = New-Object System.Net.WebClient $wc.Proxy = $proxy try { $wc.DownloadString($TargetUrl) Write-Host "[+] Tentative de connexion. Vérifiez les journaux du pare-feu pour l'activité proxy SOCKS5/HTTP." } catch { Write-Host "[-] Échec de la connexion (attendu si aucun écouteur n'est présent), mais la télémétrie doit toujours être générée par la pile réseau." } -
Commandes de nettoyage :
# Arrêtez tous les écouteurs proxy locaux s'ils ont été démarrés dans le cadre de la configuration du laboratoire Stop-Process -Name "nc" -ErrorAction SilentlyContinue Stop-Process -Name "python" -ErrorAction SilentlyContinue Write-Host "[+] Nettoyage terminé."