在内网做渗透测试时,常常遇到访问策略限制,无法直接访问渗透目标。本文算是记录下我上一年的几个解决方案。
0x01 场景说明
在做安服驻场时,连入客户内网对另一网段的站点进行渗透。有可能会遇到这种情况,虽然连入了客户内网,但无法直接访问目标站点。因为客户内网做了访问策略限制,不同网段无法直接连通。往往需要通过客户提供的跳板服务器去访问,大概的网络示意图如下:
我们当然可以在跳板服务器上装好java环境,方便运行比配的Burp Suite。安装python环境,运行常用的渗透辅助脚本。同时如果你还需要其他工具,得一个一个复制到服务器上……这将非常的繁琐!
那不能通过某种方法可以使得我们的笔记本直接访问的目标站点呢?,这样就不用拷贝工具到服务器上了,毕竟还是自己的笔记本渗透舒适。本文就是用于解决这个问题。
0x02 方案一: HTTP代理
2.1 跳板服务器配置
在跳板服务器上搭建Http(s)代理服务器,由于比较简单,就不具体说明如何搭建了。
2.2 笔记本配置
在客户端的浏览器上配置好代理,即可访问目标站点了。
2.3 方案缺点
只能支持Http协议数据的转发,无法代理其他协议。导致我们无法测试目标站点的其他端口。下个方案我们来解决这个问题。
0x03 方案二:Shadowsocks
我们往往都是使用Shadowsocks来FQ,其实这种场景也是可以利用Shadowsocks
来解决的。
3.1 跳板服务器配置
Shadowsocks有python版,nodejs版,go版和exe版。由于我们得到的跳板机一般为Windows,故这里选择绿色单exe版Shadowsocks,方便携带移动。下载地址如下:
https://github.com/shadowsocks/libQtShadowsocks
新建以下两个文件,内容分别如下:
shadowsock.json
1 |
{ |
shadowsock-server.bat
1 |
@echo off |
将以上两个文件放到与shadowsocks-libqss.exe
文件同目录,双击运行该bat脚本,即可在服务器上一键启动Shadowsocks了!
3.2 笔记本配置
在我们的笔记本Shadowsocks客户端进行如下设置,即可连接到Shadowsocks服务器。
在渗透时只需要将浏览器,burp等工具代理到127.0.0.1:1080
,即可访问到我们的目标站点了。
注意:只有实现了http(s)/socks5功能或者使用系统代理的工具才能使用Shadowsocks!
3.3 方案缺点
如果某个渗透测试工具本身没有http(s)/socks5代理功能,那该怎么办?也许有的朋友可能会想到使用Proxifier/Sockcap
这类软件,来为这些软件进程“添加”代理功能。但是由于ss需要在本地有客户端,故在本地再使用Proxifier/Sockcap会出现流量传输死循环的情况。下个方案我们来解决这个问题。
0x04 方案三:SOCKS5代理+Proxifier/Sockcap
4.1 跳板服务器配置
这里我们使用绿色单exe版SOCKS5代理服务器软件goproxy,项目地址如下:
https://github.com/snail007/goproxy
在跳板服务器上,使用以下命令即可快速启动SOCKS5代理服务。
1 |
proxy.exe socks -t tcp -p "0.0.0.0:38080" |
4.2 笔记本配置
在本机使用Proxifier将需要代理的工具设置好代理,当然如果该工具有代理功能就不用了。
4.3 方案缺点
- 渗透中需要使用的工具,我们得一一为它们设置好代理,比较繁琐。
- 有些工具,你为它设置代理后,依然不能用,比如nmap。
下个方案我们来解决这些问题。
0x05 方案四:VPN
以上方案,优点很明显,缺点也很明显。为了实现对目标站点的全端口渗透无疑最好的方案是将跳板服务器搭建成VPN服务器了,然后笔记本直接通过VPN来访问目标站点,其他无需设置。即可使得所有工具都能访问到目标站点服务器的所有端口。
5.1下载安装
去官网下载OpenVPN(我下载是openvpn-install-2.3.10-I601-x86_64.exe),并在客户端和服务器按照以下同样的方式安装OpenVPN。安装过程没啥好说的,主要注意到以下这一步时,要选择红方框中的两个选项,不然安装完无法使用命令行制作证书。
安装完成后系统会多出一张网卡TAP-Windows Adapter V9。
5.2 系统设置
设置跳板服务器用于访问目标站点的网卡共享给OpenVPN的虚拟网卡TAP-Windows Adapter V9
,这步很重要!
网上说需要修改注册表,测试发现不改也行,这里做个记录,说不定有的环境需要。
1 |
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters |
5.3 生成VPN证书
初始化配置
1 |
init-config |
复制配置文件为批处理
1 |
vars |
清除key文件夹内的文件,文件夹不存在会自动创建
1 |
clean-all |
生成证书及key,需要填写一些参数,建议不要默认
1 |
build-ca |
创建服务端证书及key,需要填写一些参数,建议不要默认,一路选y
1 |
build-key-server server |
创建一个客户端证书及key,需要填写一些参数,建议不要默认,一路选y
1 |
build-key client |
生成1024bit的key(pem文件),并结束此次创建
1 |
build-dh |
将新生成的keys
目录下所有文件,全部拷贝到服务器OpenVPN的config目录下,
将keys目录下的client1.crt
,client1.key
和ca.crt
复制到客户端的OpenVPN的config目录下。
5.4 编写服务端和客户端连接配置文件
在服务器上,在OpenVPN的sample-config目录下复制一个server.ovpn
配置模板文件,到config目录。以下列举的为需要修改的配置项,其他可以使用默认配置。
1 |
# VPN服务器的地址 |
在客户端,在OpenVPN的sample-config
目录下复制一个client.ovpn
配置模板文件,到config
目录。以下列举的为需要修改的配置项,其他可以使用默认配置。
1 |
# 远程VPN服务器地址 |
最后先启动服务器端,右键托盘图标>connect,小图标变绿色代表启动成功,若不成功可以查看下log日志,排查下原因。然后再启动客户端,操作一致。
5.5 方案缺点
配置相对比较繁琐。
0x06 总结
这些方案我特意选择了比较简单易用的软件,并作了一个记录。方便自己某时需要,能快速突破限制,节省渗透时间。同时解决方案中推荐的软件在Linux上也有,搭建的方式类似。每个方案有优点也有缺点,大家要看自己在现场的实际需求来选择!
0x07 参考文章
- Windows下三分钟搭建Shadowoscks服务器端
- Shadowsocks(Sock5代理)的PAC模式与全局模式与VPN的区别
- OpenVPN Windows 平台安装部署教程
- windows下利用OpenVPN搭建VPN服务器
- OpenVPN 安装、配置客户端和服务端,以及OpenVPN的使用 (Windows 平台)
- OpenVPN搭建中tap与tun的实际使用区别
- openvpn的几种基本模式
- 烂泥:openvpn配置文件详解
- 烂泥:openvpn tun模式下客户端与内网机器通信
文章来源于gv7.me:突破内网渗透中的访问策略限制
payload1是xxe一个经典payload。一般用于无回显的blind xxe。但是问题来了,为何Payload作者将payload内容分两部分(比如像payload1这样),而不是将所有攻击实体放到一个payload中(比如像payload2这样)。注意…
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论