在网络安全对抗领域,Active Directory域环境的渗透测试始终是红队成员必须掌握的核心技能。今天我们将深入探讨Hack The Box平台上名为Pirate的困难级别靶机,完整复现一次通过Kerberos服务主体名称替换技术成功获取域密码复制权限的真实攻击场景。这次渗透测试将展示多个高级域渗透技术的串联使用,包括Pre-Windows 2000计算机账户的密码滥用、组托管服务账户密码的读取利用、WinRM协议远程访问、SOCKS代理隧道建立以及NTLM身份验证重放攻击等环节。我们的目标很明确,那就是获得Pirate机器上的最高SYSTEM权限,同时获取域控制器上的关键凭据信息。为了完成这一目标,我们需要充分利用一个看似普通但实际上权限极大的域用户账户pentest。值得注意的是,这台靶机还额外提供了该账户的明文密码p3nt3st2025!&,这在真实渗透测试场景中是极为罕见的情况,通常红队成员需要通过各种技术手段才能获取到这样的初始凭据。
在正式开始渗透测试之前,我们必须首先完成最基础但至关重要的信息收集工作。端口扫描是任何渗透测试的第一步,通过系统性地探测目标主机上开放的网络端口,我们可以确定目标系统运行了哪些网络服务,从而为后续的攻击向量选择提供依据。使用Nmap工具对Pirate机器进行全端口扫描后,我们发现了14个处于监听状态的TCP端口。微软IIS网络服务器运行在80端口,Kerberos认证服务位于88端口,远程过程调用服务使用135端口,NetBIOS会话服务占用139端口,轻量级目录访问协议服务在389和636端口运行,SMB文件共享服务在445端口,Kerberos密码变更服务在464端口,HTTP-RPC端点映射器占用593端口,Hyper-V虚拟机连接服务在2179端口,LDAP全局编录服务分别在3268和3269端口,WinRM远程管理服务在5985端口,而AD DS网络服务则运行在9389端口。从端口分布来看,这是一个典型的Windows域控制器配置,因为标准域控制器必须同时运行Kerberos、LDAP、SMB以及全局编录服务来提供完整的Active Directory功能。值得注意的是,Nmap的扫描结果显示目标主机的时间与域控制器存在大约七个小时的时差,这个问题如果不妥善处理,将会导致所有Kerberos相关的操作失败,因为我们将会收到KRB_AP_ERR_SKEW错误提示,这是由于Kerberos协议对时间同步有着极为严格的要求。
为了解决这个问题,我们需要在所有涉及Kerberos的操作前加上faketime工具来调整系统时间,具体的命令格式为faketime -f '+7h'。在确认了目标环境的基本情况后,我们首先将Pirate机器的IP地址添加到本地主机的hosts文件中,同时添加域控制器的主机名解析记录。考虑到端口扫描结果中包含了大量域服务端口,我们可以合理推测Pirate机器很可能就是域控制器本身,因此我们将10.129.244.95同时解析为pirate.htb和DC01.pirate.htb两个主机名。完成这些准备工作后,我们使用NetExec工具验证之前获得的域用户凭据是否有效,这一步操作对于后续的所有攻击都至关重要,因为如果凭据验证失败,后续的域信息收集工作将无法进行。验证结果显示pentest用户的凭据是有效的,这意味着我们成功建立了与目标域环境的初始连接。有了有效的域凭据后,我们就可以开始进行更深入的域环境侦察工作。
BloodHound是目前最强大的Active Directory攻击路径分析工具,它基于图论算法来发现域环境中隐藏的以及非预期设置的权限关系。通过使用RustHound-CE这款用Rust语言编写的BloodHound数据收集器,我们以pentest用户的身份连接到域控制器,指定收集所有类型的攻击路径信息。工具运行后生成了完整的域环境拓扑图谱,然而令人失望的是,BloodHound并没有发现任何明显的特权提升路径。这可能是因为当前用户pentest的权限设置较为普通,或者域环境已经过安全加固消除了常见的攻击路径。尽管BloodHound没有提供直接的攻击路线,我们仍然可以尝试其他方法来寻找突破口。在Active Directory安全研究领域,有一个相对较少被关注但危害极大的攻击面,那就是Pre-Windows 2000计算机账户。
这类账户是Windows 2000之前的域控制器遗留下来的产物,它们使用了一种被称为旧式NTLM身份验证的简化认证方式。与现代计算机账户使用随机生成的复杂密码不同,Pre-Windows 2000账户的密码通常被设置为与账户名称本身相同,这个特性使得它们成为极具吸引力的攻击目标。为了枚举域中是否存在这类易受攻击的账户,我们使用NetExec工具配合pre2k模块进行扫描。这个模块专门设计用于识别仍然存在于现代Active Directory环境中的Pre-Windows 2000计算机账户,其工作原理是通过LDAP协议查询域控制器上的计算机账户列表,然后检测哪些账户可能使用了不安全的密码策略。扫描结果显示域中确实存在几个Pre-Windows 2000计算机账户,这意味着我们找到了一个潜在的突破口。然而,文章的后续内容因为订阅期限的限制而无法完整展示。
根据目前掌握的信息,我们可以推测完整的攻击链条很可能包含了以下关键技术环节。首先是获取Pre-Windows 2000计算机账户的凭据,这可能通过密码喷洒攻击或直接尝试账户名作为密码来实现。其次是利用获取到的计算机账户权限读取组托管服务账户的密码属性,在Active Directory中,gMSA账户的密码以加密形式存储在特定的LDAP属性中,拥有适当权限的账户可以读取这些加密数据。第三步是通过WinRM协议使用获取到的凭据登录到中间服务器,WinRM是Windows远程管理的标准协议,它支持基于HTTP的远程命令执行。最后一步很可能是建立SOCKS代理隧道,将我们的攻击流量转发到内部网络,然后利用NTLM中继攻击将获取到的身份验证会话重放到域控制器,最终实现域密码复制或类似的特权操作。从技术角度来看,整个攻击链条的核心思想是利用Kerberos服务主体名称替换来实现身份验证的滥用。
在正常的Kerberos认证流程中,客户端需要首先向密钥分发中心请求服务票据,票据中包含的服务主体名称必须与目标服务的SPN相匹配。如果攻击者能够修改某个账户的SPN属性,使其指向另一个服务,那么当域控制器颁发票据时,票据中将包含攻击者指定的SPN信息。这种技术可以与基于资源的约束委派相结合,从而实现跨账户的身份验证滥用。在Active Directory环境中,写入权限是一个极其敏感的属性。如果某个账户对另一个账户的SPN属性拥有写入权限,攻击者就可以通过修改目标账户的SPN来实现服务账户冒充。例如,攻击者可以将目标用户的SPN设置为域控制器的 krbtgt 服务主体名称,这样当该用户进行身份验证时,域控制器就会为攻击者指定的服务颁发票据,从而实现对域控制器的持久化访问或密码复制操作。
Kerberos约束委派是另一个值得深入理解的技术点。约束委派允许管理员指定哪些服务可以代表用户访问其他服务。传统的约束委派需要在被信任服务的属性中明确列出允许委派的目标服务列表,而基于资源的约束委派则改变了这一模式,它在被访问服务的属性中指定哪些服务可以代表用户访问自己。基于资源的约束委派在2014年首次被引入,它大大简化了委派配置,但也带来了新的安全风险。对于渗透测试人员而言,理解这些技术的实际应用场景至关重要。在真实的红队行动中,获取域控制器权限通常意味着整个目标网络的彻底沦陷,因为域控制器存储了域中所有用户的密码哈希值。
通过域控制器的NTDS.dit数据库,红队成员可以提取出所有域用户的NTLM哈希值,这些哈希值可以被用于哈希传递攻击、票据传递攻击,或者直接离线破解以获取明文密码。一旦获取了域管理员或企业管理员级别的凭据,攻击者就可以在整个域林中横向移动,几乎没有任何限制。防御方应该如何应对这类高级持续性威胁呢?首要的措施是定期审计域环境中的敏感权限分配,特别是针对服务账户和计算机账户的写入权限。微软提供了多种工具来帮助管理员检测潜在的特权提升风险,包括.NET框架自带的AD RMS检测功能以及第三方安全审计工具。其次,应该尽快迁移或删除所有Pre-Windows 2000计算机账户,因为这些遗留账户的安全性远低于现代计算机账户。此外,启用所有计算机账户的复杂密码策略,确保每个账户的密码都是随机生成的强密码,可以有效防止通过密码猜测或喷洒进行的攻击。
在安全监控方面,启用Kerberos服务票据请求的审计日志可以帮助发现异常的SPN使用情况。当检测到某个用户或计算机账户请求访问不常见的服务主体名称时,应该立即触发安全告警。同时,监控LDAP修改操作,特别是对用户和计算机账户属性的修改,可以帮助发现攻击者正在进行的侦察活动或权限提升尝试。网络层面的分段控制同样不可忽视。即使攻击者成功获取了域控制器的一定访问权限,如果网络架构设计得当,攻击者的横向移动能力也会受到限制。将域控制器放置在独立的网络分段中,严格控制其他子网与域控制器之间的通信,可以有效减缓攻击扩散的速度。
此外,在关键服务器上启用 Protected Users 安全组成员资格,可以强制这些账户只能使用Kerberos身份验证,从而防止NTLM身份验证被滥用。回到我们的HTB Pirate靶机测试,整个攻击过程展示了现代Active Directory渗透测试的复杂性和技术深度。从最初的端口扫描和凭据验证,到域环境的深度侦察,再到利用Pre-Windows 2000账户的安全缺陷,每一步都需要扎实的技术功底和对协议原理的深入理解。最终通过Kerberos SPN替换和相关技术的串联使用实现域密码复制的目标,这正是高级渗透测试工程师应该具备的综合能力。对于希望提升渗透测试技能的网络安全从业者来说,深入研究这类靶机场景是极好的学习方式。Hack The Box平台提供了丰富的实战环境,涵盖了从基础到高级的各个难度级别。
通过反复练习这些真实世界的攻击场景,安全研究人员可以更好地理解攻击者的思维方式,从而在实际的防御工作中做到知己知彼。同时,这些技术原理的理解也有助于安全评估人员更准确地识别客户环境中存在的安全弱点,为客户提供更有价值的修复建议和安全加固方案。 。