红队攻防
近两年免杀技术年鉴
Python免杀技术实录
AD域攻防系列微课程
免杀技术入门基础知识
深入理解CodeQL代审
开源安全项目二开计划
搞懂攻防内存马研究
深入理解SAST代审测试
C2的发展和技术分析
Fastjson姿势技巧集合
武装你的BurpSuite插件篇
CS4.5二开过HR及内扫
C#安全内网渗透工具集
红队文档书籍PDF资源
邮件钓鱼免杀完全指南
AD内网域技战法总结
渗透测试红队之信息收集
免杀致盲底层驱动BYOVD
SpringBoot常见安全风险
WIN系统红队Rootkit项目2
WIN系统红队Rootkit项目
Ghost Bits项目绕防护神器
小迪安全知识库
-
+
home
AD内网域技战法总结
AD内网域技战法总结
在大型企业网络攻防演练与真实攻防对抗中,攻击者一旦突破边界进入内网,Active Directory (AD) 域环境便成为核心目标。掌握域渗透的完整路径和多样化手法,既是攻击方扩大战果的关键,也是防守方构建纵深防御的基础。本文系统梳理域渗透全链路的50种核心手法,涵盖信息收集、权限获取、权限提升、横向移动、权限维持及痕迹清理六大阶段,供参考。 ### 一、信息收集:绘制域环境地图 1. 1. **基础主机信息收集** * • `ipconfig /all`:查看IP配置、DNS服务器(通常为域控)。 * • `systeminfo`:获取操作系统、补丁、域信息。 * • `net time /domain`:确认域连接状态并探测域控主机名。 * • `net config workstation`:显示计算机名、用户名、工作站域。 * • `whoami /all`:查看当前用户权限、SID、所属组。 3. 2. **用户与组枚举** * • `net user /domain`:列出域内所有用户。 * • `net user <username> /domain`:查询指定域用户详细信息。 * • `net group /domain`:列出域内所有组。 * • `net group “Domain Admins” /domain`:枚举域管理员组成员。 * • `net group “Enterprise Admins” /domain`:枚举企业管理员组成员(林根域)。 5. 3. **计算机对象枚举** * • `net group “Domain Computers” /domain`:列出域内所有计算机(传统)。 * • `Get-ADComputer -Filter * -Properties * | Select-Object Name, OperatingSystem` (PowerShell):更全面的计算机信息获取。 7. 4. **域信任关系发现** * • `nltest /domain_trusts /all_trusts /v`:枚举当前域的所有信任关系(域/林信任)。 * • `Get-ADTrust -Filter * -Properties * | Select-Object Name, Direction, Source, Target` (PowerShell)。 9. 5. **组策略信息提取** * • `gpresult /H report.html /Scope Computer /Scope User`:生成详细的组策略结果报告(需交互或特定权限)。 * • `Get-GPO -All` (PowerShell):枚举所有GPO对象。 11. 6. **SPN扫描与服务发现** * • `setspn -T <domain> -Q */*`:查询域内所有注册的SPN(服务主体名称),暴露服务(如MSSQL, HTTP, TERMSRV等)及其运行账户。 * • `Get-ADObject -LDAPFilter “(servicePrincipalName=*)” -Properties servicePrincipalName` (PowerShell)。 13. 7. **敏感组与ACL枚举** * • `Get-ADGroupMember -Identity “Account Operators”` (PowerShell):枚举特权组成员。 * • `Get-DomainGPOUserLocalGroupMapping` (PowerView):查找通过GPO被授予本地管理员权限的域用户/组。 * • `Invoke-ACLScanner` (PowerView):扫描域对象上权限配置不当的ACL(访问控制列表)。 15. 8. **密码策略探测** * • `net accounts /domain`:查看域账户策略(密码长度、有效期、锁定阈值等)。 * • `Get-ADDefaultDomainPasswordPolicy` (PowerShell)。 17. 9. **DNS记录枚举** * • `nslookup`交互模式下使用`ls -d <domain>`(通常被限制)。 * • `Get-DNSRecord` (PowerSploit/PowerView):尝试枚举域内DNS记录(主机、MX、SRV等)。 19. 10. **域控定位** * • `nltest /dclist:<domain>`:列出指定域的所有域控制器。 * • `net group “Domain Controllers” /domain`。 * • `Resolve-DnsName -Type SRV _ldap._tcp.dc._msdcs.<domain>` (PowerShell)。 * * * ### 二、权限获取:突破初始立足点 1. 11. **密码喷洒攻击** * • 使用常用密码(如`Password1`, `Company2023!`, `Season+Year`)对枚举出的多个域账户进行低频率批量登录尝试(避免触发锁定)。工具:`DomainPasswordSpray`。 3. 12. **用户名枚举** * • 利用NTLM认证错误响应差异(`STATUS_LOGON_FAILURE` vs `STATUS_ACCOUNT_LOCKED_OUT` / `STATUS_ACCOUNT_DISABLED`)或Kerberos错误(`KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN`)枚举有效域用户名。工具:`kerbrute userenum`。 5. 13. **AS-REP Roasting** * • 针对设置了`Do not require Kerberos pre-authentication` (`UF_DONT_REQUIRE_PREAUTH`) 属性的用户账户,直接请求其AS-REP数据包,离线破解加密的TGT(Ticket Granting Ticket)部分。工具:`Rubeus asreproast`, `Get-ASREPHash` (PowerView)。 7. 14. **Kerberoasting** * • 请求服务票据(TGS),针对使用域用户(而非机器账户)运行的服务账户。离线破解服务票据中的服务账户密码哈希。工具:`Rubeus kerberoast`, `Invoke-Kerberoast` (PowerView)。 9. 15. **NTLM Relay 攻击** * • 诱骗具有高权限(如域管)的主机向攻击者控制的机器发起NTLM认证,将认证请求“中继”到目标系统(如域控的LDAP/SMB服务),利用受害者的权限执行操作(如创建新账户、添加组、DCSync)。 * • 关键条件:目标服务需禁用SMB签名(默认客户端不强制)或启用WebDAV/NTLM over HTTP。工具:`ntlmrelayx.py`。 11. 16. **利用LLMNR/NBT-NS/ mDNS欺骗** * • 在缺乏DNS解析或解析失败时,主机通过LLMNR/NBT-NS/mDNS广播查询主机名。攻击者响应欺骗,引导受害者访问恶意服务器,诱导其发起NTLM认证(常与NTLM Relay结合)。工具:`Responder`。 13. 17. **利用AD CS证书服务漏洞(如ESC1, ESC8)** * • **ESC1**:利用配置不当的证书模板(允许低权限用户注册、启用客户端认证、允许任意SAN、管理器批准禁用),申请可用于身份认证的证书,进而获取权限。 * • **ESC8**:利用AD CS Web Enrollment服务启用NTLM认证且未启用EPPN的弱点,结合NTLM Relay攻击,中继到AD CS HTTP终结点申请证书。工具:`Certify`, `Certipy`。 15. 18. **利用PrintNightmare漏洞** * • 利用Windows打印服务RPC协议中的漏洞(CVE-2021-1675 / CVE-2021-34527),允许远程、低权限用户上传恶意DLL并加载执行,实现权限提升或远程代码执行(尤其在域控)。 17. 19. **利用ZeroLogon漏洞**(域控提权漏洞类) * • 利用Netlogon协议中(CVE-2020-1472)的加密缺陷,允许攻击者将域控的机器账户密码置空,从而完全控制域控。工具:`zerologon_tester.py`, `secretsdump.py -no-pass -just-dc <dc$>@<dc_ip>`。 19. 20. **利用PetitPotam漏洞** * • 利用MS-EFSRPC协议强制其他主机(特别是域控)向攻击者控制的服务发起NTLM认证(常与NTLM Relay结合攻击域控)。工具:`PetitPotam.py`。 * * * ### 三、权限提升:从普通用户到特权账户 1. 21. **本地管理员提权** * • 利用本地漏洞(如内核提权EXP)、服务配置错误(可写路径、未引用路径)、凭证窃取(Mimikatz `sekurlsa::logonpasswords`)、计划任务等,先获取单机管理员权限。 3. 22. **利用GPO修改本地管理员组** * • 若对某个组策略对象(GPO)拥有编辑权限(`WriteProperty`/`GenericAll`/`GenericWrite`),可修改其关联的`Groups.xml`文件,将攻击者账户加入目标计算机的本地管理员组。工具:`SharpGPOAbuse`。 5. 23. **滥用ACL修改特权组成员** * • 若对高权限组(如`Domain Admins`)或其成员属性拥有`WriteProperty`(特别是`Write members`)权限,可直接将攻击者账户添加到该组。工具:`net group “Domain Admins” <username> /add /domain`,或PowerView `Add-DomainGroupMember`。 7. 24. **滥用ACL获取DCSync权限** * • 若对域对象或其子对象拥有`Replicating Directory Changes`/`Replicating Directory Changes All`/`DS-Replication-Get-Changes`/`DS-Replication-Get-Changes-All`权限,可授予攻击者账户该权限,从而执行DCSync导出域内所有账户哈希。工具:`PowerView (Add-DomainObjectAcl)`。 9. 25. **利用Kerberos委派提权** * • **非约束委派(Unconstrained Delegation)**:若控制运行非约束委派服务的主机,可诱骗管理员访问该服务,捕获其TGT,模拟其身份访问任意服务。 * • **约束委派(Constrained Delegation)**:若拥有服务账户的`msDS-AllowedToDelegateTo`属性写权限,可配置其代表用户访问特定服务(如CIFS for SMB),或直接利用`s4u2self` + `s4u2proxy`获取目标服务的服务票据。工具:`Rubeus s4u`。 * • **基于资源的约束委派(Resource-Based Constrained Delegation)**:若对某计算机对象拥有`WriteProperty`权限(如`msDS-AllowedToActOnBehalfOfOtherIdentity`),可配置允许攻击者控制的服务账户委派到该计算机,获取其SYSTEM权限。工具:`PowerView (Set-DomainObject … -PrincipalsAllowedToDelegateToAccount …)`, `Rubeus rbcd`。 11. 26. **利用MS14-068漏洞** * • 利用Kerberos PAC验证缺陷(CVE-2014-6324),普通域用户可构造包含虚假PAC的特权TGT,提升至域管理员权限(需未打补丁)。 13. 27. **利用DLL劫持** * • 发现应用程序加载DLL时的搜索路径漏洞(如当前目录优先),放置恶意DLL,当高权限用户或服务运行该程序时触发执行。 15. 28. **利用AlwaysInstallElevated策略** * • 若组策略启用了`AlwaysInstallElevated`(`HKCU/HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer`),用户可通过MSI安装包以SYSTEM权限执行代码。工具:`msfvenom`生成MSI。 17. 29. **利用服务账户漏洞** * • 若服务以域用户身份运行且其密码可破解(如Kerberoasting),或服务配置存在路径劫持、未引用路径等漏洞,可提权至服务账户权限。 19. 30. **利用计划任务** * • 查找权限配置不当的计划任务(用户可修改),替换执行文件为恶意程序,等待任务执行。 * * * ### 四、横向移动:在域内主机间穿行 1. 31. **Pass The Hash (PtH)** * • 利用获取的NTLM哈希(无需明文密码)进行SMB/WinRM/RDP等协议认证,访问其他主机。工具:`crackmapexec smb <targets> -u <user> -H <hash>`, `psexec.py -hashes :<hash> <user>@<target>`。 3. 32. **Pass The Ticket (PtT)** * • 将窃取或伪造的Kerberos票据(TGT或TGS)注入当前会话,用于访问相应服务。工具:`Rubeus ptt /ticket:<ticket.kirbi>`, Mimikatz `kerberos::ptt`。 5. 33. **Overpass The Hash / Pass The Key** * • 使用NTLM哈希或AES密钥请求新的Kerberos TGT,将哈希认证升级为票据认证。工具:`Rubeus asktgt /user:<user> /domain:<domain> /aes256:<aes_key> /nowrap`, Mimikatz `kerberos::ekeys` + `kerberos::asktgt`。 7. 34. **WMI远程执行** * • 利用WMI (`Win32_Process`) 在远程主机上创建进程执行命令或载荷。工具:`wmic /node:<target> /user:<user> /password:<pass> process call create “cmd.exe /c …”`, `Invoke-WmiMethod` (PowerShell)。 9. 35. **WinRM远程执行** * • 通过WinRM协议远程执行PowerShell命令或脚本。工具:`Enter-PSSession -ComputerName <target> -Credential <cred>`, `Invoke-Command -ComputerName <target> -ScriptBlock { … } -Credential <cred>`。 11. 36. **SMB共享与远程命令执行** * • 使用`psexec`, `smbexec`等工具通过SMB协议上传服务并在远程主机执行命令。 * • 直接访问远程SMB共享(`\\<target>\C$`)读写文件(需足够权限)。 13. 37. **远程桌面协议(RDP)** * • 使用获取的凭证直接通过RDP登录目标主机。工具:`xfreerdp /u:<user> /p:<pass> /d:<domain> /v:<target>`。 15. 38. **利用SCM(服务控制管理器)** * • 远程创建或修改服务来执行命令。工具:`sc.exe \\<target> create … binPath= “cmd.exe /c …” start= auto`, `sc.exe \\<target> start <service>`。 17. 39. **DCOM远程执行** * • 利用分布式COM对象(如`MMC20.Application`, `ShellWindows`, `ShellBrowserWindow`)在远程主机上执行代码。工具:`Invoke-DCOM` (PowerSploit)。 19. 40. **利用计划任务远程执行** * • 在远程主机上创建计划任务执行命令。工具:`schtasks /create /s <target> /ru <user> /rp <pass> /tn <name> /tr “cmd.exe /c …” /sc once /st <time>`, `schtasks /run /s <target> /tn <name>`。 * * * ### 五、权限维持:埋下持久后门 1. 41. **黄金票据攻击** * • 获取`krbtgt`账户的NTLM哈希/AES密钥后,可伪造任意用户的TGT(黄金票据),赋予其任意权限(如域管理员),绕过密码更改(直到`krbtgt`密码被重置两次)。工具:Mimikatz `kerberos::golden`, `Rubeus golden /krbtgt:<hash>`。 3. 42. **白银票据攻击** * • 获取服务账户(如`CIFS`, `HOST`, `RPCSS`)的NTLM哈希/AES密钥后,可伪造访问特定服务的TGS(白银票据),无需与KDC交互,直接访问该服务(如文件共享、WMI)。工具:Mimikatz `kerberos::silver`。 5. 43. **Skeleton Key内存补丁** * • 在域控内存中注入恶意代码(需管理员权限),使所有域用户都能使用一个万能密码(如`mimikatz`)进行认证(重启失效)。工具:Mimikatz `misc::skeleton`。 7. 44. **DSRM密码同步与利用** * • 域控的目录服务恢复模式(DSRM)账户密码可被修改(需`ntdsutil`或Mimikatz),攻击者可在域控重启时使用DSRM密码登录进行恢复操作(需控制台访问)。工具:Mimikatz `lsadump::setntlm` / `lsadump::changentlm`。 9. 45. **创建隐藏/高权限账户** * • 创建名称类似默认账户(如`$`结尾)或利用ACL隐藏的新账户,并将其加入特权组(如`Domain Admins`)。注意:`net user`命令默认不显示`$`结尾账户,但ADSI/LDAP查询可见。 11. 46. **ACL后门** * • 在关键域对象(如域本身、AdminSDHolder容器、高权限用户/组)上为攻击者账户添加高权限ACE(如`GenericAll`, `WriteDacl`, `WriteOwner`, `GenericWrite`, `ExtendedRight`),允许其随时修改权限或成员关系。工具:PowerView `Add-DomainObjectAcl`。 13. 47. **GPO后门** * • 创建或修改GPO,设置登录/启动脚本、计划任务或修改本地管理员组,在域内计算机上植入持久化载荷。工具:`SharpGPOAbuse`。 15. 48. **服务后门** * • 在域控或关键服务器上创建恶意服务(名称伪装、路径隐藏),设置为自启动。 17. 49. **计划任务后门** * • 在域控或关键服务器上创建计划任务,定期执行恶意载荷。 19. 50. **WMI事件订阅后门** * • 创建永久WMI事件过滤器(Filter)和消费者(Consumer),在特定系统事件(如登录、特定时间间隔)触发时执行恶意代码。工具:`Set-WmiInstance` (PowerShell), `wmic`。 * * * ### 六、痕迹清理(贯穿始终,谨慎操作) * • **日志清除**:使用`wevtutil cl <logname>`清除本地事件日志(Security, System, Application等)。注意:域环境通常配置日志转发,本地删除无效。 * • **操作审计规避**:尽可能使用合法工具(Living-off-the-Land)和协议(如PSRemoting, WMI)减少特殊日志产生;避免在域控上执行高危操作;使用代理或跳板。 * • **时间擦除**:使用`timestomp`等工具修改文件时间戳(创建、修改、访问时间)以匹配周围环境(难度高,效果有限)。 * • **文件删除**:删除上传的工具、脚本、输出文件。使用`cipher /w:<path>`覆盖已删除文件空间(仅本地)。 * • **还原配置**:移除添加的账户、ACL、GPO修改、服务、计划任务等后门(在完成目标后或撤离前)。**重要:清理操作本身也会产生日志!** * * * ### 威胁检测与防御建议 * • **强化认证**:部署LAPS管理本地管理员密码;强制使用Kerberos;禁用NTLM或启用SMB签名;启用LDAP/S通道绑定与签名;实施多因素认证(MFA),尤其对特权账户。 * • **最小权限原则**:严格限制域管理员等高权限组;限制普通用户本地管理员权限(GPO);审核并收紧ACL(特别是对特权组、域对象、AdminSDHolder);禁用非约束委派;仔细审查约束委派和RBCD配置。 * • **加固服务与协议**:及时更新域控及成员服务器补丁;禁用LLMNR/NBT-NS;保护AD CS服务,审查证书模板权限与配置(禁用易受攻击选项);限制WMI、WinRM、DCOM访问。 * • **深度监控与审计**:集中收集并分析域控、关键服务器、终端的安全日志(重点关注:账户管理、特权使用、登录事件、Kerberos事件、目录服务访问、进程创建、PowerShell脚本块日志);部署SIEM/SOAR;使用Microsoft Defender for Identity(原ATA)或类似高级威胁检测产品。 * • **定期评估**:进行域渗透测试和红蓝对抗演练,验证防御措施有效性;定期审计ACL、SPN、委派配置、特权组成员。 * • **应急响应**:制定完善的AD安全事件应急响应预案,包括:快速隔离受控主机、重置`krbtgt`账户密码(两次)、撤销可疑证书、审查特权组成员和ACL、重建受信域控等。 * * * 域渗透是一个系统性工程,攻击者如同经验丰富的“探险家”,在复杂的域森林中利用各种路径和工具不断探索、突破、扩张。
xiaodi
May 19, 2026, 3:57 p.m.
112
0 comment
Forward
Favorites
Last
Next
Scan the QR Code
Copy link
Scan the QR code to share.
Copy link
share
link
type
password
Update password
Validity period
Markdown file
Word document
PDF document
PDF document (print)