title: "Windows 上用 WSL 安装 Kali Linux 并搭建渗透测试环境(2026 版)"
date: 2026-05-18
categories: [Kali, WSL, 渗透测试]
tags: [Kali Linux, WSL, 渗透测试, 工具安装]
image: kali_wsl_demo.png
🐉 Windows 上用 WSL 安装 Kali Linux 并搭建渗透测试环境
为什么选择 WSL 版 Kali?
传统的 Kali 安装方式有两种:实体机双系统、VMware/VirtualBox 虚拟机。但都有痛点:
- 双系统:切换麻烦,日常办公不方便
- 虚拟机:性能损耗大,共享文件麻烦,网络配置复杂
而 WSL(Windows Subsystem for Linux) 完美解决了这些问题:
🏆 WSL vs VM 虚拟机全方位对比
| 对比项 | VMware/VirtualBox 虚拟机 | WSL2 |
|---|---|---|
| 启动速度 | 30秒~1分钟 | 1秒启动 |
| 内存占用 | 固定分配 2-4GB | 动态占用,闲置时 ~200MB |
| CPU 性能 | 有虚拟化损耗(约 5-10%) | 接近原生(Hyper-V 半虚拟化) |
| 磁盘占用 | 完整系统 10-20GB+ | 精简安装仅 2-3GB |
| 文件共享 | 拖拽/共享文件夹(慢且不稳定) | 直接访问 Windows 盘符(/mnt/c/) |
| 网络 | NAT/桥接配置复杂,经常断连 | 自动 NAT,127.0.0.1 直通 Windows |
| 剪贴板共享 | 需要装增强工具 | 默认共享 |
| GPU 加速 | 需要复杂配置 | Windows 侧运行即可 |
| 系统资源 | 固定分配(不够用会卡) | 动态分配,不挤占 Windows |
| 快照/回滚 | ✅ 支持 | ❌ 可用 wsl –export/–import |
| 桌面环境 | ✅ 完整图形界面 | ❌ 无图形(CLI 足够渗透测试) |
| 日常办公切换 | 全屏切换不便 | Alt+Tab 无缝切换 |
为什么选 WSL?
- 启动快 —
wsl -d kali-linux命令执行到进入 shell 不到 1 秒,不像 VM 还要等系统启动 - 省资源 — 虚拟机固定吃你 2-4GB 内存,WSL 用多少占多少,Windows 这边还能打游戏/写代码
- 文件原生互通 —
cd /mnt/d/tools/直接访问 Windows D 盘,不用折腾共享文件夹 - 网络更简单 — 自动 NAT,Windows
127.0.0.1能直接访问 WSL 里的服务(比如 Kali 里起的 Web 服务) - 无缝切换 — Alt+Tab 切回 Windows 办公,渗透和日常互不干扰
一句话:WSL 版 Kali ≈ 原生 Linux 性能 + Windows 无缝集成,省掉一台虚拟机占用的资源。
什么情况还是需要 VM?
- 需要 完整图形界面(Wireshark 带图形、BurpSuite 界面等 — 但可以跑在 Windows 原生)
- 需要 Windows 和 Linux 完全隔离(WSL 文件系统在同一个 Windows 盘下)
- 需要 内核模块编译 或自定义内核
- 需要 VM 快照功能 频繁做实验快照回滚
不过对于渗透测试 90% 的 CLI 操作(扫描、爆破、漏洞利用),WSL 完全够用。
一、安装 WSL2
1.1 开启 WSL
Windows 10 2004+ / Windows 11:
以管理员身份打开 PowerShell 或 CMD:
# 一键安装 WSL(默认安装 Ubuntu)
wsl --install
如果你已经装过 WSL,确保是 WSL2:
# 查看 WSL 版本
wsl -l -v
# 如果版本是 1,升级到 2
wsl --set-version <distro> 2
# 设置 WSL2 为默认
wsl --set-default-version 2
1.2 安装 Kali Linux
# 查看可用的 Linux 发行版
wsl --list --online
# 安装 Kali Linux
wsl --install -d kali-linux
安装完成后会提示设置用户名和密码,按提示输入即可。
1.3 验证安装
# 查看已安装的发行版
wsl -l -v
# 输出示例:
# NAME STATE VERSION
# * kali-linux Running 2
1.4 启用 systemd(Kali 必须)
WSL 默认不使用 systemd,但 Kali 的很多服务(如 SSH、frpc 等)依赖它:
编辑或创建 %USERPROFILE%\.wslconfig:
[wsl2]
kernelCommandLine = systemd=true
或者在 WSL 内部创建 /etc/wsl.conf:
sudo bash -c 'cat > /etc/wsl.conf << EOF
[boot]
systemd=true
EOF'
然后在 PowerShell 中重启 WSL:
wsl --shutdown
wsl -d kali-linux
二、Kali 基础配置
2.1 更新系统
sudo apt update && sudo apt upgrade -y
2.2 安装 Kali 工具集
WSL 版 Kali 默认是精简安装,只有基础系统,需要自己装工具。
你可以选择安装不同的工具集:
# ⭐ 推荐:安装 headless 无图形版工具集(8GB+,推荐首次装这个)
# 包含 Nmap、Metasploit、Hydra、John、SQLMap、Gobuster、Dirb 等常用工具
sudo apt install -y kali-linux-headless
kali-linux-headless是 Kali 的无头版工具集,包含了绝大部分 不依赖图形界面 的渗透测试工具,大概是 200+ 个包,总共约 8GB。对于 CLI 操作来说,装了它基本就不用一个个单独装了。
如果不想装这么大一套,也可以按需选择:
# 仅核心工具(极小安装)
sudo apt install -y kali-linux-core
# 按需安装常用工具
sudo apt install -y nmap metasploit-framework exploitdb \
hydra john sqlmap gobuster dirb wfuzz \
ffuf nuclei
# Python 工具
sudo apt install -y python3-pip python3-venv sshpass
💡 善用 apt 补装:WSL 的优势就是想到用什么工具,直接
apt install就行,不需要像 VM 一样预先装好所有东西。
# 查某个工具在哪个包里
apt search nmap
# 查看已安装的 kali 工具集
apt list --installed | grep kali
2.3 设置 root 密码
为了后续方便,设置 root 密码并允许 SSH root 登录:
sudo passwd root
# 输入密码:kali
# 允许 root SSH 登录
echo "PermitRootLogin yes" | sudo tee -a /etc/ssh/sshd_config
echo "PasswordAuthentication yes" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart ssh
三、安装 Spring Boot 渗透测试工具
以下是在 Kali WSL 上搭建 Spring Boot 专项测试工具的完整过程。
3.1 SBSCAN — Spring Boot 综合扫描
cd ~
git clone --depth 1 https://github.com/sule01u/SBSCAN.git
cd SBSCAN
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install click requests urllib3 colorama tqdm rich
# 测试
python3 sbscan.py -h
⚠️ Kali 2025+ 使用 Python 3.13,部分旧版依赖需要升级安装,不要直接用 requirements.txt:
pip install --break-system-packages urllib3>=2.0 requests>=2.31.0
使用示例:
# 扫描单个目标
python3 sbscan.py -u http://target.com
# 批量扫描 + 指纹过滤
python3 sbscan.py -f urls.txt --fingerprint_filter
# 只扫 CVE 漏洞
python3 sbscan.py -f urls.txt -m cve --quiet
3.2 heapdump_tool — JVM 堆文件密码提取
cd ~
git clone --depth 1 https://github.com/wyzxxz/heapdump_tool.git
cd heapdump_tool
注意:该仓库仅包含文档,实际 JAR 文件需要从飞寄盘下载: https://share.feijipan.com/s/dFAuqYQy
下载后放到 ~/heapdump_tool/ 目录,确保已安装 JDK:
sudo apt install -y default-jdk
java -jar heapdump_tool.jar heapdump文件
交互式查询示例:
>>> password
>> spring.datasource.password → test@wyzxxz
>>> accesskey
>> accessKey → LTAI**************
>>> shirokey
>> kPH+bIxk5D2deZiIxcaaaA==
>>> class=redis
→ RedisServer: redis://10.0.0.5:6379
→ password: Redis@2024!Secret
3.3 Nuclei — 模板化漏洞扫描器
sudo apt install -y nuclei
nuclei -version
# Nuclei Engine Version: v3.7.1
# 更新模板
nuclei -update-templates
3.4 其他 Spring Boot 工具(Windows 侧)
以下工具我们放在 Windows D 盘方便跨环境使用:
# D:\tools\springboot-pentest\ 目录下
# ├── SpringBoot-Scan
# ├── jolokia-exploitation-toolkit
# ├── Spring-Boot-Actuator-Exploit
# └── springbooter
cd /mnt/d/tools/springboot-pentest/SpringBoot-Scan
python3 SpringBoot-Scan.py -u http://target.com
四、配置 SSH 远程访问
4.1 开启 SSH 服务
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
4.2 配置 frp 内网穿透
通过 WSL 安装的 Kali 默认在 NAT 网络下,外部无法直接访问。我们可以用 frp 做隧道穿透:
下载 frpc:
cd /tmp
# 如果 GitHub 下载慢,使用镜像
wget https://ghproxy.net/https://github.com/fatedier/frp/releases/download/v0.67.0/frp_0.67.0_linux_amd64.tar.gz
tar xzf frp_0.67.0_linux_amd64.tar.gz
sudo cp frp_0.67.0_linux_amd64/frpc /usr/local/bin/
sudo mkdir -p /etc/frp
rm -rf frp_0.67.0_linux_amd64*
配置 frpc(/etc/frp/frpc.toml):
serverAddr = "你的服务器IP"
serverPort = 7000
auth.token = "你的token"
[[proxies]]
name = "ssh-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6003
配置 systemd 服务(/etc/systemd/system/frpc.service):
[Unit]
Description=Frp Client Service
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.toml
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
sudo systemctl status frpc
从外网连接:
ssh root@你的服务器IP -p 6003
五、常见问题
5.1 WSL 网络不通/apt 更新慢
# 使用国内镜像源
sudo sed -i 's/httpredir.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
# 或者直接修改为清华源
sudo sed -i 's/kali.download/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
5.2 GitHub 下载慢
使用镜像代理:
# 在 URL 前加 ghproxy.net
git clone https://ghproxy.net/https://github.com/user/repo.git
# 或使用 wget
wget https://ghproxy.net/https://github.com/xxx/xxx.tar.gz
5.3 Python pip 安装报错
Kali 2025+ 限制系统 pip 直接装包:
# 方式一:使用虚拟环境(推荐)
python3 -m venv myenv
source myenv/bin/activate
pip install 包名
# 方式二:强制安装(不推荐)
pip install --break-system-packages 包名
5.4 frp 代理注册成功但连不上
如果 frpc 日志显示登录成功、代理注册成功,但外网连不上:
-
确认 frps 服务器防火墙 没有屏蔽代理端口
-
frpc 0.50+ 默认启用 TLS,如果 frps 没配 TLS 要在 frpc 配置中加:
transport.tls.enable = false -
检查
transport.tcpMux配置在 frpc 和 frps 两端一致
六、总结
通过 WSL 安装 Kali Linux 是当前最便捷的渗透测试环境搭建方案。与 VMware 虚拟机相比,WSL 的启动速度、资源占用、文件共享体验都有明显优势。
我们在这个环境中集成了:
| 工具 | 用途 | 安装方式 |
|---|---|---|
| SBSCAN | Spring Boot 综合扫描 | git clone |
| heapdump_tool | JVM 堆文件密码提取 | git + JAR 下载 |
| nuclei | 模板化漏洞扫描 | apt install |
| Nmap/Metasploit | 传统渗透测试 | apt install |
| frp | 内网穿透 | 手动下载 |
本文所有操作均在 Windows 11 + WSL2 + Kali Linux 环境下测试通过。工具仅用于合法授权的安全测试,请勿用于非法用途。
附录:WSL 常用命令速查
# 查看所有发行版
wsl -l -v
# 启动指定发行版
wsl -d kali-linux
# 以指定用户登录
wsl -d kali-linux -u root
# 关闭所有 WSL
wsl --shutdown
# 导出/导入
wsl --export kali-linux kali.tar
wsl --import kali-linux-new D:\wsl\kali kali.tar
# 卸载
wsl --unregister kali-linux












暂无评论内容