Analyse APT Prince de Perse : Malwares Infy, Foudre, et Tonnerre
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Prince of Persia (également suivi sous le nom APT-C-07) est un acteur d’espionnage cybernétique aligné sur l’Iran, évalué comme actif depuis 2007. Le groupe a utilisé plusieurs familles de malwares propriétaires — Infy, Foudre, Tonnerre et MaxPinner — pour surveiller les organisations médiatiques, les entités politiques et les cibles de la société civile. Les opérations combinent souvent l’hameçonnage ciblé avec des chemins d’infection au hasard et reposent sur des méthodes de commande et de contrôle sur mesure, y compris des canaux basés sur des bots Telegram, pour maintenir l’accès et déplacer les données des systèmes compromis.
Enquête
Unit 42 et d’autres équipes de recherche ont retracé la progression des outils de l’acteur depuis l’infrastructure Infy observée en 2016 jusqu’au retour de l’activité Foudre en 2017 et une itération 2025 de Tonnerre qui utilise Telegram pour la commande et le contrôle. Les rapports techniques soulignent la livraison par des téléchargeurs de macros Visual Basic, la persistance via l’installation de services Windows, et l’utilisation de la logique de génération de domaine pour soutenir une infrastructure résiliente. Les analystes ont également documenté la fonctionnalité au niveau des API Windows natives utilisée pour l’accès aux identifiants et les comportements de surveillance tels que la frappe de clavier, ainsi que les schémas d’exécution qui indiquent un raffinement continu des techniques post-compromission.
Atténuation
Appliquez des contrôles stricts pour les macros Office et imposez la purification des pièces jointes d’email pour réduire les opportunités d’exécution initiale. Mettez en œuvre des contrôles réseau pour restreindre ou surveiller de près le trafic Telegram dans les environnements où il n’est pas nécessaire pour les opérations commerciales. Sur les points d’extrémité, alertez sur les créations de services suspects, suivez l’utilisation de rundll32 en cohérence avec les chaînes d’exécution DLL, et bloquez les noms de fichiers malveillants connus ainsi que les schémas de persistance basés sur le registre. Maintenez un contenu de détection à jour pour les modèles de domaine changeant dynamiquement associés à un comportement de type DGA et validez régulièrement les contrôles par rapport à la télémétrie actuelle.
Réponse
Si des indicateurs sont détectés, isolez le système affecté, capturez les artefacts volatils, et recherchez les noms de service spécifiques et les entrées de registre utilisées pour la persistance. Étendez le triage à la création de tâches planifiées, à l’activité de chargement DLL anormale, et à toute preuve de communications C2 basées sur Telegram. Supprimez les services malveillants et les fichiers mis en scène en utilisant des plans de remédiation validés, puis remplacez les identifiants potentiellement exposés et surveillez de près les tentatives de retour ou de réinfection sur les hôtes adjacents.
graph TB %% Class definitions classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Nodes for each step step1[« <b>Action</b> – <b>T1566.001 Pièce jointe de spearphishing</b><br/>L’attaquant envoie un e-mail ciblé avec un document Office malveillant contenant des macros. »] class step1 action step2[« <b>Action</b> – <b>T1059.005 Visual Basic</b><br/>La macro exécute du code VBA qui extrait et lance la charge utile Infy/Foudre. »] class step2 action malware_inf[« <b>Malware</b> – <b>Nom</b>: Infy/Foudre<br/><b>Description</b>: Charge utile livrée via une macro Office. »] class malware_inf malware step3[« <b>Action</b> – <b>T1204.001 Lien malveillant</b><br/>La victime clique sur un lien ou ouvre la pièce jointe, déclenchant l’exécution de la macro. »] class step3 action step4[« <b>Action</b> – <b>T1574.010 Détournement du flux d’exécution via des permissions faibles</b><br/>Le malware crée un service Windows avec des permissions modifiées pour la persistance. »] class step4 action step5[« <b>Action</b> – <b>T1027 Fichiers ou informations obfusqués</b><br/>La charge utile est emballée dans une archive auto-extractible protégée par mot de passe avec un encodage personnalisé. »] class step5 action step6[« <b>Action</b> – <b>T1036 Masquage</b><br/>Les fichiers malveillants sont nommés pour ressembler à des logiciels légitimes comme “Cyberlink” ou “SnailDriver”. »] class step6 action step7[« <b>Action</b> – <b>T1056.001 Capture de saisie (Keylogging)</b><br/>Le keylogging est effectué via des hooks de l’API Windows pour capturer les identifiants utilisateur. »] class step7 action step8[« <b>Action</b> – <b>T1555.003 Identifiants des navigateurs</b><br/>Vole les mots de passe, cookies et l’historique de navigation de Chrome, Edge, Firefox et autres navigateurs. »] class step8 action step9[« <b>Action</b> – <b>T1012 Interrogation du registre</b><br/>Lit HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid pour obtenir l’identifiant du système. »] class step9 action step10[« <b>Action</b> – <b>T1518 Découverte de logiciels</b> et <b>T1518.001 Découverte de logiciels de sécurité</b><br/>Énumère les applications installées et vérifie la présence de répertoires antivirus. »] class step10 action step11[« <b>Action</b> – <b>T1010 Découverte des fenêtres d’application</b><br/>Énumère les fenêtres ouvertes pour détecter des outils de sécurité ou des consoles d’analyse. »] class step11 action step12[« <b>Action</b> – <b>T1005 Données du système local</b><br/>Collecte des documents, images et archives dans les dossiers utilisateur. »] class step12 action op_collect_methods((« AND »)) class op_collect_methods operator step13[« <b>Action</b> – <b>T1113 Capture d’écran</b>, <b>T1123 Capture audio</b>, <b>T1125 Capture vidéo</b>, <b>T1115 Données du presse-papiers</b><br/>Enregistre l’écran, le microphone, la webcam et le presse-papiers. »] class step13 action step14[« <b>Action</b> – <b>T1074.001 Préparation locale des données</b><br/>Compresse les fichiers collectés en archives ZIP ou RAR dans des emplacements temporaires. »] class step14 action step15[« <b>Action</b> – <b>T1102.002 Communication bidirectionnelle via service web</b><br/>Utilise un bot ou un groupe Telegram pour le C2 et l’exfiltration. »] class step15 action tool_telegram[« <b>Outil</b> – <b>Nom</b>: Telegram Bot<br/><b>Description</b>: Permet une communication C2 bidirectionnelle via Telegram. »] class tool_telegram tool step16[« <b>Action</b> – <b>T1568.002 Algorithmes de génération dynamique de domaines</b><br/>Génère des domaines C2 basés sur des valeurs temporelles. »] class step16 action step17[« <b>Action</b> – <b>T1497 Évasion des sandbox de virtualisation</b><br/>Détecte des outils d’analyse comme Deep Freeze et termine l’exécution s’ils sont détectés. »] class step17 action step18[« <b>Action</b> – <b>T1564 Masquer les artefacts</b><br/>Termine et renomme les processus et fichiers malveillants pour éviter la détection. »] class step18 action %% Connections showing the attack flow step1 –>|leads_to| step2 step2 –>|executes| malware_inf malware_inf –>|triggers| step3 step3 –>|leads_to| step4 step4 –>|establishes| step5 step5 –>|enables| step6 step6 –>|enables| step7 step7 –>|provides| step8 step8 –>|provides| step9 step9 –>|provides| step10 step10 –>|provides| step11 step11 –>|provides| step12 step12 –>|feeds| op_collect_methods op_collect_methods –>|combines| step13 step13 –>|feeds| step14 step14 –>|prepares| step15 step15 –>|uses| tool_telegram tool_telegram –>|supports| step16 step16 –>|supports| step17 step17 –>|supports| step18
Flux d’attaque
Détections
Exécution de Taskkill suspecte (via cmdline)
Voir
Ligne de commande suspecte contenant le nom du navigateur en tant qu’argument (via cmdline)
Voir
Opération possible à la main ou via un script réalisée dans des dossiers inhabituels (via cmdline)
Voir
Utilisation potentielle de Lame pour enregistrer le son (via cmdline)
Voir
Abus potentiel de Telegram en tant que canal de commande et contrôle (via dns_query)
Voir
Appel de fonctions API Windows suspectes depuis Powershell (via powershell)
Voir
Un archive auto-extractible a potentiellement été créée (via file_event)
Voir
IOC (emails) à détecter : Analyse APT Prince of Persia : Malwares Infy, Foudre et Tonnerre
Voir
Exécution et évitement du malware Foudre Prince of Persia [Création de processus Windows]
Voir
Détection du malware Tonnerre utilisant un bot Telegram et une génération dynamique de domaine [Connexion réseau Windows]
Voir
Détection d’appels API du malware Infy [Windows Sysmon]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de télémétrie et de base doit avoir réussi.
Justification : 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 la narration doivent directement refléter les TTP identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.
-
Narrative et commandes d’attaque :
L’adversaire simulé imite le comportement du malware Infy en créant trois exécutables fictifs dont les noms de fichiers correspondent aux appels d’API observés par la règle. En utilisantCopy-Item, nous dupliquonsnotepad.exe(un binaire bénin, déjà présent) dans le répertoire temporaire et le renommons pour qu’il corresponde à chaque appel API. L’attaquant exécute ensuite chaque exécutable fictif, produisant des événements de création de processus Sysmon avecImagevaleurs se terminant parGetFileAttributesA.exe,GetMessageA.exe, etDispatchMessageA.exe. Parce que la condition de la règle estselection1 ou selection2sur leImagechamp, chaque lancement satisfait la règle et génère une alerte. -
Script de test de régression :
# ------------------------------------------------- # Script de simulation - Test de détection des appels API Infy # ------------------------------------------------- $tempDir = "$env:TEMPInfySim" New-Item -ItemType Directory -Path $tempDir -Force | Out-Null # Helper: copier notepad.exe vers un nouveau nom function Copy-And-Run { param ( [string]$newName ) $src = "$env:SystemRootSystem32notepad.exe" $dst = Join-Path $tempDir $newName Copy-Item -Path $src -Destination $dst -Force Write-Host "Créé $dst" Start-Process -FilePath $dst -WindowStyle Hidden } # Créer et exécuter des binaires fictifs correspondant aux noms d'API Copy-And-Run -newName "GetFileAttributesA.exe" Copy-And-Run -newName "GetMessageA.exe" Copy-And-Run -newName "DispatchMessageA.exe" Write-Host "Simulation complète. Vérifiez SIEM pour les alertes." -
Commandes de nettoyage :
# ------------------------------------------------- # Script de nettoyage - Supprimer les binaires simulés # ------------------------------------------------- $tempDir = "$env:TEMPInfySim" # Arrêter tous les processus fictifs restants Get-Process -Name "GetFileAttributesA","GetMessageA","DispatchMessageA" -ErrorAction SilentlyContinue | Stop-Process -Force # Supprimer le répertoire temporaire et son contenu Remove-Item -Path $tempDir -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Nettoyage complet."