Metasploit-framework 内网穿透:多场景详解

  • A+
所属分类:安全文章

前言

对于一名合格的网络安全从业者来说,Metasploit-framework是必会不可的工具,大大降低了exploit的利用门槛。

但在实战中,复杂的网络环境以及防火墙策略都会对Metasploit-framework的使用进行干扰。

在笔者对网上的文章进行研究后,发现绝大多数文章解决的场景都类似于《msf生成木马时的内网映射》,并未涉及到在 exploit 模块中如何使用反弹shell。

此文章旨在解决不同场景下的使用方法,同时让新手也能轻松理解。

基础知识

1. reserve与bind的区别

Bind:

正向(主动)连接,意思为在目标主机打开一个监听端口,MSF所在主机主动发起对目标主机的tcp/http/https连接。

优点:由于是MSF所在主机主动连接,所以MSF所在主机是否在内网并无影响,只要能访问到目标主机即可。

缺点:打开监听端口入站请求动作过于明显,且受到目标主机防火墙影响。

Reserve:

反向(被动)连接,意思为在MSF所在主机打开一个监听端口,目标主机在运行payload后会主动发起对MSF所在主机的tcp/http/https连接。

优点:由于是目标主机主动连接,所以目标主机是否在内网并无影响,只要能访问到MSF所在主机即可。

缺点:目标主机需要能访问到MSF所在主机,但在实际渗透中MSF大多数搭建在本机(不排除直接搭建在服务器上)。

2. meterpreter_reverse_tcp与meterpreter/reverse_tcp的区别

meterpreter_reverse_tcp会在第一次建议连接时执行所有payload。

meterpreter/reverse_tcp会在第一次执行较小的payload,然后通过此payload下载完整的payload并执行

3. meterpreter_reverse_tcp与shell_reverse_tcp的区别

meterpreter_reverse_tcp为封装有大量模块的MSF模块,可理解为shell pro

shell_reverse_tcp直接反弹shell,可以直接通过nc接受。

注:本文主要对内网中的MSF进行探讨,对于公网上的MSF可直接反连

前期准备

MSF所在攻击机:内网机器,127.0.0.1

目标主机:target.com

Frp代理:p.com:8000 -> 127.0.0.1:7000

1. MSF生成反连木马上线

笔者在前言中提到过此种场景的解决方法在网上大量流传,只做一些查漏补缺,不做过多赘述。

使用场景:

内网MSF,目标主机不限,目标主机运行木马反弹上线。

基本思路:

生成木马,反连地址为p.com:8000,开启MSF监听127.0.0.1:7000

常见问题:

MSF运行在虚拟机中,frp代理在物理机,以Vmware为例,只需开启nat地址映射即可。

2. MSF通过Exploit模块上线

使用场景:

内网MSF,目标主机不限,通过MSF Exploit模块执行payload反弹上线。

基本思路:

当我们使用Exploit模块时

(此处拿windows/smb/ms17_010_eternalblue举例),MSF默认会给我们绑定windows/x64/meterpreter/reserve_tcp的payload

Metasploit-framework 内网穿透:多场景详解

查看配置选项

Metasploit-framework 内网穿透:多场景详解

通常来说我们只需配置RHOST, RPORT, LHOST, LPORT。

RHOST与RPORT为目标机器地址与端口

LHOST与LPORT有两个作用:

MSF绑定LHOST与LPORT,监听连接请求

执行Payload时反弹回连IP与端口

此处就产生了一个问题:

在有代理的情况下,我们需要让MSF绑定监听本机127.0.0.1的7000端口,但需要执行Payload时反弹回连FRP代理p.com的8000端口,需要设置两个不同的LHOST/LPORT分别用于监听/回连。

那我们能否直接让MSF绑定FRP代理p.com的8000端口呢

Metasploit-framework 内网穿透:多场景详解

笔者只能寻找MSF是否支持配置不同的监听地址/端口与反弹地址/端口,发现了如下选项

Metasploit-framework 内网穿透:多场景详解

但并未能成功利用此选项达到预期效果,若有大神知道此选项用法烦请告知。

只得从另一个角度出发,另开一个MSF作为监听本地7000端口,将Exploit利用反弹给FRP代理p.com:8000端口。

Listen Msf:

Metasploit-framework 内网穿透:多场景详解

Exploit Msf:

Metasploit-framework 内网穿透:多场景详解

但前面也已经提到过,直接绑定p.com:8000会无法绑定,会直接绑定本机8000端口,此时我们需要用到选项disablepayloadhandler

set disablepayloadhandler true

设置取消handle(即listen),此时LHOST/LPORT只有一个作用,就是确定执行payload后的反连地址,运行后即可成功监听。

扩展

1.当代理中的本机端口与远程端口保持一致的,可直接设置LHOST/LPORT为远程IP/端口,因为绑定失败时会使用本机IP进行绑定,但payload反弹地址不变

2.某些exploit模块在payload执行之后还会进行第二次payload下载,碰到这种情况时有两种解决方法:

1.买服务器安装MSF一劳永逸

2.使用exec模块直接执行nc、bash等命令反弹shell

3.使用exec模块执行命令反弹shell永远可做为备选方案,但是无法利用msf上丰富的扩展

Metasploit-framework 内网穿透:多场景详解


精彩推荐





Metasploit-framework 内网穿透:多场景详解

Metasploit-framework 内网穿透:多场景详解

Metasploit-framework 内网穿透:多场景详解

Metasploit-framework 内网穿透:多场景详解

Metasploit-framework 内网穿透:多场景详解

本文始发于微信公众号(FreeBuf):Metasploit-framework 内网穿透:多场景详解

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: