Targets

1️⃣ Targets 的概念

  • 目标(Target):指的是漏洞利用模块适配的特定作系统版本或软件版本。
  • 不同目标可能:
    • 作系统版本不同(如 Windows XP、Windows 7)
    • 软件版本不同(如 IE 7、IE 8、IE 9)
    • Service Pack 或语言版本不同
  • 选择正确目标很重要,因为漏洞利用模块内部可能使用了特定的返回地址或ROP链,这些地址在不同系统/语言版本下会变化。

2️⃣ 查看可用目标

在未选择模块时:

msf6 > show targets
[-] No exploit module selected.

说明必须先选择一个漏洞利用模块,否则无法显示可用目标。

在选择模块后:

msf6 exploit(windows/smb/ms17_010_psexec) > show targets
  • 会显示该模块支持的目标列表。
  • 示例(MS17-010)Id Name -- ---- 0 Automatic
    • Automatic 表示 Metasploit 会自动检测目标版本。

对 IE Use-After-Free 漏洞(MS12-063):

msf6 exploit(windows/browser/ie_execcommand_uaf) > show targets

输出:

Id  Name
--  ----
0   Automatic
1   IE 7 on Windows XP SP3
2   IE 8 on Windows XP SP3
3   IE 7 on Windows Vista
4   IE 8 on Windows Vista
5   IE 8 on Windows 7
6   IE 9 on Windows 7

可以针对具体 IE/Windows 组合选择目标。


3️⃣ 选择目标

  • 默认 Automatic:Metasploit 会先尝试探测目标。
  • 如果你明确知道目标版本:
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6
target => 6
  • 这里 6 对应 IE 9 on Windows 7

4️⃣ 为什么目标不同

  • 返回地址不同:语言包、Service Pack、系统版本可能导致内存地址变化。
  • ROP链依赖:某些漏洞需要特定的库版本或安装环境。
  • 安全措施:不同系统的 DEP/ASLR 状态也会影响漏洞利用成功率。

总结:选择正确目标是漏洞利用成功的关键一步。


5️⃣ 实践建议

  1. 先用 info 查看模块信息msf6 exploit(windows/browser/ie_execcommand_uaf) > info
    • 了解漏洞类型、受影响版本、先决条件。
  2. 使用 show targets 确认支持的系统
  3. 如知道版本,使用 set target <id> 指定目标,否则用 Automatic
  4. 注意返回地址和依赖条件
    • 有些模块需要特定 DLL 或 JRE 版本。
    • 有些模块需要针对语言版本做调整。
上一篇
下一篇