Source: Microsoft Security Blog — Microsoft Incident Response (DART) publie une analyse technique d’un nouveau backdoor, « SesameOp », découvert en juillet 2025 lors d’une réponse à incident où les attaquants visaient une persistance longue durée à des fins d’espionnage.
• 🧩 Chaîne d’infection et composants: Le loader Netapi64.dll (obfusqué via Eazfuscator.NET) est chargé par injection .NET AppDomainManager via un fichier .config, crée des marqueurs (fichier C:\Windows\Temp\Netapi64.start, mutex) et exécute un binaire XOR-décodé « .Netapi64 ». Le composant principal OpenAIAgent.Netapi64 lit une configuration dans la ressource .NET TextFile1 au format <OpenAI_API_Key>|<Dictionary_Key_Name>|
• 🎯 C2 via OpenAI Assistants API: Le backdoor liste/ crée des Vector Stores et Assistants et s’appuie sur les champs d’Assistant (description: « SLEEP », « Payload », « Result ») et des paires thread_id/message_id pour récupérer des commandes et renvoyer des résultats. Les messages sont compressés (GZIP), chiffrés (AES avec clé chiffrée en RSA) et encodés en Base64 pour minimiser et masquer le trafic. Les résultats sont publiés comme nouveaux messages, puis un nouvel Assistant nommé avec le hostname Base64 signale « Result » à l’attaquant.
• 🔐 Exécution et évasion: Le message déchiffré est transformé en dictionnaire de paramètres, un module .NET embarqué est chargé dynamiquement (stocké dans l’Application State « MicroWxx ») et du code est exécuté via Microsoft JScript VsaEngine (Eval.JScriptEvaluate) selon la clé de dictionnaire indiquée par la config. L’attaque combine obfuscation, injection AppDomainManager, compression et double chiffrement (AES/RSA) pour la furtivité et la protection des données échangées.
• 🤝 Contexte et portée: L’incident initial révélait des web shells internes et des processus malveillants persistants s’appuyant sur des utilitaires Visual Studio compromis par des bibliothèques injectées (.NET AppDomainManager injection). Microsoft et OpenAI confirment un abus de capacités légitimes de l’API Assistants (et non une vulnérabilité) — l’API sera dépréciée en août 2026. OpenAI a désactivé la clé API et le compte associés; aucune interaction au-delà d’appels API limités n’a été constatée. L’objectif principal du billet est de documenter le fonctionnement de la porte dérobée et d’aider à la perturber.
• 🛡️ Détections et éléments techniques utiles:
- Microsoft Defender Antivirus: Trojan:MSIL/Sesameop.A (loader), Backdoor:MSIL/Sesameop.A (backdoor). Alerte MDE: « Possible dotnet process AppDomainManager injection »; requêtes de chasse pour connexions vers api.openai.com (exemple fourni). Recommandations de durcissement: pare-feu/proxy, blocage C2, tamper protection, EDR en mode blocage, protection cloud, PUA en mode blocage, temps réel, automatisation de la remédiation.
- IOCs (extraits du contenu): • Fichiers/chemins: C:\Windows\Temp\Netapi64.start, C:\Windows\Temp\Netapi64.Exception, fichiers en .Netapi64 • Noms/modules: Netapi64.dll (loader), OpenAIAgent.Netapi64 (backdoor), ressource .NET « TextFile1 », Application State « MicroWxx », clés de config « OpenAIAgent.token », « OpenAIAgent.aaazzz », « OpenAIAgent.proxy » • Mutex: « OpenAI APIS » • Endpoints: api.openai.com (Assistants API, Vector Stores)
- TTPs (observés): • Persistance/évasion: injection .NET AppDomainManager via .config, obfuscation Eazfuscator.NET, utilisation de services légitimes comme C2 • Chiffrement/encapsulation: GZIP + AES (clé 32 octets) + RSA (clé publique/privée intégrées) + Base64 • Exécution: chargement dynamique d’un module .NET embarqué, exécution via Microsoft JScript VsaEngine (Eval) • Découverte/contrôle: création/gestion d’Assistants et Vector Stores, flux « SLEEP/Payload/Result » avec thread_id/message_id
Type d’article: analyse technique et divulgation d’une menace visant à documenter le fonctionnement du backdoor et faciliter sa détection/perturbation.
🧠 TTPs et IOCs détectés
TTP
Persistance/évasion: injection .NET AppDomainManager via .config, obfuscation Eazfuscator.NET, utilisation de services légitimes comme C2; Chiffrement/encapsulation: GZIP + AES (clé 32 octets) + RSA (clé publique/privée intégrées) + Base64; Exécution: chargement dynamique d’un module .NET embarqué, exécution via Microsoft JScript VsaEngine (Eval); Découverte/contrôle: création/gestion d’Assistants et Vector Stores, flux « SLEEP/Payload/Result » avec thread_id/message_id
IOC
Fichiers/chemins: C:\Windows\Temp\Netapi64.start, C:\Windows\Temp\Netapi64.Exception, fichiers en .Netapi64; Noms/modules: Netapi64.dll (loader), OpenAIAgent.Netapi64 (backdoor), ressource .NET « TextFile1 », Application State « MicroWxx », clés de config « OpenAIAgent.token », « OpenAIAgent.aaazzz », « OpenAIAgent.proxy »; Mutex: « OpenAI APIS »; Endpoints: api.openai.com (Assistants API, Vector Stores)
🔗 Source originale : https://www.microsoft.com/en-us/security/blog/2025/11/03/sesameop-novel-backdoor-uses-openai-assistants-api-for-command-and-control/