Kali Linux kann schon seit geraumer Zeit mittels WSL unter Windows ausgeführt werden. Ganz neu ist die Möglichkeit, Kali Linux in Kombination mit WSL2 auch im Grafikmodus zu nutzen. Das dazu erforderliche Paket kali-win-kex
(Kex steht für Kali Desktop Experience) setzt dabei auf das bewährte Protokoll VNC.
Voraussetzungen
- Sie müssen WSL aktivieren (Windows Features).
- Sie müssen eine aktuelle Version von Kali Linux für WSL installieren (kostenlos zu finden im Microsoft Playstore).
- Sie müssen die Kali-Installation von WSL1 auf WSL2 umstellen:
> wsl --set-version kali-linux 2
> wsl --list --verbose
NAME STATE VERSION
* Ubuntu Stopped 2
kali-linux Stopped 2
...
Installation von kali-win-kex
Damit Kali Linux unter WSL im Grafikmodus laufen kann, müssen Sie Kali Linux starten und dort kali-win-kex
installieren. Da Kali Linux für WSL normalerweise keine Grafikprogrammen enthält, zieht apt install kali-win-kex
die Installation unzähliger weiterer Pakete nach sich. Haben Sie ein wenig Geduld!
> wsl -d kali-linux
$ sudo apt update
$ sudo apt full-upgrade
$ sudo apt install kali-win-kex
Betrieb
Der erstmalige Start von Kali Linux ist nun denkbar einfach: Sie führen (ohne sudo
!) das Kommando kex
aus. Es richtet einen VNC-Server ein und fragt zuerst zweimal nach einem Passwort für die VNC-Verbindung. Optional können Sie ein weiteres Passwort für einen Read-Only-Betrieb einrichten (Sie sehen also Kali Linux, können es aber nicht steuern). Überspringen Sie diesen Punkt.
$ kex
Password: *******
Verify: *******
Would you like to enter a view-only password: n
Danach erscheint Kali Linux im Vollbildmodus. Auf den ersten Blick scheint es keine Möglichkeit zu geben, diesen wieder zu verlassen. Drücken Sie F8! Diese Funktionstaste führt in ein Kontextmenü des VNC-Viewers. Dort können Sie nicht nur die Option Full Screen deaktivieren, sondern das VNC-Fenster auch minimieren oder die Session ganz beenden (Exit viewer). Der Kali-Desktop passt sich übrigens automatisch an die Fenstergröße des VNC-Viewers (es handelt sich um TigerVNC) an.
Hinweis: Verwenden Sie nicht das Abmelden-Menü des Kali-Desktops! Übrig bleibt dann ein schwarzer Bildschirm mit Maus. Der VNC-Viewer läuft weiter, aber es gibt keine Möglichkeit, sich wieder anzumelden. Sie müssen Kex mit
kex kill
beenden und dann neu starten. (Wenn Sie das nicht tun, führt jeder Versuch, eine neue VNC-Verbindung herzustellen, zum Fehler connection refused.)
Seamless Mode
kex
ohne weitere Optionen startet Kali Linux in einem VNC-Fenster. Daneben stellt kex
eine zweite Variante zur Wahl, den Seamless Mode. Diesen starten Sie im WSL-Fenster von Kali Linux mit der Option --sl
:
$ kex --sl
Wichtig ist, dass Sie beim ersten Start des Seamless Mode eine Firewall-Ausnahmeregel für das Programm vcxsrv
akzeptieren, und zwar sowohl für private als auch für öffentliche Netzwerke.
In der Folge blendet Kali ein Panel am oberen Rand in den Windows Desktop ein. Dort können Sie Kali-Programme starten, die parallel zu Windows-Programmen in Fenstern auf dem gemeinsamen Windows Desktop erscheinen. (Ähnliche Funktionen bieten auch kommerzielle Virtualisierungssysteme wie VMware und Parallels.) Der Seamless Mode setzt allerdings voraus, dass sich die Windows Task-Leiste am unteren Bildschirmrand befindet. Ich ziehe es vor, die Task-Leiste am linken Rand zu platzieren — aber dann kommt es zu Überlappungen. Wenn man von dieser Kleinigkeit absieht, funktioniert der Seamless Mode verblüffend gut und ermöglicht wirklich ein nahtloses Nebeneinander von Kali Linux und Windows.
Beachten Sie aber, dass unter Kali Linux für WSL anfangs sämtliche Hacking-Tools fehlen! Es handelt sich ja um eine Minimalinstallation. Entsprechend leer sieht das Kali-Startmenü aus. Wenn Sie keine Lust haben, jedes Hacking-Tool einzeln zu installieren, erhalten Sie mit dem folgenden Kommando ein gute Auswahl der wichtigsten Kommandos (Vorsicht, ca. 1200 Pakete, 5 GByte Platzbedarf!):
sudo apt install kali-linux-default
Einschränkungen
Die Desktop-Integration von Kali Linux funktioniert verblüffend gut und trotz VNC-Backend ohne spürbare Lags. Grandios!
Kex ändert freilich nichts daran, dass WSL2 hinsichtlich der Netzwerkverbindungen recht inflexibel ist. Kali Linux erhält unter WSL2 standardmäßig eine IP-Adresse in einem privaten Netzwerk (NAT, auf meinem Rechner 172.22.7.*), was die Hacking-Möglichkeiten im lokalen Netz stark limitiert. Es gibt im Internet Anleitungen, wie diese Beschränkung teilweise umgangen werden kann, aber eine echte Lösung habe ich nicht gefunden.
Für viele Aufgaben muss Kali Linux daher weiterhin in eine virtuelle Maschine mit Network Bridging oder auf einen physischen Rechner installiert werden. (Ziehen Sie für letztere Option auch den Raspberry Pi in Betracht!)
Quellen
- https://www.kali.org/docs/wsl/win-kex/
- https://www.kali.org/docs/wsl/win-kex-win/
- https://kofler.info/kali-linux-im-windows-subsystem-for-linux/
WSL2 Networking:
Jetzt bin ich neugierig – Nicht auf WSL – sodern darauf ob so ein Seamles modus auch anders möglich ist.
Bislang nutze ich entweder x11vnc oder Unter Gnome Vino als server.
Beide nerven auch weil z.B. für ein sauberer Betrieb Autologin am desktop notwendig ist.
RDP hat zudem immer Probleme mit der Taskleiste unter Gnome. Aber Login und Datenaustausch gehen wenigstens gut.
Wenn aber der TigerVNC den Seamles modus beherrscht und eine dynamische Auflösung. Dann muss ich das mal probieren.