你是不是也这样:想入门渗透测试,第一步就卡在了"搭环境"上——VMware 装完蓝屏、Kali 更新源慢到怀疑人生、靶场 Docker 起不来、Burp 抓包一直提示证书错误……
网上的教程东一块西一块,要么只讲 Kali 安装,要么只讲 Burp 配置,从来没有人把"虚拟机 + Kali + 靶场 + 代理 + 验证"这条完整链路一次性讲透。
这篇文章,我把自己踩过的所有坑全部填平,给你一份从零到一、可直接复制执行的渗透测试环境搭建全流程。跟着做,2 小时内拥有一套属于自己的练功房。
建议先点赞收藏,搭环境时对着一步步敲,少走弯路。
一、准备工作:选对工具,少踩一半坑
1.1 虚拟机软件怎么选
| 虚拟机软件 | 优点 | 缺点 | 适合人群 |
|---|---|---|---|
| VMware Workstation Pro | 性能好、快照功能强、兼容性最佳 | 收费(个人非商用免费) | 绝大多数人首选 |
| VirtualBox | 完全免费、开源 | 性能略逊、部分硬件兼容性差 | 预算有限/喜欢开源 |
| Hyper-V | Windows 自带、无需额外安装 | 配置复杂、与 VMware 冲突 | 高级用户/Windows Server |
新手推荐:VMware Workstation Pro(个人非商用可免费使用,官网注册即可下载)。
1.2 硬件配置建议
| 配置项 | 最低要求 | 推荐配置 | 说明 |
|---|---|---|---|
| 内存 | 8GB | 16GB+ | Kali 占 4GB,靶场占 2-4GB,宿主机还要留余量 |
| 硬盘 | 100GB 可用 | 256GB SSD | 虚拟机文件 + 靶场镜像 + 工具,SSD 体验天差地别 |
| CPU | 4 核 | 8 核+ | 虚拟化技术(VT-x/AMD-V)必须在 BIOS 中开启 |
| 网络 | 稳定宽带 | — | 下载 Kali 镜像和 Docker 镜像需要网络 |
关键检查:开机进 BIOS,确认 Intel VT-x 或 AMD-V 已开启。没开虚拟化,虚拟机卡到根本没法用。
1.3 整体环境架构
| 组件 | 作用 | 部署位置 | 默认 IP/端口 |
|---|---|---|---|
| Kali Linux | 渗透测试主系统,工具全家桶 | 虚拟机 | 192.168.x.x(NAT 模式) |
| Docker | 容器引擎,用于一键起靶场 | Kali 内部 | — |
| DVWA | Web 漏洞练习靶场 | Docker 容器 | 127.0.0.1:80 |
| Pikachu | 中文 Web 漏洞靶场 | Docker 容器 | 127.0.0.1:8080 |
| Vulhub | 真实 CVE 复现环境集合 | Docker 容器组 | 按漏洞不同 |
| Burp Suite | 抓包改包代理工具 | Kali 内置 | 127.0.0.1:8080 |
| Firefox/Chrome | 测试浏览器,配置代理 | Kali 内置 | — |
二、Kali Linux 安装与初始化
2.1 下载 Kali 镜像
去 Kali 官网下载最新版 ISO 镜像:
https://www.kali.org/get-kali/#kali-installer选择Kali Linux 64-Bit (Installer),文件约 4GB。下载慢的话用国内镜像源:
# 清华大学镜像 https://mirrors.tuna.tsinghua.edu.cn/kali-images/ # 中科大镜像 https://mirrors.ustc.edu.cn/kali-images/2.2 VMware 中创建虚拟机
关键配置项一览:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 客户机操作系统 | Linux → Debian 11.x 64位 | Kali 基于 Debian |
| 内存 | 4096MB(4GB) | 最低 2GB,推荐 4GB+ |
| 处理器 | 2 核 | 开启"虚拟化 Intel VT-x" |
| 硬盘 | 60GB,单文件存储 | 动态分配即可 |
| 网络适配器 | NAT | 共享宿主机 IP,能上网 |
| USB 控制器 | USB 3.1 | 兼容外接无线网卡 |
网络模式选择:新手用NAT 模式最省心(虚拟机通过宿主机上网,安全隔离)。后续做内网渗透实验时再切换到"仅主机模式"或自定义网段。
2.3 安装过程中的关键选项
| 安装步骤 | 选择 | 说明 |
|---|---|---|
| 语言 | 中文(简体) | 新手友好 |
| 主机名 | kali | 默认即可 |
| 域名 | 留空 | — |
| 用户名/密码 | 自定义,记牢 | 别用弱口令 |
| 磁盘分区 | guided - 使用整个磁盘 | 新手别搞 LVM,简单直接 |
| 软件选择 | 默认全部勾选 | Xfce 桌面 + 全部工具 |
| GRUB 安装 | 是,安装到 /dev/sda | 别选错磁盘 |
2.4 换国内源(装完第一件事)
Kali 默认源在国外,apt update能卡到你怀疑人生。换清华源:
# 1. 备份原源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 2. 写入清华源(kali-rolling 分支) echo "deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib" | sudo tee /etc/apt/sources.list echo "deb-src http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib" | sudo tee -a /etc/apt/sources.list # 3. 更新并升级 sudo apt update && sudo apt upgrade -y # 4. 清理无用包 sudo apt autoremove -y国内源对照表:
| 镜像站 | sources.list 地址 |
|---|---|
| 清华大学 | http://mirrors.tuna.tsinghua.edu.cn/kali |
| 中科大 | http://mirrors.ustc.edu.cn/kali |
| 阿里云 | http://mirrors.aliyun.com/kali |
| 浙江大学 | http://mirrors.zju.edu.cn/kali |
2.5 安装常用补充工具
Kali 自带工具已经很全,但以下几个建议额外装上:
# 安装 Docker(靶场必备) sudo apt install -y docker.io docker-compose sudo systemctl enable docker --now sudo usermod -aG docker $USER # 把当前用户加入 docker 组,免 sudo # 执行完重新登录或 newgrp docker 生效 # 安装 Git(拉取靶场和工具) sudo apt install -y git # 安装中文输入法(可选) sudo apt install -y fcitx fcitx-googlepinyinDocker 换国内镜像加速(拉取靶场镜像快 10 倍):
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json << 'EOF' { "registry-mirrors": [ "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn" ] } EOF sudo systemctl daemon-reload sudo systemctl restart docker docker info | grep -A5 "Registry Mirrors" # 验证是否生效三、靶场搭建:你的专属练功房
3.1 本地靶场总览
| 靶场 | 覆盖漏洞 | 难度 | 启动方式 | 端口 |
|---|---|---|---|---|
| DVWA | Web 漏洞全家桶 | 入门 | Docker | 80 |
| Pikachu | Web 漏洞(中文) | 入门 | Docker | 8080 |
| Sqli-labs | SQL 注入专项 | 入门-进阶 | Docker | 8081 |
| Upload-labs | 文件上传专项 | 入门 | Docker | 8082 |
| Vulhub | 真实 CVE 复现 | 进阶 | Docker Compose | 按漏洞 |
| Vulfocus | 漏洞复现聚合 | 进阶 | Docker | 8083 |
3.2 一键拉起 DVWA(最经典入门靶场)
# 拉取并启动 DVWA docker run -d --name dvwa -p 80:80 vulnerables/web-dvwa # 验证 docker ps | grep dvwa启动后浏览器访问http://127.0.0.1,默认账号admin/password,登录后点击底部Create / Reset Database初始化数据库。
DVWA 难度调节:
| 难度 | 说明 | 建议 |
|---|---|---|
| Low | 完全无防护,漏洞直给 | 新手先打这个,理解原理 |
| Medium | 有基础过滤,可绕过 | 掌握原理后挑战 |
| High | 过滤更严格,需要技巧 | 进阶练习 |
| Impossible | 理论上不可利用 | 学习正确的防御写法 |
3.3 一键拉起 Pikachu(中文友好靶场)
docker run -d --name pikachu -p 8080:80 area39/pikachu访问http://127.0.0.1:8080,全中文界面,漏洞分类清晰,特别适合国内新手。
3.4 专项靶场:SQL 注入 + 文件上传
# SQLi-labs(80+ 关注入练习) docker run -d --name sqli-labs -p 8081:80 acgpiano/sqli-labs # Upload-labs(上传绕过专项) docker run -d --name upload-labs -p 8082:80 c0ny1/upload-labs3.5 Vulhub:真实 CVE 复现环境
Vulhub 是目前最全的漏洞复现环境集合,基于 Docker Compose,每个漏洞一个目录,一键启动。
# 克隆 Vulhub git clone https://github.com/vulhub/vulhub.git cd vulhub # 以 phpMyAdmin CVE-2016-5734 为例 cd phpmyadmin/CVE-2016-5734 docker compose up -d # 查看启动的容器和端口 docker compose ps # 用完销毁(释放资源) docker compose down -vVulhub 常用漏洞分类速查:
| 分类 | 代表漏洞 | 对应目录 |
|---|---|---|
| Web 中间件 | Apache Log4j2、Nginx 解析漏洞 | log4j/、nginx/ |
| 数据库 | MySQL 提权、Redis 未授权 | mysql/、redis/ |
| 框架 | ThinkPHP RCE、Spring Cloud | thinkphp/、spring/ |
| CMS | WordPress、Discuz、PHPCMS | wordpress/、discuz/ |
| 运维工具 | Jenkins、GitLab、Confluence | jenkins/、gitlab/ |
3.6 靶场管理常用命令
| 操作 | 命令 |
|---|---|
| 查看运行中的容器 | docker ps |
| 查看所有容器(含停止的) | docker ps -a |
| 停止某个容器 | docker stop <容器名或ID> |
| 启动已停止的容器 | docker start <容器名或ID> |
| 删除容器 | docker rm -f <容器名或ID> |
| 查看容器日志 | docker logs <容器名或ID> |
| 进入容器内部 | docker exec -it <容器名或ID> /bin/bash |
| 一键停止所有容器 | docker stop $(docker ps -q) |
四、代理配置:Burp Suite 抓包全流程
Burp Suite 是 Web 渗透的核心工具,Kali 已内置。抓包的本质是:浏览器 → Burp 代理 → 目标服务器,所有流量经过 Burp 时可以拦截、修改、重放。
4.1 代理架构说明
| 环节 | 地址 | 作用 |
|---|---|---|
| 浏览器 | 配置代理指向 127.0.0.1:8080 | 发送请求 |
| Burp Proxy 监听器 | 127.0.0.1:8080 | 拦截浏览器流量 |
| Burp 引擎 | 内部 | 修改/重放/扫描请求 |
| 目标服务器 | 靶场地址(127.0.0.1:80) | 接收请求并响应 |
4.2 Burp 监听器配置
启动 Burp Suite(Kali 菜单 → Web 应用程序 → burpsuite),用临时项目启动:
| 配置步骤 | 操作 | 说明 |
|---|---|---|
| 1. 进入 Proxy → Options | 确认 Proxy Listeners | 默认已有 127.0.0.1:8080 |
| 2. 检查监听器状态 | Running 列打勾 | 灰色说明端口被占用,换端口 |
| 3. 确认 Intercept 状态 | Proxy → Intercept → Intercept is on | 开启拦截,请求会暂停等你操作 |
| 4. 可选:绑定所有接口 | Add → Bind to port 8080 → All interfaces | 手机/其他设备抓包时需要 |
端口冲突排查:如果 8080 被占用(比如 Pikachu 靶场也用了 8080),把 Burp 监听器改成 8081 或其他空闲端口,浏览器代理也要同步改。
4.3 浏览器代理配置
推荐用Firefox(Kali 自带,代理配置独立,不影响系统)。
| 配置步骤 | 操作路径 |
|---|---|
| 1. 打开 Firefox 设置 | 右上角菜单 → 设置 |
| 2. 搜索"代理" | 网络设置 → 设置 |
| 3. 选择手动代理 | 手动代理配置 |
| 4. 填写 HTTP 代理 | 127.0.0.1,端口 8080 |
| 5. 勾选"也用于 HTTPS" | 勾选此项,HTTPS 流量也走代理 |
| 6. 清空不代理列表 | 删除"不使用代理的地址"里的 127.0.0.1 |
| 7. 保存 | 确定 |
关键坑点:Firefox 默认把
127.0.0.1和localhost加入了"不使用代理"列表,导致访问本地靶场时不走 Burp。必须删掉这两个地址,否则抓不到本地靶场的包!
4.4 HTTPS 证书安装(抓 HTTPS 的关键)
不装证书,访问 HTTPS 网站会报"您的连接不是私密连接"。Burp 作为中间人,需要它的根证书被浏览器信任。
# 1. 确保 Burp 已启动且监听器在 127.0.0.1:8080 # 2. 浏览器访问 http://burp (Burp 的证书下载页) # 3. 点击 "CA Certificate" 下载 cacert.der # 4. Firefox 设置 → 隐私与安全 → 证书 → 查看证书 # 5. 证书机构 → 导入 → 选择下载的 cacert.der # 6. 勾选"信任此 CA 以识别网站" → 确定证书安装验证清单:
| 验证项 | 预期结果 |
|---|---|
访问https://www.baidu.com | 正常打开,无证书警告 |
| Burp → Intercept 开启 | 百度请求被拦截,能看到明文 |
| Forward 放行请求 | 页面正常加载 |
| HTTP 历史记录 | Proxy → HTTP history 有记录 |
4.5 抓包测试(验证整条链路)
用 DVWA 做一次完整抓包测试:
# 1. 确认 DVWA 在运行 docker ps | grep dvwa # 2. 确认 Burp 监听器在运行 # Burp → Proxy → Options → 127.0.0.1:8080 状态 Running # 3. 确认浏览器代理已配置 # Firefox → 网络设置 → 手动代理 127.0.0.1:8080 # 4. 浏览器访问 http://127.0.0.1 # 5. Burp → Intercept 应该拦截到请求,点击 Forward 放行 # 6. 登录 DVWA(admin/password),观察 Burp 拦截到 POST 请求 # 7. Proxy → HTTP history 能看到所有请求记录抓包链路验证表:
| 检查点 | 正常表现 | 异常排查 |
|---|---|---|
| 浏览器能打开靶场 | 页面正常加载 | 检查靶场容器是否运行、端口是否正确 |
| Burp 能拦截请求 | Intercept 显示请求内容 | 检查浏览器代理设置、Burp 监听器端口 |
| HTTPS 无警告 | 正常打开 HTTPS 网站 | 重新安装 Burp CA 证书 |
| Forward 后页面响应 | 页面正常加载 | 检查靶场是否正常、网络是否通 |
| HTTP history 有记录 | 能看到历史请求 | 检查代理是否生效、是否被"不代理列表"排除 |
五、环境整体验证:确认练功房就绪
5.1 一键验证脚本
把下面这段保存为check_env.sh,运行后自动检查所有组件:
#!/bin/bash echo "========== 渗透测试环境验证 ==========" # 检查 Kali 版本 echo -n "[1] Kali 版本: " grep "VERSION=" /etc/os-release | head -1 | cut -d'"' -f2 # 检查 Docker echo -n "[2] Docker 状态: " systemctl is-active docker # 检查 DVWA echo -n "[3] DVWA 靶场: " docker ps --format '{{.Names}}' | grep -q dvwa && echo "运行中 (http://127.0.0.1)" || echo "未启动" # 检查 Pikachu echo -n "[4] Pikachu 靶场: " docker ps --format '{{.Names}}' | grep -q pikachu && echo "运行中 (http://127.0.0.1:8080)" || echo "未启动" # 检查 Burp 端口(需手动启动 Burp) echo -n "[5] Burp 代理端口 8080: " ss -tlnp | grep -q ':8080' && echo "被占用(Burp 或其他服务)" || echo "空闲(请启动 Burp)" # 检查 Vulhub echo -n "[6] Vulhub 目录: " [ -d ~/vulhub ] && echo "已克隆 (~/vulhub)" || echo "未克隆" echo "========== 验证完成 =========="运行方式:
chmod +x check_env.sh ./check_env.sh5.2 环境就绪标准
| 组件 | 就绪标准 |
|---|---|
| Kali 系统 | 能正常启动、apt update 成功、中文显示正常 |
| Docker | docker ps无报错、当前用户免 sudo |
| DVWA | 浏览器访问 127.0.0.1 能打开登录页 |
| Pikachu | 浏览器访问 127.0.0.1:8080 能打开 |
| Burp | 启动后 8080 端口监听、浏览器代理后能拦截请求 |
| HTTPS 证书 | 访问 HTTPS 网站无证书警告 |
| Vulhub | 任意漏洞目录docker compose up -d能成功启动 |
全部达标,你的专属渗透测试练功房就正式建成了。
六、常见问题排查(踩坑合集)
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 虚拟机启动蓝屏/黑屏 | BIOS 未开启虚拟化 | 重启进 BIOS,开启 Intel VT-x / AMD-V |
apt update报错或极慢 | 源在国外/源配置错误 | 换国内源,检查 sources.list 格式 |
| Docker 启动失败 | 服务未启用/权限不足 | sudo systemctl enable docker --now,用户加入 docker 组 |
docker pull超时 | 未配置镜像加速 | 配置 daemon.json 国内镜像源 |
| 靶场容器启动后访问不了 | 端口映射错误/容器内服务未起 | docker logs <容器名>查看日志,docker ps确认端口映射 |
| Burp 抓不到本地靶场的包 | 浏览器"不代理列表"含 127.0.0.1 | 删除不代理列表里的 127.0.0.1 和 localhost |
| HTTPS 网站报证书错误 | Burp CA 证书未安装/未信任 | 重新下载 cacert.der 并导入 Firefox 证书机构 |
| Burp 端口 8080 被占用 | 其他服务用了 8080 | Burp 换端口,或 `ss -tlnp |
| 虚拟机无法上网 | 网络模式配置错误 | 切换为 NAT 模式,检查 VMware 服务是否启动 |
| Kali 中文显示方块 | 未装中文字体 | sudo apt install -y fonts-wqy-microhei |
| 复制粘贴虚拟机和宿主机不通 | VMware Tools 未安装 | sudo apt install -y open-vm-tools-desktop,重启 |
Vulhubdocker compose命令不存在 | 旧版 Docker 用 docker-compose | 用docker-compose up -d(带横杠)或升级 Docker |
七、下一步学习路线
环境搭好了,别让它吃灰。按这个顺序练:
| 阶段 | 内容 | 对应靶场/工具 | 预计周期 |
|---|---|---|---|
| 第 1 周 | HTTP 协议基础 + Burp 抓包改包 | DVWA (Low) + Burp | 1 周 |
| 第 2-3 周 | SQL 注入原理与手工注入 | Sqli-labs + Burp + SQLMap | 2 周 |
| 第 4 周 | XSS / CSRF / 文件上传漏洞 | DVWA + Pikachu + Upload-labs | 1 周 |
| 第 5-6 周 | SSRF / XXE / 反序列化 / 逻辑漏洞 | Pikachu + Vulhub 对应漏洞 | 2 周 |
| 第 7-8 周 | 综合靶场实战 + 写渗透报告 | DVWA (High) + Vulhub 任意 CVE | 2 周 |
| 持续 | CTF 刷题 + SRC 挖洞 | BUUCTF / 补天 / 漏洞盒子 | 长期 |
尾言
搭环境是渗透测试的第一步,也是最容易劝退的一步。很多人卡在这一步就放弃了,觉得"连环境都搭不起来,我可能不适合学安全"。
但说实话,搭环境跟天赋无关,只跟耐心有关。照着这篇文章一步步敲,遇到问题对照第六章排查表,2 小时内一定能搭好。
环境搭好之后,今晚就做一件事:打开 Burp,拦截一次 DVWA 的登录请求,把用户名改成别的,Forward 放行,看看会发生什么。
就从这一次抓包开始。
最后
网络安全需要学习那些知识
网络安全零基础入门学习路线&规划
初级
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。
网络安全工程师企业级学习路线
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
一些我自己买的、其他平台白嫖不到的视频教程:
要学习网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】