AD 域渗透中的哈希种类与 Hashcat 破解模式详解

在进行 Active Directory(AD)域渗透测试时,往往需要从域内获取各种形式的密码哈希。通过提取这些哈希,渗透测试人员可以利用离线密码破解工具(如 Hashcat)对其进行暴力破解、规则破解或组合攻击,从而获取明文密码,并进一步进行横向移动或权限提升。本文将详细介绍在 AD 域渗透中可能遇到的所有常见哈希类型,以及 Hashcat 对应的破解模式和使用场景。


1. NTLM 哈希

概述

NTLM 哈希是 Windows 认证体系中最常见的密码存储方式。AD 中的账户(通常通过工具如 secretsdump.py 提取)会以 NTLM 哈希形式存储密码。

Hashcat 破解模式

  • 模式:1000
    • 描述:Hashcat 中的模式 1000 用于破解标准的 NTLM 哈希。
    • 命令示例
      hashcat -m 1000 ntlm.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:适用于通过 pwdump、secretsdump 等工具提取的 NTLM 密码哈希。

2. Kerberos 哈希

在 AD 环境中,Kerberos 协议是身份验证的核心。由于其设计特点,渗透测试中会出现两类针对 Kerberos 的离线破解哈希:AS-REP 与 TGS。

2.1 Kerberos AS-REP 哈希

概述

当账户未启用预身份验证(Pre-Authentication)时,攻击者可以请求 AS-REP 消息,并提取包含加密票据的数据。这种攻击手法称为 ASREP Roasting。获取的哈希格式通常类似于:

$krb5asrep$23$username@DOMAIN$
Hashcat 破解模式
  • 模式:18200
    • 描述:Hashcat 模式 18200 专门用于破解 Kerberos 5 AS-REP 哈希(etype 23)。
    • 命令示例
      hashcat -m 18200 asrep.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:适用于针对未启用预认证的账户进行 ASREP Roasting,从而离线破解密码。

2.2 Kerberos TGS 哈希(Kerberoasting)

概述

Kerberoasting 攻击针对的是 AD 中存在 SPN(Service Principal Name)的服务账户。通过向域控制器请求服务票据(TGS),渗透测试人员可以获得经过 RC4-HMAC 加密的票据哈希,其格式一般为:

$krb5tgs$23$*username$DOMAIN$SPN*$ticket_data
Hashcat 破解模式
  • 模式:13100
    • 描述:Hashcat 模式 13100 用于破解 Kerberos 5 TGS-REP 哈希(etype 23),也就是 Kerberoasting 攻击得到的哈希。
    • 命令示例
      hashcat -m 13100 tgs.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:通过工具如 getuserspn.py 获取的 TGS 票据哈希,可以利用该模式进行离线密码猜解。

3. NetNTLM 挑战响应哈希

在渗透测试中,当利用网络捕获工具(例如 Responder 或 Metasploit 模块)截获挑战响应时,可能会获得 NetNTLMv1 或 NetNTLMv2 哈希。这类哈希常用于对 Windows 身份验证挑战-响应协议进行攻击。

3.1 NetNTLMv1

  • 模式:5500
    • 描述:Hashcat 模式 5500 用于破解 NetNTLMv1 哈希。
    • 命令示例
      hashcat -m 5500 netntlmv1.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:在捕获到 NetNTLMv1 挑战响应时使用,但由于 NetNTLMv1 安全性较低,实际环境中较少见。

3.2 NetNTLMv2

  • 模式:5600
    • 描述:Hashcat 模式 5600 专用于破解 NetNTLMv2 哈希。
    • 命令示例
      hashcat -m 5600 netntlmv2.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:较常见于捕获的网络挑战响应中,NetNTLMv2 是当前 AD 环境中更为常见的挑战响应哈希格式。

4. Cached Domain Credentials(DCC2)

概述

Windows 系统中存储的域缓存凭证(Cached Domain Credentials)通常也以哈希形式保存。通过工具(例如 secretsdump.py)可以提取这些哈希,用于离线破解。其格式通常为:

$DCC2$[iteration]#[username]#[domain]#[salt]#[hash]

Hashcat 破解模式

  • 模式:2100
    • 描述:Hashcat 模式 2100 专门用于破解 Windows Cached Domain Credentials(DCC2)。
    • 命令示例
      hashcat -m 2100 dcc2.hash /usr/share/wordlists/rockyou.txt
      
    • 应用场景:针对 Windows 系统中缓存的域凭证进行离线破解,常见于针对笔记本电脑或其他离线系统的调查中。

5. 总结与建议

在 AD 域渗透测试中,提取和破解哈希是横向移动和权限提升的重要环节。常见的哈希类型及其对应的 Hashcat 破解模式总结如下:

哈希类型 格式示例 Hashcat 模式 获取工具或场景
NTLM 32位16进制字符串 1000 secretsdump.py、pwdump
Kerberos AS-REP(PreAuth 未启用账户) $krb5asrep$23$username@DOMAIN$ 18200 getasreproast.py、Rubeus
Kerberos TGS(Kerberoasting) $krb5tgs$23$*username$DOMAIN$SPN*$ 13100 getuserspn.py、impacket 等
NetNTLMv1 挑战响应格式(特定格式的字符串) 5500 捕获网络流量(Responder、Metasploit)
NetNTLMv2 挑战响应格式(特定格式的字符串) 5600 捕获网络流量(Responder、Metasploit)
Cached Domain Credentials (DCC2) $DCC2$[iteration]#[username]#[domain]#[salt]#[hash] 2100 secretsdump.py、Windows 系统缓存凭证提取

使用建议

  • 字典与规则:针对不同的哈希类型,建议先使用常用的字典(如 rockyou.txt),再根据情况结合 Hashcat 内置的规则或自定义规则进行二次破解。
  • 硬件加速:由于哈希破解(尤其是 Kerberos 哈希)的计算量较大,建议使用支持 OpenCL/CUDA 的 GPU 加速版 Hashcat,以提高破解速度。
  • 提权与横向移动:一旦成功破解出密码,应当结合 AD 域内权限、SPN 账户及 Kerberos 协议的特性,进行后续的横向移动和权限提升操作。

你可能感兴趣的:(哈希算法,网络安全,渗透测试,安全,kali)