SOC Prime Bias: Élevé

10 Jun 2026 20:37 UTC

Analyse Technique du MLTBackdoor

Author Photo
SOC Prime Team linkedin icon Suivre
Analyse Technique du MLTBackdoor
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Zscaler ThreatLabz a identifié une nouvelle famille de malwares, MLTBackdoor, en mai 2026. La menace est délivrée par une chaîne d’infection ClickFix en plusieurs étapes et semble être utilisée par des opérateurs de rançongiciels pour établir un accès initial et faciliter le mouvement latéral. Le malware s’appuie sur une forte obfuscation, un algorithme de génération de domaine, et un chargeur de Beacon Object File (BOF) pour étendre ses capacités après exécution. Ses communications réseau sont cryptées sur TLS et sont conçues pour ressembler au trafic légitime de Microsoft Delivery Optimization, aidant ainsi l’activité à se fondre dans le comportement réseau normal.

Enquête

L’analyse a suivi la chaîne d’infection jusqu’à un conhost.exe wrapper qui a téléchargé une archive compressée depuis un domaine généré par la logique DGA du malware. À l’intérieur de cette archive, endpointdlp.dll a déchiffré une charge utile cryptée RC4 qui a ensuite été chargée en tant que binaire MLTBackdoor. Les chercheurs ont découvert que le malware utilise l’arithmétique booléenne mixte, l’aplatissement du flux de contrôle, les appels système indirects, et un protocole de communication cryptée personnalisé pour empêcher l’analyse et la détection. Le chargeur intégré de BOF permet également aux opérateurs de faire fonctionner des modules supplémentaires de style Cobalt Strike en mémoire.

Atténuation

Les défenseurs devraient bloquer les domaines de commande et de contrôle identifiés et surveiller les motifs DGA associés. La détection devrait également se concentrer sur la chaîne d’agent utilisateur spécifique et le trafic TLS dirigé vers /api/v1/telemetry sur le port 443. Les équipes de sécurité devraient surveiller l’utilisation suspecte de conhost.exe avec les arguments documentés et pour la création de endpointdlp.dll dans les répertoires temporaires. Les détections basées sur le comportement pour le hachage d’API et l’utilisation d’appels système indirects peuvent améliorer davantage la visibilité de l’activité de MLTBackdoor.

Réponse

Si une activité MLTBackdoor est détectée, isolez immédiatement le point d’extrémité affecté, terminez le processus malveillant, et supprimez tous les fichiers déposés dans le répertoire Temp par le chargeur initial. Les enquêteurs devraient ensuite effectuer un examen médico-légal pour des modules BOF supplémentaires ou des charges utiles de suivi. Tout identifiant potentiellement exposé devrait être réinitialisé, et la chasse aux menaces devrait être étendue pour identifier les tentatives de mouvement latéral utilisant le même savoir-faire.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 %% Nodes step_a["<b>Technique</b> – <b>T1189 Compromission par Drive-by</b> : L’adversaire héberge du contenu malveillant qui est livré lors de la visite du site compromis par une victime.<br/><b>Technique</b> – <b>T1204.001 Exécution par l’utilisateur : Lien malveillant</b> : La victime clique sur un lien conçu sur mesure qui déclenche l’exécution de la charge utile."] class step_a action step_b["<b>Technique</b> – <b>T1659 Injection de contenu</b> : Du code malveillant est injecté dans des pages Web légitimes afin que les visiteurs reçoivent le contenu compromis."] class step_b action step_c["<b>Technique</b> – <b>T1553.002 Exécution par Proxy de Binaire Signé (Defender)</b> : Utilisation d’un binaire signé Microsoft Defender pour exécuter par proxy.<br/><b>Technique</b> – <b>T1574.001 Détournement du flux d’exécution : Détournement de l’ordre de recherche de DLL</b> : Charge du code malveillant en manipulant l’ordre de résolution des DLL.<br/><b>Technique</b> – <b>T1218 Exécution par Proxy de Binaire Signé</b> : Exécute la charge utile à travers des binaires signés de confiance."] class step_c action step_d["<b>Technique</b> – <b>T1027.007 Fichiers Obfusqués/Stockés : Charge utile intégrée</b> : La charge utile est obfusquée en utilisant l’analyse binaire macro (MBA) et le format de fichier compressé (CFF) pour échapper à la détection."] class step_d action step_e["<b>Technique</b> – <b>T1497.001 Évasion de Virtualisation/Sandbox : Vérifications du système</b> : Vérifie les environnements virtualisés.<br/><b>Technique</b> – <b>T1497.003 Évasion de Virtualisation/Sandbox : Vérifications temps</b> : Utilise des vérifications temporelles pour détecter l’analyse.<br/><b>Technique</b> – <b>T1622 Évasion du Débogueur</b> : Détecte la présence de débogueurs et altère le comportement."] class step_e action step_f["<b>Technique</b> – <b>T1568 Générer, Obfusquer, ou Changer un Nom de Domaine</b> : Génère de nombreux noms de domaine pour le commandu2011andu2011control.<br/><b>Technique</b> – <b>T1104 Service Web (C2 de repli)</b> : Utilise un service Web comme canal de communication de repli."] class step_f action step_g["<b>Technique</b> – <b>T1090 Proxy</b> : Route le trafic C2 à travers un proxy.<br/><b>Technique</b> – <b>T1205 Signalisation de Trafic</b> : Encode les informations de signalisation dans un trafic légitime.<br/><b>Technique</b> – <b>T1001.003 Réseau de Trafic Obfusqué/Chiffré : Usurpation de Protocole</b> : Se fait passer pour du trafic TLS 443 normal avec un faux agent utilisateur."] class step_g action step_h["<b>Technique</b> – <b>T1105 Transfert d’Outil Entrant</b> : Transfère une charge utile de deuxième étape à l’hôte compromis sur le réseau."] class step_h action step_i["<b>Technique</b> – <b>T1546.006 Exécution Déclenchée par Événement : Détournement du Modèle d’Objet Composant (chargeur BOF)</b> : Charge et exécute des Fichiers d’Objet Beacon en utilisant un chargeur de Débordement de Tampon (BOF)."] class step_i malware %% Connections step_a –>|conduit_à| step_b step_b –>|conduit_à| step_c step_c –>|conduit_à| step_d step_d –>|conduit_à| step_e step_e –>|conduit_à| step_f step_f –>|conduit_à| step_g step_g –>|conduit_à| step_h step_h –>|conduit_à| step_i "

Flux d’attaque

Exécution de Simulation

Condition Préalable : Le Test Préliminaire de Télémétrie & Recueil des Données de Référence doit avoir réussi.

Justification : 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 exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non liés conduiront à un diagnostic erroné.

  • Narratif de l’Attaque & Commandes :

    1. Reconnaissance – Résolution du domaine DGA – Le backdoor génère une requête DNS pour hrs2y15sungu.com, un domaine produit par son DGA interne.
    2. Contact C2 – Ouvrir un socket TCP – En utilisant PowerShell, l’adversaire crée une connexion TCP brute à l’IP résolue sur le port 443 (HTTPS) pour se fondre dans le trafic normal.
    3. Récupération de Charge Utile (T1105) – Sur le même socket, le backdoor récupérerait des modules additionnels ; pour le test, nous envoyons simplement une chaîne inoffensive.

    Ces étapes émettent un enregistrement d’Événement Sysmon ID 3 avec DestinationHostname = hrs2y15sungu.com, satisfaisant la règle de Sigma pour la sélection condition.

  • Script de Test de Régression :

    # TC-20260610-A7B3Z – Simuler la communication C2 de MLTBackdoor
    # -------------------------------------------------------
    # 1. Résoudre le domaine malveillant (sortie simulée du DGA)
    $malDomain = "hrs2y15sungu.com"
    try {
     $ip = [System.Net.Dns]::GetHostAddresses($malDomain)[0].IPAddressToString
    } catch {
     Write-Error "Échec de la résolution de $malDomain – annulation du test."
     exit 1
    }
    
    # 2. Ouvrir une connexion TCP à l'IP résolue sur le port 443
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($ip, $port)
    
    # 3. Envoyer une charge utile inoffensive (simulant la récupération de module)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("TEST_PAYLOAD")
    $stream.Write($payload, 0, $payload.Length)
    
    # 4. Garder la connexion ouverte brièvement pour garantir la génération de journaux
    Start-Sleep -Seconds 5
    
    # 5. Nettoyage
    $stream.Close()
    $client.Close()
    Write-Output "Simulation terminée – connexion à $malDomain ($ip:$port) fermée."
  • Commandes de Nettoyage :

    # Assurez-vous qu'aucun socket persistant ne reste (au cas où le script s'est arrêté)
    Get-NetTCPConnection -RemotePort 443 |
     Where-Object { $_.RemoteAddress -eq (Resolve-DnsName hrs2y15sungu.com).IPAddress } |
     ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }