🔍 Contexte

Présentation publiée le 11 juin 2026 par Dominik Phillips et Sebastian Feldmann, membres du CSIRT de Deutsche Bahn AG, dans le cadre de la conférence x33fcon 2026. Le contenu est disponible sur GitHub (threathunters-io). L’objectif est de décrire une approche de fingerprinting d’implants C2 modernes à l’exécution, avec un bon rapport performance/confiance.

🎯 Problématique

Les équipes Blue Team détectent aujourd’hui les opérateurs (activité post-compromission) mais rarement l’implant lui-même. Les outils de scan mémoire comme Moneta, PE-Sieve ou Hunt-Sleeping-Beacons sont efficaces mais nécessitent une exécution manuelle et sont déclenchés après détection de l’opérateur. Les artefacts révélateurs (allocations RWX, modules stomped, hooks ntdll, abus de timers/APC, threads anormaux) ne sont pas exposés par les capteurs de sécurité classiques.

🛠️ Approche technique

Les auteurs proposent d’exploiter ETW (Event Tracing for Windows) pour surveiller en continu les artefacts d’évasion des implants :

  • Sleep masking via thread pool : surveillance des événements TP_V2_CBEnqueue (EventType{34}, GUID c861d0e2-a2c1-4d36-9f9c-970bab943a12) pour détecter des callbacks vers ntdll!NtContinue, kernel32!LoadLibrary ou des régions de code dynamique.
  • Code dynamique : corrélation des événements PageFault_VirtualAlloc et PageFault_TypeGroup1 (DemandZeroFault, CopyOnWrite, TransitionFault) avec des callstacks via StackWalk_Event pour identifier l’exécution depuis des régions non mappées à un module légitime.
  • Code dynamique imbriqué (nested dynamic code) : détection de chaînes d’unpacking où du code dynamique alloue d’autres régions dynamiques — IOC fort, rare dans les logiciels légitimes.
  • Tunneling réseau suspect : agrégation par processus des connexions vers des services internes (Kerberos, LDAP, SMB, RDP) combinées à des connexions externes, via TcpIp_SendIPV4 (EventType{10}).
  • Combinaisons suspectes de DLLs administratives : suivi des DLLs chargées dans le temps via Image_V1_Load pour détecter des combinaisons typiques de BOFs (netenum, adcs_enum, ldapsearch…).

📊 Système de scoring

Chaque technique émet un tag pondéré. Les tags sont agrégés par processus dans le temps pour produire un score de sévérité (implant fingerprint). Les techniques couvertes par l’outil PoC : Network_public, Network_private, Network_tunneling, Dynamic_code, Dynamic_code_nested, Sleep_tp_callback, Proxy_tp_callback, Module_ballooning, High_num_of_common_service_port.

⚔️ Limites et contournements

  • L’ajout d’unwind info via RtlAddFunctionTable casse la détection basée sur les callstacks brisés.
  • L’exécution asynchrone sans timers (ex: Process-Splitting) contourne la détection des sleepmasks.
  • Les JIT engines (.NET, V8, Java) génèrent des faux positifs sur le code dynamique seul.

📄 Nature de l’article

Publication de recherche technique présentée en conférence, accompagnée d’un outil PoC open source. But principal : proposer un modèle de détection proactif des implants C2 basé sur la télémétrie ETW continue, en complément des approches réactives existantes.

🧠 TTPs et IOCs détectés

TTP

  • T1055 — Process Injection (Defense Evasion)
  • T1620 — Reflective Code Loading (Defense Evasion)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1071 — Application Layer Protocol (Command and Control)
  • T1059 — Command and Scripting Interpreter (Execution)
  • T1497.003 — Virtualization/Sandbox Evasion: Time Based Evasion (Defense Evasion)
  • T1218 — System Binary Proxy Execution (Defense Evasion)

Malware / Outils

  • Moneta (tool)
  • PE-Sieve (tool)
  • Hunt-Sleeping-Beacons (tool)
  • COFFLoader (loader)
  • tracebit (tool)

🟡 Indice de vérification factuelle : 40/100 (moyenne)

  • ⬜ github.com — source non référencée (0pts)
  • ✅ 17596 chars — texte complet (fulltext extrait) (15pts)
  • ⬜ aucun IOC extrait (0pts)
  • ⬜ pas d’IOC à vérifier (0pts)
  • ✅ 7 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ pas de CVE à vérifier (0pts)

🔗 Source originale : https://github.com/threathunters-io/kassandra_x33fcon_2026