漏洞评估阶段的工具选型与操作
漏洞评估做什么
侦察阶段给了你一张"目标地图"(开放的 IP、端口、服务版本)。漏洞评估要回答:
- 这些服务有没有已知漏洞?(查 CVE 数据库)
- 这些漏洞的 PoC 可用吗?(查 searchsploit)
- 能否触发这些漏洞?(验证,不直接攻击)
自动漏洞扫描:OpenVAS
OpenVAS 是 Kali 自带的开源漏洞扫描器(Greenbone Networks 维护),覆盖 5 万+ 条漏洞规则。
初始化
sudo gvm-setup # 首次安装,下载漏洞规则
sudo gvm-start # 启动服务
启动后访问 https://localhost:9392,用 admin 登录(密码在 setup 完成时显示)。
创建扫描任务
Scans → New Task
→ Scan Targets: 填入 IP 段(如 192.168.1.0/24)
→ Scanner: Default OpenVAS Scanner
→ Schedule: Once(立即跑)
→ 点击 Create
扫描时间取决于目标数量和深度,通常 1-4 小时。完成后在 Results 里可以看到每个漏洞的风险评级(Log/Medium/High/Critical)、CVE 编号、修复建议。
Nmap NSE 漏洞扫描
OpenVAS 太重,快速验证特定端口漏洞时 Nmap NSE 更灵活:
# 扫描 MS17-010(永恒之蓝,445 端口)
nmap --script smb-vuln-ms17-010 -p 445 192.168.1.100
# 扫描 Log4j(全端口)
nmap --script http-log4shell --script-args http-log4shell.headers="X-Api-Version: \${jndi:ldap://127.0.0.1:1389/}" -p 80,443 192.168.1.100
# SMB 漏洞全集
nmap --script smb-vuln* -p 445 192.168.1.0/24
# ShellShock(Bash 漏洞)
nmap --script http-shellshock -p 80,443 192.168.1.100
# 心脏滴血(Heartbleed)
nmap --script ssl-heartbleed -p 443 192.168.1.100
Web 应用漏洞扫描
Nikto(服务器配置检查)
nikto -h https://example.com -o nikto-result.html
扫描 Web 服务器的配置问题、过期组件、危险文件(.git/config、phpinfo.php、备份文件等)。
Nuclei(模板驱动的快速扫描)
nuclei -u https://example.com -t /usr/share/nuclei-templates/ -o nuclei-result.txt
Nuclei 基于 YAML 模板,扫描速度快、可以自定义规则。
Burp Suite(手动测试)
自动扫描只能发现已知漏洞,真正有价值的业务逻辑漏洞需要手动测试:
- SQL 注入:参数中注入
' OR 1=1 --看响应变化 - XSS:参数中注入
<script>alert(1)</script>看是否被回显 - 权限绕过:把 URL 中的用户 ID 从
1改成2看是否能看别人的数据 - 敏感信息泄露:检查 API 返回的 JSON、Error 页面、注释中的调试信息
漏洞验证:searchsploit
确认服务版本后用 searchsploit 查 Exploit-DB:
searchsploit apache 2.4
searchsploit "Microsoft Windows SMB"
searchsploit -x exploits/windows/smb/42031.py # 查看 PoC 源码
searchsploit -m 42031 # 复制 PoC 到当前目录
漏洞风险评级
输出漏洞清单时按 CVSS 3.1 标准评级:
| 等级 | CVSS 分数 | 含义 |
|---|---|---|
| Critical | 9.0-10.0 | 直接远程代码执行,无需认证 |
| High | 7.0-8.9 | 远程代码执行或提权 |
| Medium | 4.0-6.9 | 需要认证或有限影响 |
| Low | 0.1-3.9 | 信息泄露或配置问题 |
Critical/High 漏洞优先利用,Medium/Low 漏洞留到报告里。