引言
本文章基于 如下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 1 | WSL 2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
与传统虚拟机相比,占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMware 和 VirtualBox 一起运行 | ✅ | ✅ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
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 发行版列表,其中包括状态 |
更新 WSL | wsl --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
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
✅在 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
脚本小子框架
- wifi钓鱼框架:fluxion
✅安装和启动 ,更多可参考这篇文章 暴力穷举法破解Wi-Fi
$ git clone https://github.com/FluxionNetwork/fluxion.git
$ cd fluxion
$ ./fluxion.sh -i
$ ./fluxion.sh
- 中间人攻击框架;xerosploit
✅安装和启动,使用方法参考作者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
此处评论已关闭