转载于:两者结合

https://mp.weixin.qq.com/s/g4rASKdy_T0c0Mi3Ys6glA

https://zhuanlan.zhihu.com/p/263658960

0x00 前言

kali 子系统安装完成后加上杂七杂八的东西还是挺大的,安装过程中会遇到点问题,比如:参考的对象类型不支持尝试的操作,但是 重启+百度可以解决所有问题。

还有就是 wsl 与 vmware 不兼容,一次只能使用一个,非常不利于打靶场。

当然我觉得新手还是先用虚拟机安装 kali,因为虚拟机有克隆功能,搞坏了还可以还原,可以使劲造,还有一个就是有些靶场需要你的kali跟它同一个网段,而在校园网中,虚拟机无法使用桥接模式,所以很难办到,总之困难还是有一点的。

docker 也有点问题,但是都可以解决。

总而言之,你会遇到许多问题,请自行决定是否安装。

0x01 安装子系统

设置基本内容

  • 打开控制面板

    ![图片](../imgs/Win11下安装Kali Linux子系统/640.png)

  • 系统和安全——程序——程序和功能——启用或关闭Windows功能

    ![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125311.png)

  • 适用于linux的Windows子系统(若未勾选虚拟机平台不会出现该选项)

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125322.png)

  • 在微软商店搜索Kali

    ![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125333.png)

  • 下载安装并打开

可直接通过启动cmd,并输入bash,即可直接进入Linux界面

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125334.png)

并且Windows的目录都挂载到了mnt目录下

  • 安装坑点

【报错】WslRegisterDistribution failed with error: 0x800701bc

【原因】wsl1升级到wsl2之后,内核却没有升级,所以会出现这种错误提示

【解决】下载最新的wsl安装包

【地址】

https://docs.microsoft.com/zh-cn/windows/wsl/install-manual#step-4---download-the-linux-kernel-update-package

【报错】参考的对象类型不支持尝试的操作

【地址】https://blog.csdn.net/marin1993/article/details/119841299

其他的都可以在这里找到,很容易解决的错误

https://docs.microsoft.com/zh-cn/windows/wsl/install-manual

0x02 配置子系统

1、配置源并更新

刚安装完成的Kali Linux是非常干净的,什么软件都没有安装,所以需要手动修改一下源,并更新。以下为常用kali源

1
2
3
4
5
6
7
8
9
10
11
12
#中科大
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
#阿里云
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://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-
#官方源
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

我这里挑选阿里云的源,执行命令修改/etc/apt/sources.list文件,并保存关闭。

vi 好像有点错误,我使用的是 nano /etc/apt/sources.list

执行以下命令进行更新:

1
2
3
4
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get clean

等待命令执行完成后,安装python3、pip、git

1
2
3
sudo apt-get install python3
sudo apt-get install git
sudo apt-get install python3-pip

2、安装Kali Linux常用工具

(存储空间有限的话安装几个工具就好)

  1. msfconsole:

https://blog.csdn.net/m_de_g/article/details/121545937

  1. nmap

apt-get install nmap

  1. docker (报错解决方法看 0x06)

http://t.zoukankan.com/jiangbo44-p-12637389.html

  1. proxychains

apt-get install proxychains

这里推荐使用GitHub上一位老哥的项目,可以一键进行安装

项目地址:https://github.com/rikonaka/katoolin4china

下面安装第三方工具:

1
2
3
git clone https://github.com/rikonaka/katoolin4china
cd katoolin4china
sudo pip3 install .

(注意第三条命令最后有个点)

使用命令打开第三方工具

1
sudo k4c

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125335.png)

第一步输入2,进行工具安装选项

第二步输入0,安装所有工具。

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125336.png)

耐心等待安装完成。

最后msfconsole、sqlmap等工具就可以直接使用了,从此不用再等待虚拟机开机。

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125347.png)

![图片](../imgs/Win11下安装Kali Linux子系统/640-16517603125348.png)

0x03 GUI

当然为了更好的体验 Kali,我们可以安装官方推荐的 GUI —— Win-KeX。输入如下命令,进行安装。

1
sudo apt install -y kali-win-kex

安装完毕后,可使用如下命令启动

1
2
3
4
5
6
7
# 启动
cd ~
kex
# 关闭
kex stop
# 窗口模式
kex --win -s

![img](../imgs/Win11下安装Kali Linux子系统/v2-7855f1ed2357fd6880d3db5fe6bd82aa_1440w.png)

Win-KeX 还提供了无缝模式

1
2
# 无缝模式
kex --sl -s

![img](../imgs/Win11下安装Kali Linux子系统/v2-c55ffb9412aa8d65e2b08e8b71235e75_1440w.png)

0x04 WSL2 优化

压缩

随着使用时间的延长,WSL2占用的硬盘空间会越来越多,这个时候就需要对其文件进行压缩。方法如下

1
2
3
4
5
6
7
8
wsl --shutdown
diskpart
# open window Diskpart
select vdisk file="C:\Users\Ci\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
# select vdisk file="C:\Users\Ci\AppData\Local\Packages\KaliLinux.54290C8133FEE_ey8k8hqnwqnmg\LocalState\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk

内存

WSL2默认可以使用的内存大小为主机的80%,对于Linux而言即使装了桌面,一般的开发也没必要给这么多内存,分多了,反而有可能卡主机的Windows
操作:
1.打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig ,写入内容示例如下 (我电脑8GB内存,分给WSL内存2GB,另外设置交换分区4GB)

1
2
3
4
[wsl2]
memory=2GB
swap=4GB
localhostForwarding=true

cmd执行 wsl –shutdown 关闭WSL,再重新打开即可

0x05 wsl 和 VMware 兼容性问题

目前的问题是鱼与熊掌不可兼得,所以每次只能用一个,假如要用wsl2,则执行

1
2
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2

如果要用虚拟机,则执行

1
Disable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

0x06 wsl 无法启动 docker 问题

解决方法:https://www.jianshu.com/p/f98b04b5bcd5

报错情况:Cannot connect to the Docker daemon at unix:///var/run/docker.sock


昨天在一台新的 Windows 11 中安装了 WLS2,目的就是使用 docker。

Microsoft Store 中默认的 Debian 版本是 11,我在很久之前安装的是 10,照着之前的经验添加了北外镜像的 docker-ce 源,安装很顺利。

使用过 WSL2 的人肯定知道,WSL2 中不能使用systemctl,需要使用service来启动 docker 或其他服务。

于是我便启动 docker:

1
sudo service docker start

此时竟无法启动,查看日志:

1
2
3
4
5
6
$ cat /var/log/docker.log
...
Sep 13 20:47:37 xxx dockerd: failed to start daemon: Error initializing network controller: error
obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N D
OCKER: iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to ins
mod?)

可以看到是 iptables 的问题,此问题在其 github 仓库中有人提出过#1105,幸运的是,这个问题正好能被简单地解决。

首先,将iptablesiptables-legacy替换:

1
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy

然后,开启 ipv4 的包转发功能:

1
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

最后,重启 WSL2,下面的代码在 cmd 中运行:

1
wsl --shutdown

此时再启动 kali,就能顺利启动 docker了。