[工具使用] Metasploit进阶笔记之Meterpreter无阶段模式

499 0
Honkers 2026-5-26 02:36:23 来自手机 | 显示全部楼层 |阅读模式

一、简介

Metasploit 长期以来一直支持其工具集中的分阶段和无阶段有效载荷的混合。这种有效载荷的组合为渗透测试人员在执行利用时提供了大量的选择。然而,这个组合中有一个选项一直缺失,那就是无阶段的 Meterpreter 有效载荷。在这篇文章中,我将解释这是什么意思,为什么你应该关注它,并展示 Metasploit 和 Meterpreter 最新更新如何提供这个新的功能,就像 Tod 在他的上次 Wrapup 文章中预示的那样。

二、什么是分阶段有效载荷?

分阶段有效载荷是尽可能紧凑的有效载荷,执行的唯一任务是为攻击者提供上传更大有效载荷的手段。分阶段有效载荷通常在利用场景中使用,因为二进制利用常常导致用于存储 shellcode 的空间非常小。

最初的 shellcode(通常称为阶段0)可能会建立一个新的连接回攻击者的机器,并将更大的有效载荷读取到内存中。一旦有效载荷接收到,阶段0 会将控制权交给新的、更大的有效载荷。

在 Metasploit 的术语中,这个有效载荷叫做 reverse_tcp,第二阶段(阶段1)可能是标准的命令行 shell,也可能是更复杂的内容,如 Meterpreter shell 或 VNC 会话。还有其他分阶段选项,例如 reverse_https 和 bind_tcp,它们提供不同的传输选项,用于为第二阶段打开通道。

三、分阶段 Meterpreter 的利用回顾

分阶段 Meterpreter 就是我们当前所知道的 Meterpreter。每当我们设置 PAYLOAD windows/meterpreter/… 时,我们是在要求 Metasploit 准备一个被分成两个阶段的有效载荷,其中第二阶段将给我们一个 Meterpreter 会话。为了帮助那些不熟悉分阶段有效载荷利用过程的人,我们来看看在使用这个有效载荷利用 Windows 机器时发生的事情,假设我们使用的是 ms08_067_netapi 漏洞。

以下是两台机器的示意图:攻击者和目标。攻击者运行 Metasploit,并配置 ms08_067_netapi 漏洞,使用分阶段的 Meterpreter 有效载荷,其中阶段0 设置为 reverse_tcp,使用端口 4444。目标是运行 Windows 的一台机器,其 SMB 实现存在漏洞,监听端口 445。

当有效载荷被执行时,Metasploit 会在正确的端口上创建一个监听器,然后与目标的 SMB 服务建立连接。在后台,当目标的 SMB 服务接收到连接时,会调用一个函数,该函数包含一个堆栈缓冲区,攻击者的机器将溢出这个缓冲区。


攻击机器随后发送的数据比目标预期的要大。这些数据包含了 stage0 和一些特定于漏洞的代码,导致目标缓冲区溢出。特定于漏洞的代码使攻击者能够控制 EIP,并将进程执行重定向到 stage0 的 shellcode。

此时,攻击者已经控制了 SMB 服务中的执行,但由于大小限制,实际上无法执行太多其他操作。当 stage0(reverse_tcp)执行时,它会通过所需的端口连接回攻击者,攻击者的端口已经准备好并等待着接收 stage1。在 Meterpreter 的情况下,stage1 是一个名为 metsrv 的 DLL 文件。

然后,metsrv DLL 通过这个反向连接发送到目标机器。这就是我们在 msfconsole 中看到“Sending stage …”消息时发生的情况。

在“Sending stage”消息中显示的字节数表示整个 metsrv 组件以及一个配置块。将其推送到目标机器后,stage0 shellcode 会将其写入内存中。


一旦 stage1 被加载到内存中,stage0 会通过简单地跳转到 payload 写入的位置来将控制权交给它。在 metsrv 的情况下,前 60(大约)字节是一个巧妙的 shellcode 集合,看起来也像一个有效的 DOS 头部。当这个 shellcode 执行时,它使用反射 DLL 注入(Reflective DLL Injection)将 metsrv 映射并加载到内存中,从而使其能够像一个正常的 DLL 一样工作,而无需将其写入磁盘或将其注册到宿主进程中。然后,它会调用加载的 DLL 中的 DllMain(),从而使我们熟悉并喜爱的 Meterpreter 控制权接管。

从这里开始,MSF 会推送两个 Meterpreter 扩展 DLL:stdapi 和 priv。它们都以与最初的 metsrv DLL 相同的方式反射加载。此时,Meterpreter 已经准备好并愿意接受你的命令。

四、Staged Meterpreter 有什么问题?

如上所述,Staged Meterpreter 在某些场景下是非常有效且完美的。然而

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行