WSL Containers - conteneurs Linux natifs (et un toolkit de pentest)
On a tous déjà été bloqué dans un environnement Windows, pour faire des tests ou même déployer un environnement de dev pour trifouiller dans une DB.
Microsoft avait lancé WSL (Windows Subsystem for Linux) en 2016, on pouvait enfin avoir notre petite distro Linux avec nous, maintenant on a un vrai noyau Linux dans une VM Hyper-V légère.
Récemment, Microsoft sort en pre-release un runtime nommé WSL Containers. Il offre deux nouvelles fonctionnalités : le CLI et une API Windows. Tout ça compatible avec Docker.
Exemple CLI de WSLC
wslc pull ubuntu:latest
wslc ps -a
wslc logsL’avantage c’est que si tu connais Docker, tu sais déjà te servir de WSLC.
L’architecture de WSLC
Les conteneurs ne tournent pas directement sur le kernel Windows, mais dans une VM Hyper-V à part, en plus isolée de WSL. L’idée c’est vraiment de monter un dossier avec -v, travailler puis jeter ou arrêter le container.
Pour utiliser WSLC, on utilise la commande suivante :
wsl --update --pre-release
wsl --shutdown
wslc --version # doit afficher 2.9.3.0 ou plusCela met à jour WSL à la dernière version puis redémarre WSL pour profiter de wslc.
On peut directement tester la commande de base fournie par la documentation Microsoft. Elle lance un container Ubuntu sur KDE nommé webtop téléchargé depuis LinuxServer.
wslc run -d --name=webtop -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 3000:3000 -p 3001:3001 lscr.io/linuxserver/webtop:ubuntu-kdePour les personnes qui veulent utiliser leurs GPU sur les containers c’est aussi possible directement via le devblogs ici.
Un toolkit de pentest jetable
C’est bien beau tout ça, maintenant je peux directement déployer mon environnement de dev sur ma machine Windows sans m’embêter avec Docker Desktop.
L’idée du toolkit jetable, c’est de build un container Kali Linux léger avec une sélection d’outils déjà installés.
FROM kalilinux/kali-rolling
RUN apt-get update && apt-get install -y --no-install-recommends \
nmap nikto sqlmap gobuster \
dnsutils netcat-traditional \
curl wget git \
python3 python3-pip \
&& rm -rf /var/lib/apt/lists/*
# Optionnel : les wordlists (gobuster/nikto en ont besoin) — ~ 100 Mo
# RUN apt-get update && apt-get install -y seclists && rm -rf /var/lib/apt/lists/*
WORKDIR /opsNous avons :
- nmap
- nikto
- sqlmap
- gobuster
- dnsutils
- netcat
Build et run
wslc build -t pentest-box .
# On monte un dossier "loot" pour garder les résultats après destruction du conteneur
wslc run -it --rm -v "C:\Users\Username\loot:/ops/loot" pentest-boxLe --rm détruit le conteneur une fois sorti du terminal, sauf ce qu’il y a dans le dossier loot.
Build

RUN

Attention
Une image comme
kali-rollingévolue en continu,du coup il est possible que le build ne fonctionne pas à l’identique plus tard.
Ces outils se lancent uniquement sur des systèmes qui t’appartiennent ou si tu as une autorisation écrite, je décline toute responsabilité en cas d’usage malveillant.
Un dernier réflexe si tu actives l’allowlist : pense à y inclure docker.io et lscr.io, sinon les pull de ce tuto (l’image Kali et le webtop) seront eux-mêmes bloqués.
Pour la DSI
WSLC intègre une allowlist de registres : WSLContainerRegistryAllowlist, elle restreint les registres depuis lesquels on peut pull les images.
Pour conclure
WSL Containers rapproche l’expérience Docker de Windows, sans la lourdeur de Docker Desktop : conteneurs Linux natifs, CLI familier, et une isolation Hyper-V.
Le tout est encore en pre-release, donc à surveiller.