引言

本文章基于 如下Win版本,不是这个版本,可能会出现一些未知问题,可以留言我会尽量帮你解决,还是建议先在 系统的【设置】→【Windows更新】中先更新

版本 Windows 11 专业版
版本 22H2
安装日期 ‎2022/‎9/‎21
操作系统版本 22621.1702
体验 Windows Feature Experience Pack 1000.22641.1000.0

这篇文章完全出于装 13 的目的,因为我也不会渗透测试,只会到处找脚本,俗称 “脚本小子” 但是有工具了,就觉得自己很邢了~ 其次有一点先说一下,WSL2 的运行内存较高,空闲状态下约 800M 左右,电脑内存没有 16G 慎装,最后放一张安装完成的效果图,如下 👇 原生体验,和 Win系统共存,kali 系统就只启动一个菜单栏。

这种原生的体验如德芙丝滑
这种原生的体验如德芙丝滑


 

1、WSL 介绍

适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序且不会产生传统虚拟机或双启动设置开销。

  • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,
  • 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
  • 在 Windows 上调用 GNU/Linux 应用程序。
  • 运行直接集成到 Windows 桌面的 GNU/Linux 图形应用程序
  • 将 GPU 加速用于机器学习、数据科学场景等
wsl1和wsl2 比较功能WSL 1WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能

总结:就是可以在 Win 环境下直接原生运行 linux ,而不需要安装虚拟机等外部程序,更多介绍可以看微软官方文档: 适用于 Linux 的 Windows 子系统文档


 

2、开启系统功能

程序和功能这几项全部打开(hyper-V 开启的目的是为了桥接网络,因为linux子系统默认使用的本机下的虚拟子网,与宿主机并不在同一个局域网内,如果没有这个需求可以不用开)

效果演示
效果演示


 

3、安装WSL2

系统功能开启,电脑重启完成后开始安装 Linux 内核更新包和 Windows Subsystem for Linux 组件
✅下载 Linux 内核更新包,然后安装 适用于 x64 计算机的 WSL2 Linux 内核更新包
✅安装 Linux 必要组件(链接会打开电脑的微软商店进行安装)Windows Subsystem for Linux安装(使用管理员权限)后,重新启动计算机
✅打开 PowerShell,将 WSL 2 设置为默认版本,此时,WSL2的运行环境就完成了。

$ wsl --set-default-version 2
WSL2基本命令PowerShell 里执行说明
列出已安装的 Linux 系统wsl --list --verbose查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态
更新 WSLwsl --update将 WSL 版本更新到最新版本
检查 WSL 版本wsl --version检查有关 WSL 及其组件的版本信息
终止正在运行子系统wsl --shutdown立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机
停止单个子系统wsl -t 名称立即终止子系统,例 wsl -t kali-linux
卸载子系统wsl --unregister 名称立即卸载子系统并关联的所有数据,例 wsl --unregister kali-liunx
检查 WSL 状态wsl --status查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本
更改默认用户名称 config --default-user 用户例如:kali-linux config --default-user bt 会将 kali 发行版的默认用户更改为 bt 用户

 

4、安装kali-linux

打开微软的商店搜索 linux 就可以看到许多的linux 系统,选择 Kali Linux 安装,如果你没找到可以打开这个链接 Kali Linux (链接会打开电脑的微软商店进行安装)

  • 安装完成后,开始菜单会有kali字样的快捷方式,运行过后有一个 cmd 在模拟终端,打开过后先设置用户名(注:root用户是默认存在的,这里不要输入 root ,随意设置一个你喜欢的用户名就行)然后设置密码就ok了。输入密码是看不到的 过程如下 👇

    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username does not need to match your Windows username.
    For more information visit: https://aka.ms/wslusers
    Enter new UNIX username: bt  #设置用户名
    New password:                #设置密码
    Retype new password:         #确认密码
    passwd: password updated successfully
    Installation successful!
    bt@rog:~$ uname -a

此时系统就已经完成安装了,但是系统是最小化安装的,里面非常干净,什么工具都没有,先更新源,然后开始安装桌面环境和工具集。

✅先切换到 root 账户

$ sudo su

✅给 root 账户设置一个密码

$ passwd root

✅安装 vim 编辑器

$ apt install vim

换源

✅换源(非必要) 这个里面默认的是官方源,建议不改,如果速度太慢的话可以改阿里云的源或中科大,不换就直接开始更新。

$ vim /etc/apt/sources.list

#以下3个源地址,随意挑选一个

#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

#官方源
deb http://http.kali.org/kali kali-rolling main non-free contrib
deb-src http://http.kali.org/kali kali-rolling main non-free contrib

#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

✅更新系统与依赖,依次执行

$ apt update
# 用于更新软件包列表和元数据,让系统知道有哪些软件包需要更新

$ apt upgrade
# 用于升级所有已安装的软件包到最新版本,但不会安装新的软件包

$ apt dist-upgrade
# 用于升级系统的发行版,包括内核、系统库等,会安装新的软件包,并且会删除旧的软件包

$ apt clean
# 用于清理本地软件包缓存,删除已经下载的软件包,以释放磁盘空间

 

5、桌面环境安装

桌面环境安装,也就是引言里面的安装完成效果图 kali 菜单那样,这一步是非必要的,因为 kali 在终端也可以直接使用,看个人喜好,对于小白和只是玩玩的脚本小子,装一个桌面环境用来装 13 还是比较友好的。

Win-KeX

✅安装 kali 官方推荐的 WSL2 的桌面环境, 官方说明文档 ,执行 Win-KeX 安装命令,大概 3G 左右,要亿点点时间。

$ apt install -y kali-win-kex

然而我在安装后,启动几个模式均有问题,无缝模式的菜单栏乱跳,没有声音,有时无法启动等问题,均没有找到解决方案,所以不推荐使用 Win-KeX ,推荐使用 xfce4 环境 xfce 是类 UNIX 操作系统上的轻量级桌面环境(也就是引言中效果图的那种,只启动一个菜单栏,其实 win-kex 的无缝模式就应该是这种效果,但是始终有问题,不知道是 win11 的支持不好还是本身就有 BUG 找了很久也没解决方案,索性放弃)不过可以先试试你的环境是否可以正常使用(据说win10 下是没有问题的)如果不正常再继续看下文安装 xfce4 环境。


Win-KeX 支持三种模式的桌面环境,最后在终端中输入 kex 启动时先设置密码,然后会出现一个 view-only password,这个选择 n 即可。第一次运行防火墙弹出的提示,一定记得勾选公有网络,如果在安装之后 运行 Kex 发现 Xlaunch 启动但是没有客户端的情况,一定要去防火墙设置看一下是不是禁用了公有网络

  • 窗口模式 (启动一个全屏覆盖桌面的应用,按 F8 可以切换窗口模式)
$ kex --win -s
  • 无缝模式 (官方的演示效果是只启动 kali系统的任务栏)
$ kex --sl -s
  • 增强模式 (启动win的远程桌面进行连接)
$ kex --esm --ip -s

xfce4

如果没有安装 win-kex ,那么就先执行 win-kex 的安装命令,然后再执行执行下面 👇 两条安装命令,等待安装完成,如果你刚才已经安装过了 win-kex 那么就直接执行这两条命令即可,安装起来会很快,因为 win-kex 的依赖有一部分就是 xfce 里的包。

$ apt install kali-desktop-xfce
$ apt install xorg xfce4 xrdp

安装完成后 执行下面 👇 的启动命令启动桌面环境,此时屏幕顶部就会出现 kali 的任务栏了,大功告成,桌面环境就安装ok了。

$ startxfce4

执行 startxfce4 后的这个终端,可以直接关掉,里面会有些报错信息,主要是蓝牙,电源管理等几个系统组件的,可以不用管,不影响系统使用。如果觉得看着报错不顺眼可以打开【菜单栏】>【会话和启动】>【应用程序自启动】把电源管理器,屏幕锁,蓝牙管理器,这几项取消。


 

6、系统汉化

汉化比较简单,执行下面两条命令即可,执行第二条命令后会出现一个选择语言的界面,使用键盘键(向下键)一直翻到最后,选择 zh_CN.UTF-8 UTF-8 这个,然后按空格键勾选,会有一个 * 号标识,然后按回车确定,再选择 zh_CN.UTF-8 UTF-8 ,然后使用 wsl --shutdown 重启子系统。

$ apt install locales
$ dpkg-reconfigure locales

 

7、工具安装

按照教程此时已经就完成了 kali 系统安装,桌面环境安装,以及系统汉化了。现在就可以开始装工具了,工具安装有 3 种选择。

完整版

执行如下命令,完整版大约 25G 左右,需要亿点点时间,安装期间弹出的设置页面有OK选OK,有YES选YES即可,最后一个选 from inetd (不推荐安装完整版,体积太大,只是装13的话80%的工具都用不到,也不知道怎么用)

$ sudo apt install -y kali-linux-large

单一安装

打开 kali 的官方工具列表,Kali Linux Tools 需要哪个安装哪个,比如 nmap,单独安装会自动把该工具所需要的依赖一并安装了(推荐,需要哪个就装哪个,避免装13用不着的工具,节约磁盘空间)

$ sudo apt install nmap-common

工具集

kali 官方给推荐的工具组合,比如无线攻击工具集,嗅探欺骗工具集,热门工具集top10等等组合(推荐,我自己也是用的这个) 工具集列表文档

$ sudo apt install kali-tools-802-11

 

8、网络桥接

WSL2允许用户自行指定用于 WSL2 的网卡,因此不再需要任何的脚本等等即可固定 WSL2 地址甚至支持 IPv6 和外部访问,wsl2 默认是使用宿主机下的子网,使用 $ ip a 命令,会看到 kali 系统目前是在子网里面,无法与宿主机在同一个局域网里,此办法使用 hyper-V 的【虚拟交换机管理器】创建一个虚拟交换机,然后来连接到WSL2 的网卡上,就可以让wsl2下运行的子系统和宿主机在同一个局域网了。

✅管理员运行打开 【hyper-V 管理器】 >【虚拟交换机管理器】 > 【创建虚拟交换机(外部)】 然后如下图 👇 输入名称,选择你要桥接的网卡,然后确定即可,此时打开电脑的【网络连接】就应该是图 3 中,已经桥接了网络。

创建
创建
新增虚拟交换机
新增虚拟交换机
网络桥接完成
网络桥接完成

✅在用户目录 %USERPROFILE% 下面创建一个配置文件 .wslconfig ,如上步骤,使用 Hyper-V 创建了一个叫做 WSLBridge 的外部虚拟交换机来给 WSL2 用,于是配置文件内容如下( 用户目录就是C盘下的 C:\Users\root 我的用户名是root 实际根据你自己的来 )

[wsl2]
networkingMode=bridged
vmSwitch=WSLBridge
ipv6=true

✅kali子系统上不需要什么设置 .wslconfig 创建好了,直接执行 wsl --shutdown 重启子系统就可以了,此时再使用 $ ip a 查看网络,已经连接到宿主机所在的局域网


 

9、无线网卡挂载

新手玩家不建议折腾,如果只是想玩玩无线攻击啥的,建议可以直接装虚拟机来的省事儿。因为USB无线网卡挂载进子系统后,必须要kali系统免驱的网卡,不然网卡挂载上了 kali 子系统,还得去折腾一遍网卡驱动。因为WSL 本身并不支持连接USB 设备,因此需要安装开源 usbipd-win 项目。
✅安装 usbipd-win ,转到 usbipd-win 项目的最新发布页 ,运行下载的 usbipd-win_x.msi 安装程序文件,安装完成后 名为 usbipd 的服务会自动启动,可以在任务管理器里搜索。

✅然后进入kali子系统执行命令安装 hwdata ,安装好了输入命令查看帮助信息,就说明装好了。此时,挂载的环境就好了,由于我没有买到免驱网卡,下文用宿主机蓝牙设备演示如何挂载

$ apt install hwdata
$ usbipd -h 

挂载演示

✅通过以管理员模式打开 PowerShell 并输入以下命令,列出所有连接到 Windows 的 USB 设备:

$ usbipd wsl list

✅选择要附加到 WSL2子系统中的 的设备总线 BUSID(注意;在执行挂载的时候,使用 $ wsl --shutdown 停止kali 子系统后再挂载)

$ usbipd wsl attach --busid 2-10

✅打开 kali子系统,列出附加的 USB 设备,可以看到已经识别出来了,此时就需要根据设备的情况是否再安装驱动程序了。

$ lsusb

关于linux无线免驱的 详情可以参考 Wireless adapters kali系统下 推荐:RT3070、RT5572(我没找到地方买)

设备挂载过程
设备挂载过程
挂载完成
挂载完成

✅在 WSL 中完成设备使用后,可物理断开 USB 设备,或者在管理员模式下从 PowerShell 运行此命令:

$ usbipd wsl detach --busid 2-10

 

10、常见问题

宿主机之间文件交换

  • 安装wsl2后打开 我的电脑 下默认会增加一个linux的文件系统,这就是子系统的目录,可以直接进行复制粘贴,可以复制这个路径 \wsl.localhost\kali-linux 打开
  • 子系统中的 /mnt/ 目录下就是直接到电脑的磁盘了,可以使用 mv,rm 等命令直接进行文件操作。

    #剪切本机E盘的一张图片到 opt 目录下
    $ mv mnt/e/admin.jpg /opt/
    
    #剪切ope下的图片,到本机E盘
    $ mv opt/admin.jpg mnt/e/

apt 和 apt-get 区别

  • apt和apt-get都是Debian和Ubuntu等Linux操作系统中常用的软件包管理工具,apt是一个更加智能、易用、安全的软件包管理工具,而apt-get则是一个更加基础、灵活的软件包管理工具,新版kali 系统中都建议使用 apt 来安装,它们的主要区别如下:
apt-get是早期的软件包管理工具,而apt是后来的新一代软件包管理工具,它比apt-get更加智能和易用。
apt支持自动解决依赖关系,而apt-get需要手动解决依赖关系。
apt支持进度条显示和颜色输出,而apt-get不支持。
apt支持更加友好的命令行参数和子命令,例如apt list、apt search等,而apt-get需要使用apt-cache search等命令来实现。
apt支持更加安全的软件包下载和安装,它会自动验证软件包的签名,而apt-get需要手动验证软件包的签名

如何完全卸载

✅使用 wsl --unregister kali-liunx 命令删除已经安装的子系统

✅打开电脑【设置】>【应用】>【安装的应用】>【搜索中输入 linux 】> 【搜索出来的 linux 相关的全部卸载】

✅执行第 2 步骤 开启系统功能,去掉已经打开的功能,重启电脑,彻底卸载linux子系统和 wsl2 相关组件

✅使用 Everything 搜索 kali,Windows Subsystem for Linux,关键字,删除相关残留文件


systemd支持

  • systemd是一个Linux操作系统中的系统和服务管理器,它是替代传统SysV Init的新一代初始化系统(启动Beef-Xss 就需要 systemd ,其他工具有些也需要)

✅在子系统目录 /etc/ 下面增加一个 wsl.conf 文件,文件内容如下,然后重启子系统。

[boot]
systemd=true

脚本小子框架

✅安装和启动 ,更多可参考这篇文章 暴力穷举法破解Wi-Fi

$ git clone https://github.com/FluxionNetwork/fluxion.git
$ cd fluxion
$ ./fluxion.sh -i
$ ./fluxion.sh

✅安装和启动,使用方法参考作者github主页

$ git clone https://github.com/IR0DayToday/Xerosploit-PY3
$ cd xerosploit && sudo python install.py
$ sudo python3 xerosploit.py

桌面没有声音

  • xfce4下的桌面环境,尝试了一些解决办法,还是没搞懂这个声卡是怎么驱动的,win-kex 的增强模式下有声音,但是无所谓吧,装这子系统就是用来装13的,难道还用来看b站啊,不建议折腾,如果弄好了留言分享下

想从C盘搬到其他盘

  • WSL2默认安装在C盘中的,包含子系统也都是,如果安装一个完整版这个体积就该有30G了,通常不想看到C盘爆满而导致系统出现问题,因此可以将 WSL2 安装的虚拟子系统移动到其他位置。

✅首先在对应的盘创建好目录,比如 D:\kali-linux,然后关闭正在运行的子系统

wsl --shutdown

✅然后使用命令导出Kali Linux 系统到D盘

wsl --export kali-linux d:\kali-linux.tar

✅等待导出完成,然后注销当前正在运行的 WSL2中的Kali Linux

wsl --unregister kali-linux

✅重新导入Kali Linux的系统到 WSL2

wsl --import kali-linux d:\kali-linux d:\kali-linux.tar --version 2

✅导入后默认 用户变成了root,重新设置下

kali-linux config --default-user bt

KeX 桌面环境问题

大部分用户都很多问题,用了一下win-kex,后来又用了一下官方的 wslg。还是管方的兼容性更好。win-key无缝模式在遇到有多个显示器的情况下,有些应用会打不开,进程死了,必须整个关闭(wsl --shutdown)才能解决。显示分辨率方面也有些问题,有些非常规的长宽比不能以原生分辨率显示,比方说我用的华为笔记本3:2的长宽比。还有即便启动时加了 -s开关,还是没有声音。官方的wslg目前貌似只支持无缝模式,没有找到桌面模式怎么进去,但是硬件完美兼容,支持gpu加速,声音也没问题,多显示器也完美支持,有些app还可以自动适配不同显示器dpi下的缩放,不建议折腾,如果想搞搞 可以去论坛翻翻 kali.org

最后修改:2023 年 11 月 17 日
钥匙你想请我喝酱香拿铁的话!