Reference

windows 11 + kali wsl二合一配置步骤与踩坑_kex无缝模式使用指导-CSDN博客

前言

以往使用kali系统都是通过VMware虚拟机

最近偶然了解到wsl+无缝模式这种丝滑感拉满的方式

效果展示

部署wsl kali

下载 wsl kali

目前下载wsl版本的kali系统,最万无一失的方法即在微软商店下载

链接如下:Kali Linux - Free download and install on Windows | Microsoft Store

image-20240728160456025

或者直接在本地微软商店搜索kali linux

移动至非系统盘

默认情况下,从微软商店下载的kali系统会放置在系统盘

但是后续为了体验完整的kali工具,我们至少要留出40GB以上的空间

为了维持windows系统的流畅程度,很显然不适合将wsl kali存储在系统盘中

首先执行如下指令查看wsl中kali系统的名称

1
wsl -l -v

执行wsl --shutdown关闭wsl服务

导出kali镜像到指定位置

1
wsl --export kali-linux <path_to_tar>

从wsl注销系统盘上的kali系统

1
wsl --unregister kali-linux

最后在非系统盘的指定位置导入kali的镜像

1
wsl --import kali-linux <path_to_kali> <path_to_tar>

前一个路径为kali系统的存储路径,后一个为被导入的镜像的路径

配置默认登录用户

将默认登录用户为非root用户

1
kali config --default-user r1ck

安装工具包

升级软件包

使用kali命令打开wsl kali

执行sudo apt update更新软件包列表和元数据

执行sudo apt upgrade升级所有已安装的软件包到最新版本

工具包的选择

此时的kali系统仍然只是一个轻量的原始Debian系统,不包含渗透工具,所以需要我们额外安装工具包

kali提供了不同量级的系统包,可以参照下表

工具包名称 内容 安装指令 磁盘占用大小
kali-linux-default 包含在标准 Kali Linux 安装中的默认工具包。适用于大多数用户。 sudo apt install kali-linux-default 9 GB
kali-linux-large 比默认包含更多的工具,适合那些需要额外工具进行扩展测试的高级渗透工程师。 sudo apt install kali-linux-large 16 GB
kali-linux-everything 包含 Kali Linux 可提供的所有工具。这个包非常庞大,适用于需要全套工具的专业用户。 sudo apt install kali-linux-everything 30 GB

更多种类的系统工具包可以执行下面的指令查看

1
sudo apt-cache search kali-linux

当然后续我们还可以安装一些额外轻量的工具包,运行下面的命令可以进行查询

1
sudo apt-cache search kali-tools

通常我们执行sudo apt install kali-linux-default安装默认工具包即可,该工具包中包含了图形化界面,这是后续无缝模式的基础

下载完default工具包后会进入图形安装界面。当安装过程提示选择时,全部默认执行”yes”即可

配置无缝模式

安装VcXsrv

安装Visual C++ Redistributable for Visual Studio 2015

下载链接:https://www.microsoft.com/en-US/download/details.aspx?id=48145

接下来安装VcXsrv

下载链接:https://sourceforge.net/projects/vcxsrv/

安装完毕后进入VcXsrv的安装目录,找到xlaunch.exe文件

双击打开,选择Multiple windows模式,Display number填0

选择 Start no client

把禁用访问控制勾选上

选择保存配置,导出到当前目录下

找到刚刚导出的文件config.xlaunch

创建它的快捷方式并发送到桌面,方便以后快速打开VcXsrv

双击快捷方式启动

此时托盘会出现图标

安装win-kex

打开wsl kali,输入如下命令安装win-kex

1
sudo apt install kali-win-kex

设置本机ip

在主机的终端中执行ipconfig,查看最后一项 vEthernet (WSL (Hyper-V firewall))的IP地址

将该IP地址记下

打开wsl kali,执行如下指令(最好在root权限下执行

1
2
3
1.unlink /etc/resolv.conf
2.echo 'nameserver <ip address>' > /etc/resolv.conf
3.chattr +i /etc/resolv.conf

<ip address>处填上刚刚的IP地址

验证无缝模式

在wsl kali中执行如下命令

1
kex --sl --wtstart -s

如果终端中显示执行成功,且页面变成了kali和windows的混杂,则说明无缝模式启动成功

image-20240728211616371

优化无缝模式的外观

隐藏kali桌面

默认的无缝模式下,kali系统的桌面也会显示出来

而我认为最完美的形式应该是只保留kali的菜单栏,这样可以从菜单栏中随时调用kali的工具

image-20240728212238475

找到并点击菜单栏中的Session and Startup这一项

进入Current Session一栏,将xfdesktop项的值改为Never

这样我们再次进入无缝模式时,就不会再显示kali的桌面了(这里显示的是windows的桌面,只不过我的windows用的kali的壁纸😝)

调整菜单栏

完成上一步的隐藏桌面后,你一定还是觉得这个菜单栏看着不太舒服,不仅在桌面上可能会挡图标,而且进入浏览器之后,会挡住最上方的关闭等按钮

这里我们只需调整一下菜单栏的外观

右键菜单栏,选择Panel菜单下的Panel Preferences

取消勾选Lock panel,并将长度调整为1000左右

此时上方的菜单栏便可通过拖动最左侧的区域来改变位置,一般来说拖到上方的正中央即可

最后我们可以适当增加一下菜单栏中的图标大小,效果如下

设置快捷启动方式

我们可以将启动无缝模式的命令整合到终端中

这样设置一个命令行模式和无缝模式,想用哪个用哪个

进入终端的设置,点击打开JSON文件

profiles项的list中增加下面两项配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"commandline": "wsl -d kali-linux",
"guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d3}",
"hidden": false,
"icon": "file:///c:/users/26944/pictures/icons/kali-logo.png",
"name": "kali\u547d\u4ee4\u884c",
"startingDirectory": "//wsl$/kali-linux/home/r1ck"
},
{
"commandline": "wsl -d kali-linux kex --sl --wtstart -s",
"guid": "{55ca431a-3a87-5fb3-83cd-11ececc031d2}",
"hidden": false,
"icon": "file:///c:/users/26944/pictures/icons/kali-logo.png",
"name": "kali\u65e0\u7f1d\u6a21\u5f0f",
"startingDirectory": "//wsl$/kali-linux/home/r1ck"
}

注意记得修改一下启动目录中的用户名

这样我们的终端中就可以随时调用wsl kali的两种模式了