Source : SpecterOps (billet de blog de Daniel Mayer). Contexte : l’auteur détaille la création d’un Beacon Object File (BOF) permettant d’énumérer et d’exécuter des commandes dans WSL2 sur différentes versions, afin de faciliter le pivot depuis des hôtes Windows fortement surveillés.
• Constats clés : WSL2 s’exécute comme une VM Hyper‑V séparée et est « rarement » monitorée, offrant aux attaquants un espace d’exécution discret. Les approches classiques via WslLaunch/WslApi.dll appellent en réalité WSL.exe via CreateProcess, générant des artefacts visibles mais communs. L’interface COM de WSL2 a évolué de façon non rétrocompatible, rendant un client COM unique difficile sans gérer de multiples versions.
• Méthode décrite : après l’échec d’un client COM unique basé sur l’IDL open source (variations de vtable et changements d’arguments/fonctions), l’équipe a utilisé OleView.NET pour régénérer dynamiquement des IDL à partir des Proxy Stubs (WslServiceProxyStub.dll) de différentes versions WSL, puis a compilé des en-têtes adaptés. Le BOF choisit l’interface appropriée selon une valeur de version en registre (clé Lxss/MSI), permettant l’exécution de commandes dans la distro WSL ciblée.
• Fonctionnalités et limites : le BOF (repo « the-one-wsl-bof ») peut lister les distros WSL via le registre et exécuter des commandes dans celles détectées. Il couvre au moins huit variantes d’interface COM WSL2 et s’appuie sur de multiples branches de code. L’auteur souligne que la rétrocompatibilité côté Microsoft est limitée et que la maintenance pourrait être ardue si de nouvelles ruptures apparaissent. WSL1 n’est pas pris en charge. Des pistes futures incluent l’installation de distros WSL via la même interface.
• Contexte opérationnel red team : l’article rappelle des techniques usuelles de pivot et d’opsec autour de WSL (écriture de charges via le partage $WSL avec noms bénins, scripts shell pour regrouper les commandes, présence fréquente de clés SSH/envars sensibles dans WSL). Le billet fournit le code/BOF et un script CNA associés. 🔧
• TTPs observés:
- Pivot via WSL2 pour évasion EDR et exécution isolée.
- Exécution de commandes via WslLaunch/WSL.exe (CreateProcess) et via COM (CreateLxProcess) selon la version.
- Énumération des distros par registre (clé Lxss/MSI pour la version, distros par HKLM/HKCU).
- Dépôt/obfuscation de charges via $WSL et scripts shell.
- Exploitation potentielle d’artefacts sensibles dans WSL (clés SSH, variables d’environnement).
• IOCs : aucun indicateur technique (hash, domaine, IP) publié; artefacts potentiels évoqués: exécution de WSL.exe depuis des processus non habituels, accès aux clés de registre WSL.
En somme, il s’agit d’un article technique présentant un nouvel outil open source et la démarche pour assurer sa compatibilité multi‑versions WSL2.
🔗 Source originale : https://specterops.io/blog/2026/01/16/one-wsl-bof-to-rule-them-all/