为什么从虚拟机开始,而不是直接买云服务器
三个月前我还是个连Linux命令都敲不利索的纯小白,现在已经在两个SRC平台拿到了首笔奖金。回头看,整个起点就是一台装好的Kali虚拟机。很多人建议新手直接租云服务器,但我劝你别急——本地虚拟机零成本、可快照回滚、网络环境完全可控,把基础动作练熟再上线,比一上来就对着公网IP手忙脚乱强得多。
我的环境是Windows 11宿主机 + VMware Workstation 17 Player(免费版够用)。选VMware而不是VirtualBox,纯粹因为后者在我这台机器上USB驱动总出问题,而VMware的拖拽复制更稳。如果你用Mac,UTM或者Parallels都可以,核心思路一样:隔离、快照、可恢复。
网络安全学习路线&学习资源
Kali Linux安装:别在分区步骤上浪费两小时
Kali官网下载ISO时,注意选"Installer"而不是"Live",后者重启后配置会丢失。新建虚拟机时,VMware自动识别Debian 11没问题,但有个细节:硬盘类型选"SCSI"比默认的"NVMe"兼容性更好,我第一台虚拟机用NVMe装完启动找不到盘,重来了三遍。
资源分配建议:CPU给2核,内存至少4GB,硬盘50GB起步。Kali默认带的几百个工具占空间不小,后期还要装靶场和字典。
安装过程中的关键步骤:
- 语言选英文:别图方便选中文,后续很多工具路径和报错都是英文,中文环境反而增加理解成本
- 网络配置保持DHCP:除非你知道自己在做什么
- 设置用户名密码时记下来:我第一遍设了个复杂密码,重启后死活想不起来,只能重装
装完第一件事是更新源和系统:
sudo nano /etc/apt/sources.list # 注释掉默认源,换成中科大或清华镜像 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib sudo apt update && sudo apt full-upgrade -y这个过程可能持续20-40分钟,取决于网络。去泡杯咖啡,回来继续。
坑一:VMware Tools装完还是无法复制粘贴
这是新手期最打击人的坑。我按照教程sudo apt install open-vm-tools-desktop装完,重启后宿主机和虚拟机之间依然无法复制粘贴,拖拽文件也没反应。
排查过程:先确认服务状态
systemctl status vmtoolsd显示running,但注意看Loaded行,如果路径是/usr/bin/vmtoolsd而不是/usr/sbin/vmtoolsd,说明装的是open-vm-tools但缺少桌面集成组件。解决顺序:
- 彻底卸载现有包:
sudo apt remove --purge open-vm-tools open-vm-tools-desktop -y - 安装完整套件:
sudo apt install open-vm-tools-desktop -y - 关键步骤——手动挂载VMware自带的Tools:VMware菜单栏 → 虚拟机 → 重新安装VMware Tools,此时桌面会出现光盘图标
- 挂载并安装:
mkdir -p /mnt/cdrom mount /dev/cdrom /mnt/cdrom cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp/ cd /tmp && tar -xzf VMwareTools-*.tar.gz cd vmware-tools-distrib/ sudo ./vmware-install.pl -d- 重启虚拟机:
sudo reboot
第六步验证:在宿主机复制一段文字,到Kali的终端里右键粘贴,成功即修复。如果还不行,检查VMware设置 → 选项 → 客户机隔离,确认"启用复制粘贴"已勾选。
Burp Suite配置:Community版完全够用
去PortSwigger官网下载JAR包,不要用Kali自带的旧版本。启动命令:
java -jar burpsuite_community.jar首次启动选"Temporary project",后续熟悉了再建持久化项目。
代理配置是基本功:Burp → Proxy → Options,确认监听127.0.0.1:8080。然后在Chrome装FoxyProxy插件,添加代理模式指向同一地址。拦截开关打开后,访问任何HTTP站点,Burp的Intercept标签页应该能抓到包。
坑二:CA证书导入后浏览器仍然报证书错误
这是让我卡了整整一个下午的问题。按教程把Burp的CA证书导出、导入系统信任区,Chrome依然红色警告"您的连接不是私密连接"。
问题根源:Chrome在Linux上不信任系统证书库,而是用自己的NSS存储。
解决顺序:
- 在Burp中导出证书:Proxy → Options → Import/export CA certificate → Export → 选"Certificate in DER format",保存为
cacert.der - 转换为PEM格式:
openssl x509 -inform DER -in cacert.der -out cacert.pem- 安装到系统信任区:
sudo cp cacert.pem /usr/local/share/ca-certificates/burp.crt sudo update-ca-certificates- 关键步骤——导入Chrome的NSS数据库:
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n BurpCA -i cacert.pem- 验证:
certutil -d sql:$HOME/.pki/nssdb -L应该能看到BurpCA条目
如果certutil命令不存在,先装libnss3-tools:sudo apt install libnss3-tools -y。
重启Chrome,访问任意HTTPS站点,拦截开关打开时应不再报证书错误。这个坑的诡异之处在于Firefox通常没问题,只有Chrome特殊处理证书存储。
DVWA靶场:数据库初始化权限不足的解决
安装DVWA最简单:sudo apt install dvwa -y,然后访问http://localhost/dvwa。但点击"Create / Reset Database"时,我遇到了红色报错:“Access denied for user ‘dvwa’@‘localhost’”。
问题根源:MySQL/MariaDB的root密码与DVWA配置文件不匹配,或者dvwa用户未正确创建。
解决顺序:
- 登录MySQL:
sudo mysql -u root - 查看现有用户:
SELECT user, host FROM mysql.user;- 创建dvwa用户并授权:
CREATE USER IF NOT EXISTS 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd'; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost'; FLUSH PRIVILEGES; EXIT;- 修改DVWA配置文件:
sudo nano /usr/share/dvwa/config/config.inc.php
找到以下行并确认:
$_DVWA = array(); $_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'dvwa'; $_DVWA[ 'db_password' ] = 'p@ssw0rd';- 关键步骤——创建数据库:
sudo mysql -u root -e "CREATE DATABASE IF NOT EXISTS dvwa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"- 返回浏览器刷新,点击"Create / Reset Database",看到"Setup successful"即完成
默认登录账号admin/password,进去后把安全级别调到Low开始练习。建议每个漏洞类型从Low到Impossible都过一遍,理解防御是怎么层层升级的。
信息收集实战:subfinder+Nmap组合出击
环境搭好只是开始,真正的SRC挖掘从信息收集起步。我的第一次有效发现,就是用这套组合拳扫出了一个教育类SRC目标的隐藏管理后台。
子域名枚举:
subfinder -d target.edu.cn -silent -o subdomains.txt-silent过滤掉进度信息,只输出结果。我通常会多跑几个工具交叉验证:
assetfinder --subs-only target.edu.cn | tee -a subdomains.txt sort -u subdomains.txt -o subdomains.txt当时subfinder返回了47个子域名,其中admin-portal.target.edu.cn这个命名引起了注意。
端口与服务探测:
sudo nmap -sS -sV -sC -p- -T4 --min-rate 1000 -iL subdomains.txt -oA nmap_full参数拆解:
-sS:SYN半开扫描,速度快且相对隐蔽-sV:版本探测,识别具体服务-sC:执行默认脚本,获取额外信息-p-:全端口扫描,不局限于常见端口-T4:激进时间模板,SRC授权测试可用--min-rate 1000:保证最低发包率,避免某些网络环境下扫描过慢
扫描结果中,admin-portal.target.edu.cn的8443端口开着,Nmap识别为http-proxy,进一步访问发现是某厂商的OA系统登录页。这个发现直接构成了后续漏洞挖掘的入口——一个暴露在外网、但域名隐蔽的管理后台。
目录爆破补充:
ffuf -u https://admin-portal.target.edu.cn:8443/FUZZ -w /usr/share/wordlists/dirb/common.txt -mc 200,301,302 -t 50-mc过滤状态码,-t控制并发。这里我踩过一个坑:初始字典太大导致请求量爆炸,被目标WAF临时封了IP。后来学会先用小字典快速探测,有发现再针对性深入。
我的漏洞挖掘Checklist
这张表是我从第一次漏测中总结出来的,现在每次开新目标前都会过一遍:
| 阶段 | 检查项 | 工具/方法 | 常见遗漏点 |
|---|---|---|---|
| 资产发现 | 主域名及子域名枚举 | subfinder、assetfinder、amass | 三级以下子域名、过期域名未回收 |
| 端口服务 | 全端口扫描+服务识别 | nmap -p- | 非标准端口的高危服务、Docker API暴露 |
| Web指纹 | 技术栈识别 | whatweb、Wappalyzer插件 | 版本号隐藏但通过特定路径可探测 |
| 目录文件 | 敏感路径爆破 | ffuf、dirsearch | 备份文件(.bak, .zip)、.git泄露 |
| 参数分析 | URL参数、表单、Header | Burp Spider、手动浏览 | 隐藏参数、API版本差异(v1/v2) |
| 认证测试 | 登录、注册、找回密码 | Burp Intruder | 逻辑绕过、暴力破解限制缺失 |
| 会话管理 | Cookie、Token、Session | Burp Repeater | 固定会话、未授权访问 |
| 业务逻辑 | 功能流程遍历 | 手动+Burp Flow | 越权、支付逻辑、积分兑换 |
实际使用时,我会在每个检查项后面标注完成时间和发现摘要。这不是为了形式,而是强迫自己每个点都覆盖到——新手最容易犯的错误就是看到一两个接口有漏洞,就兴奋得忘了继续深挖,结果错过更隐蔽的高危点。
三个月下来,这套环境陪我提交了7个有效漏洞,虽然金额不大,但验证了从零到一的完整链条。现在回头看,那些装环境时的报错、证书问题的烦躁、数据库权限的困惑,都是必须交的学费。关键是把每个坑的解决过程记录下来,变成可复现的文档,下次遇到同样的错误,五分钟就能定位而不是再卡一下午。
本文转自 https://blog.csdn.net/yiyiyi0322/article/details/164063610?spm=1001.2014.3001.5501,如有侵权,请联系删除。