深入解析HTB Haze:从Splunk漏洞到Windows域控提权

本文详细分析了HTB Haze靶机的完整渗透过程,从Splunk Enterprise的CVE-2024-36991目录遍历漏洞利用开始,通过解密配置文件获取凭据,逐步横向移动至域控系统,最终通过GodPotato工具实现SYSTEM权限获取。

HTB: Haze

Box信息

名称: Haze
发布日期: 2025年3月29日
退役日期: 2025年6月28日
操作系统: Windows
基础分数: 困难 [40]
创建者: EmSec

侦察

初始扫描

Nmap发现30个开放的TCP端口,包括典型的Windows域控制器端口(如53、88、135、139、389、445)以及Splunk服务端口(8000、8088、8089)。域名为haze.htb,主机名为dc01。

SMB - TCP 445

匿名或访客身份验证无效,需后续获取凭据后重新检查。

Splunk

背景

Splunk Enterprise是一个安全信息和事件管理(SIEM)平台,用于处理、索引和搜索日志数据。Haze上的Splunk服务运行在端口8000(Web访问)、8088(HTTP事件收集器)和8089(REST API)。

身份验证为paul.taylor

CVE-2024-36991

Splunk Enterprise在Windows版本低于9.2.2时存在目录遍历漏洞(CVE-2024-36991),允许通过/en-US/modules/messaging/端点读取任意文件。利用路径/en-US/modules/messaging/C:../C:../C:../C:../C:../etc/passwd成功读取Splunk的密码文件。

文件系统枚举

通过目录遍历漏洞读取多个配置文件:

  • etc/system/local/authentication.conf:包含LDAP绑定用户Paul Taylor的加密密码。
  • etc/system/local/server.conf:包含多个加密密钥。
  • etc/auth/splunk.secret:获取加密密钥文件。

恢复密码

使用splunksecrets工具解密加密数据:

  • LDAP绑定密码:Ld@p_Auth_Sp1unk@2k24
  • 其他密钥:changemepassword

验证密码对用户paul.taylor有效,但该用户无法通过WinRM连接。

Shell作为mark.adams

枚举

SMB共享

paul.taylor可访问默认的AD共享(如ADMIN$、C$、IPC$、NETLOGON、SYSVOL),但无特别内容。

SMB用户枚举

通过RID暴力破解发现域用户列表,包括mark.adamsedward.martinalexander.green等。

Bloodhound

使用rusthound-ce收集域信息,但paul.taylor权限有限,数据不完整。

替代用户枚举

通过添加机器账户(利用MAQ=10)获取完整用户列表。

密码喷洒

使用已知密码(Ld@p_Auth_Sp1unk@2k24changemepassword)对域用户进行喷洒,发现mark.adams共享相同密码。

Shell

mark.adams可通过WinRM连接,获取用户shell。

身份验证为Haze-IT-Backup

枚举

文件系统

mark.adams的主目录为空,但发现C:\Backups目录,无访问权限。

Bloodhound

重新收集Bloodhound数据,mark.adams是gMSA_Managers组成员。

gMSA枚举

发现gMSA账户Haze-IT-Backup$,仅Domain Admins组可检索密码。通过ACL分析,gMSA_Managers组有WriteProperty权限于msDS-GroupMSAMembership属性。

恢复凭据

mark.adams添加到允许检索密码的 principals,使用netexec获取gMSA密码的NTLM哈希:4de830d1d58c14e241aff55f82ecdba1

Shell作为edward.martin

枚举

Haze-IT-Backup对Support_Services组有WriteOwner权限。

控制Support_Services

添加Haze-IT-Backup到组,并赋予GenericAll权限。重新运行Bloodhound,发现Support_Servicesedward.martin有控制权限。

Shadow凭据

使用certipy为edward.martin设置Shadow凭据,获取NTLM哈希:09e0b3eeb2e7a6b0d419e9ff8f4d91af,并通过WinRM获取shell。

Shell作为alexander.green

枚举

查找备份

edward.martin是Backup_Reviewers组成员,可访问C:\Backups\Splunk\splunk_backup_2024-08-06.zip

分析备份

解压备份文件,在authentication.conf中发现加密密码($1$YDz8WfhoCWmf6aTRkA+QqUI=),使用旧版splunk-secrets解密得密码:Sp1unkadmin@2k24

Splunk Web

使用密码以admin身份登录Splunk Web。

恶意应用

上传恶意Splunk应用(反向shell),触发执行后获取alexander.green的shell。

Shell作为System

枚举

alexander.green有SeImpersonatePrivilege权限。

GodPotato

使用GodPotato-NET4.exe提权至SYSTEM,获取root.txt。

总结

通过利用Splunk的目录遍历漏洞,逐步横向移动和权限提升,最终完全控制Windows域控制器。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计