安全矩阵

 找回密码
 立即注册
搜索
查看: 2150|回复: 0

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

[复制链接]

221

主题

233

帖子

792

积分

高级会员

Rank: 4

积分
792
发表于 2021-6-5 10:01:37 | 显示全部楼层 |阅读模式
Metasploit-framework 内网穿透:多场景详解网络安全编程与黑客程序员 昨天
    来自 | FreeBuf
对于一名合格的网络安全从业者来说,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

查看配置选项

通常来说我们只需配置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端口呢

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

但并未能成功利用此选项达到预期效果,若有大神知道此选项用法烦请告知。
只得从另一个角度出发,另开一个MSF作为监听本地7000端口,将Exploit利用反弹给FRP代理p.com:8000端口。
Listen Msf:

Exploit Msf:

但前面也已经提到过,直接绑定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上丰富的扩展

回复

使用道具 举报

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

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 04:33 , Processed in 0.012503 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表