Avant de chasser les tubes malveillants, les analystes doivent comprendre comment le noyau Windows les gère. Un tube nommé est un segment de mémoire partagée que les processus utilisent pour échanger des données. Il fonctionne sur une architecture client/serveur stricte : un processus serveur crée le tube, et des processus clients s’y connectent pour lire ou écrire des données.
Sous le capot, les tubes nommés sont gérés par le gestionnaire d’E/S (I/O Manager) de Windows via le pilote du système de fichiers des tubes nommés (Npfs.sys). Étant donné que Windows traite les tubes comme des objets fichiers, les processus interagissent avec eux à l’aide d’API de fichiers standards telles que CreateFile, ReadFile et WriteFile.
Chemin en espace utilisateur (User-Mode) :\\.\pipe\NomDuTube
Traduction en espace noyau (Kernel-Mode) :\Device\NamedPipe\NomDuTube
Point crucial : les tubes nommés n’existent que dans la mémoire non paginée du noyau (Kernel Pool). Ils ne laissent aucune trace physique sur le disque dur, ce qui en fait le terrain de préparation ultime pour les techniques de type Living off the Land (LOTL).
Bien que les tubes soient principalement utilisés pour l’IPC local, Windows permet d’y accéder à distance via le réseau. Les tubes distants sont encapsulés au sein du protocole Server Message Block (SMB) (port 445) et accessibles via le partage administratif caché IPC$ (ex: \\IP-Cible\pipe\NomDuTube).
C’est le mécanisme fondamental derrière des outils comme PsExec. Les acteurs de la menace utilisent des tubes distants pour pousser des charges utiles et exécuter des commandes à travers le réseau, noyant ainsi fortement leur activité au sein du trafic SMB légitime et très volumineux de l’entreprise.
Afin d’échapper à la détection réseau, les acteurs de la menace modernes évitent que chaque terminal compromis ne communique directement avec Internet (beaconing). À la place, ils établissent un réseau pair-à-pair (P2P).
Une balise principale de sortie (“Egress Beacon”) communique avec le serveur C2 externe, tandis que les balises secondaires (“Child Beacons”) sur les machines internes communiquent uniquement avec la balise de sortie via des Named Pipes encapsulés sur SMB. Pour les outils de détection et réponse réseau (NDR), cela ressemble simplement à du trafic de partage de fichiers Windows interne, masquant complètement les battements de cœur (heartbeat) du C2.
C. Élévation locale de privilèges (Usurpation de tube)
Windows fournit une API puissante nommée ImpersonateNamedPipeClient. Lorsqu’un client se connecte à un tube, le serveur qui a créé le tube peut usurper (impersonate) le jeton de sécurité du client.
Si un attaquant identifie un service système hautement privilégié (s’exécutant en tant que SYSTEM) qui tente de se connecter à un nom de tube prévisible sans vérifier l’identité du serveur, l’attaquant peut créer ce tube de manière préemptive. Lorsque le processus SYSTEM se connecte, l’attaquant vole son jeton, obtenant ainsi une élévation de privilèges locale (LPE) instantanée.
2. Étude de cas récente : le framework “PipeMagic” (2025)
L’abus des tubes nommés ne se limite pas aux anciens outils. En août 2025, Microsoft Threat Intelligence a publié une dissection détaillée de PipeMagic, un framework de porte dérobée (backdoor) modulaire hautement sophistiqué reposant fortement sur l’IPC pour assurer sa furtivité.
Contrairement aux malwares traditionnels qui chargent toutes leurs capacités dans un seul binaire massif, PipeMagic opère en utilisant une architecture de type microservices entièrement en mémoire.
Le bus de données interne
PipeMagic utilise les tubes nommés non seulement pour le Command & Control externe, mais aussi comme “bus de données” interne entre ses différents modules chargés en mémoire (ex: keylogger, scanner réseau, module d’exfiltration). En échangeant des données via des tubes plutôt que par des zones de mémoire partagée ou des écritures sur disque, le malware échappe aux scanners de mémoire des EDR qui recherchent des allocations de mémoire inter-processus anormales.
Évasion EDR
Étant donné que la communication par tube nommé utilise des API NT natives de bas niveau (NtCreateFile, NtFsControlFile), PipeMagic contourne le “hooking” d’API en espace utilisateur (User-Mode) de plus haut niveau (comme les hooks de kernel32.dll) employé par les antivirus classiques, restant ainsi virtuellement invisible pour une surveillance de processus naïve.
Puisque les tubes nommés ne laissent aucune empreinte sur le système de fichiers NTFS, les analystes DFIR doivent s’appuyer sur la télémétrie au niveau du noyau et sur les journaux d’accès aux objets réseau.
Sysmon est l’outil principal pour détecter les abus de tubes nommés sur le terminal.
Événement 17 (Pipe Created) : consigne la création d’un serveur de tube nommé. Crucial pour identifier le processus compromis hébergeant l’écouteur (listener) du C2.
Événement 18 (Pipe Connected) : consigne la connexion d’un client à un tube. Crucial pour tracer le flux de données interne entre les processus injectés de l’attaquant.
B. Accès aux objets de partage réseau (Événement 5145)
Pour détecter le mouvement latéral via l’encapsulation SMB, les analystes doivent surveiller le journal de sécurité (Security) de Windows pour l’Événement 5145 (Un accès à un objet de partage réseau a été vérifié pour voir si le client peut obtenir l’accès).
Focus de chasse : filtrer les accès où le nom de partage (Share Name) est \\*\IPC$ et où le nom cible relatif (Relative Target Name) correspond à des noms de tubes malveillants connus.
La chasse aux menaces avancée nécessite d’identifier les anomalies dans le champ PipeName. Les adversaires utilisent généralement trois stratégies de nommage :
Défauts codés en dur (Hardcoded Defaults) : les script-kiddies et les profils C2 commerciaux par défaut laissent souvent les noms de tubes par défaut. Par exemple, les balises SMB par défaut de Cobalt Strike utilisent fréquemment \pipe\msagent_* ou \pipe\mojo.*.
Randomisation : noms constitués de chaînes hexadécimales ou alphanumériques complètement aléatoires (ex: \pipe\5f3a1b...). Les tubes Windows légitimes utilisent généralement des noms structurés et lisibles (ex: \pipe\spoolss).
Typosquatting / Masquage : les attaquants imitent les tubes Microsoft légitimes pour se fondre dans la masse. Par exemple, créer \pipe\lsass au lieu du tube légitime \pipe\lsass\IPC.
Lorsque les journaux de télémétrie sont purgés ou écrasés, la mémoire volatile (RAM) constitue l’ultime vérité terrain. Étant donné que les tubes nommés sont gérés par le gestionnaire d’E/S de Windows, ils existent en tant qu’objets File dans le pool du noyau (Kernel Pool).
Les analystes DFIR peuvent extraire les tubes nommés actifs et récemment fermés depuis un vidage mémoire (memory dump) en utilisant des frameworks forensiques avancés.
MemProcFS permet aux analystes de monter un vidage mémoire comme un système de fichiers virtuel. Cela rend l’exploration des objets du noyau aussi simple que la navigation dans des dossiers locaux.
Si le tube a été récemment fermé, le handle pourrait avoir disparu, mais la chaîne de caractères peut toujours résider dans des pages mémoire non allouées. Les analystes peuvent utiliser bstrings (provenant des outils d’Eric Zimmerman) pour sculpter (carve) les noms de tubes directement à partir du dump brut ou d’un fichier pagefile.sys capturé.
bstrings_pipe_carving.sh
# Extraction des chaînes UTF-16 (courantes dans la mémoire Windows) correspondant aux modèles de tubes
En corrélant les noms de tubes extraits avec des profils C2 connus, les analystes peuvent identifier la famille de malwares exacte responsable de l’intrusion, même si la charge utile principale a été effacée du disque de manière sécurisée.
Bien que Sysmon offre une excellente visibilité, les solutions EDR modernes réalisent une inspection approfondie en s’accrochant (hooking) directement aux API Windows de bas niveau responsables de la création des tubes.
Comme détaillé dans les recherches de Synacktiv sur le hooking des Named Pipes sous Windows, les agents de télémétrie avancés interceptent les appels à NtCreateFile et NtFsControlFile au niveau du noyau ou de ntdll.dll. En surveillant les requêtes destinées à l’espace de noms \Device\NamedPipe\, les EDR peuvent analyser les propriétés du tube, évaluer l’espace mémoire du thread appelant à la recherche de signes d’injection, et vérifier les DACL demandées en temps réel.
Pour les analystes SOC et les Threat Hunters s’appuyant sur l’ingestion SIEM, l’identification de tubes nommés malveillants implique de rechercher des conventions de nommage réputées malveillantes et de repérer des processus parents suspects (ex: cmd.exe ou powershell.exe créant un serveur de tube).
title: Tube Nommé Suspect Créé/Connecté (Cobalt Strike / Metasploit)
id: 8c9d0e1f-2a3b-4c5d-6e7f-8a9b0c1d2e3f
status: experimental
description: Détecte la création ou la connexion à des tubes nommés utilisant des conventions de nommage par défaut associées à des frameworks C2 courants comme Cobalt Strike et Metasploit.
logsource:
category: pipe_creation
product: windows
detection:
# Événement Sysmon 17 (Pipe Created) ou 18 (Pipe Connected)
selection:
PipeName|contains:
- '\mojo.5688.8052.'# Cobalt Strike par défaut
- '\msagent_'# Cobalt Strike SMB Beacon par défaut
- '\postex_ssh_'# Cobalt Strike SSH
- '\status_'# Cobalt Strike
- '\msf-pty'# Metasploit Meterpreter
condition: selection
level: high
tags:
- attack.command_and_control
- attack.t1090
- attack.t1570
hunt_smb_named_pipe_lateral_movement.kql
// Détecte le mouvement latéral via les tubes nommés sur SMB (partage IPC$)
// en utilisant l'Événement de sécurité Windows 5145 (Network Share Object Access)
DeviceEvents
| where ActionType == "ShareAccessed"
| where AdditionalFields.ShareName has"\\*\\IPC$"
// Cibler le nom cible relatif spécifique (le nom du tube)
| where AdditionalFields.RelativeTargetName has_any ("mojo", "msagent", "postex")
// S'assurer que la connexion provient du réseau
| where RemoteIPType == "Public"or RemoteIPType == "Private"
Les tubes nommés sont une nécessité architecturale pour le système d’exploitation Windows ; ils ne peuvent pas être désactivés ou bloqués globalement sans provoquer une panne catastrophique du système. Par conséquent, l’atténuation de la menace qu’ils représentent nécessite une stratégie de défense en profondeur axée sur la segmentation du réseau et le contrôle d’accès.
Micro-segmentation réseau : le mouvement latéral via les tubes nommés repose entièrement sur le protocole SMB. Les organisations doivent appliquer strictement des pare-feux basés sur l’hôte (Windows Defender Firewall) pour bloquer le port TCP 445 (SMB) entrant entre les postes de travail clients. Les postes de travail ne devraient communiquer sur SMB qu’avec les serveurs de fichiers désignés et les contrôleurs de domaine, neutralisant ainsi complètement les balises SMB de poste à poste (workstation-to-workstation).
Audit des DACL pour empêcher les LPE : pour prévenir l’élévation de privilèges locale via l’usurpation de tube, les développeurs de logiciels et les administrateurs informatiques doivent s’assurer que les applications tierces ne créent pas de tubes nommés avec des listes de contrôle d’accès discrétionnaire (DACL) trop permissives, accordant le contrôle total au groupe Tout le monde (Everyone) ou BUILTIN\Users.
Surveillance comportementale : étant donné que les acteurs de la menace génèrent constamment des noms de tubes de manière aléatoire dans les profils C2 modernes, la correspondance de chaînes statiques (comme la règle Sigma ci-dessus) doit être complétée par une surveillance comportementale. Concentrez-vous sur l’identification de processus qui n’utilisent généralement pas de tubes nommés et qui se mettent soudainement à générer des serveurs de tubes et à accepter des connexions SMB entrantes.