
1. 域渗透基础概念解析在网络安全领域域渗透测试是评估企业Active Directory环境安全性的重要手段。作为渗透测试人员我经常遇到刚入行的同事直接上手工具而忽略基础概念理解的情况。这就像不熟悉建筑结构就直接开始拆墙不仅效率低下还容易触发警报。让我们先系统梳理域环境的核心组件。Active DirectoryAD是微软开发的目录服务它像一本企业网络的大型通讯录存储着所有用户、计算机、策略和权限信息。根据微软官方文档AD采用多主复制模型这意味着域控制器DC之间会相互同步数据。理解这一点对后续的横向移动至关重要——当你攻陷一台DC理论上可以影响整个域。1.1 域控制器核心机制域控制器是AD域的大脑主要运行以下关键服务Kerberos认证采用票据TGT、ST进行身份验证NTLM认证旧式挑战-响应协议LDAP服务389端口提供目录查询DNS服务通常集成在DC上SYSVOL共享存储组策略和登录脚本我曾在一个企业内网测试中发现管理员将SYSVOL共享权限配置为Everyone可读导致所有组策略首选项中的密码被轻易获取。这印证了微软早在2014年就警告过的GPP漏洞但至今仍有许多企业未修复。1.2 常见域对象类型对象类型作用描述渗透测试中的价值用户账户域内人员身份凭证密码爆破、AS-REP Roasting目标计算机账户加入域的机器标识RBCD攻击、资源委派利用组权限集合单元特权组识别(如Domain Admins)组织单元(OU)管理分区容器组策略继承分析组策略对象(GPO)集中配置管理系统设置查找密码策略、登录脚本漏洞2. 域认证协议深度剖析2.1 Kerberos认证流程标准Kerberos认证包含三个关键阶段AS-REQ/AS-REP客户端向KDC请求TGT票证授予票证TGS-REQ/TGS-REP使用TGT获取服务票据(ST)AP-REQ/AP-REP向目标服务出示ST进行验证这个过程中可能存在的攻击点包括黄金票据攻击获取krbtgt账户哈希后伪造TGT白银票据攻击获取服务账户哈希后伪造STKerberoasting暴力破解服务账户密码# Kerberoasting攻击示例(需PowerShell) Get-ADServiceAccount -Filter * | Select-Object SamAccountName Request-SPNTicket -SPN MSSQLSvc/sql01.domain.com -Format Hashcat2.2 NTLM认证与哈希传递尽管微软推荐使用Kerberos但NTLM仍在许多旧系统中使用。其核心缺陷在于采用静态哈希比较NT哈希不依赖KDC允许本地验证容易受到中间人攻击哈希传递(Pass-the-Hash)之所以有效正是因为NTLM协议只验证哈希值而非原始密码。在测试中我常用以下工具进行利用# 使用Mimikatz进行PtH sekurlsa::pth /user:Administrator /domain:corp.com /ntlm:e2b475c11da2a0748290d87aa966c327 /run:cmd.exe # CrackMapExec批量测试 cme smb 192.168.1.0/24 -u Administrator -H e2b475c11da2a0748290d87aa966c327 -x whoami重要提示在授权测试中哈希传递可能触发SIEM告警。建议先通过低权限账户测试防御检测能力。3. 域内信息收集方法论3.1 基础信息枚举初始立足点获取后应当系统性地收集以下信息域拓扑结构使用nltest /domain_trusts用户列表net user /domain计算机列表Get-ADComputer -Filter *组关系Get-ADGroupMember Domain Admins我曾开发过一个自动化收集脚本通过LDAP查询获取关键信息$searcher [ADSISearcher](objectClassuser) $searcher.PageSize 200 $searcher.FindAll() | ForEach-Object { $_.Properties | Select-Object samaccountname, userprincipalname }3.2 特权路径分析通过BloodHound工具可视化攻击路径是当前最高效的方法。其核心原理是使用SharpHound收集域关系数据将数据导入Neo4j图数据库通过图形化界面分析特权继承链常见危险路径包括到域管理员的ACL路径比如GenericAll权限非约束委派配置可导致权限提升敏感组的直接成员如Account Operators4. 横向移动技术详解4.1 基于服务的横向移动当获取某台域内主机的权限后可检查以下服务进行扩展SMB服务检查共享文件夹如NETLOGONRDP服务检查是否允许其他域用户登录WinRM服务5985/5986端口是否开放# 检查可用WinRM端点 Test-WSMan -ComputerName DC01 -Authentication Default4.2 票据中继攻击Kerberos约束委派配置不当可能导致中继攻击。攻击者可以将票据中继到特定服务例如诱使用户访问恶意HTTP服务捕获NTLM认证请求中继到目标Exchange服务器防御措施包括启用EPAExtended Protection for Authentication禁用NTLM认证配置服务使用强制加密5. 权限维持技术5.1 黄金票据与白银票据票据类型所需哈希有效期控制检测难度黄金票据krbtgt账户哈希可自定义高需审计TGT白银票据服务账户哈希依赖服务账户密码中需监控ST生成黄金票据的命令示例mimikatz # kerberos::golden /admin:Administrator /domain:corp.com /sid:S-1-5-21-123456789-1234567890-123456789 /krbtgt:aa3bf9e2718e8d1b5e22 /ptt5.2 隐蔽后门技术更隐蔽的权限维持方法包括SID History注入添加特权组SID到普通用户ACL后门在关键对象上添加隐藏权限DCShadow攻击直接修改目录数据库# 添加隐藏ACL后门 $acl Get-Acl AD:\CNAdminSDHolder,CNSystem,DCcorp,DCcom $ace New-Object System.DirectoryServices.ActiveDirectoryAccessRule (CORP\TestUser,GenericAll,Allow) $acl.AddAccessRule($ace) Set-Acl -Path AD:\CNAdminSDHolder,CNSystem,DCcorp,DCcom -AclObject $acl6. 防御规避与检测对抗6.1 日志清除技术常见的日志清除方法包括单条日志删除通过ETW接口操作日志服务停止Stop-Service EventLog内存Patch修改日志记录函数指针但现代EDR通常会检测这些行为更隐蔽的做法是通过合法管理操作掩盖痕迹使用白名单进程进行恶意操作利用时间差进行攻击6.2 对抗AV检测针对杀毒软件的规避技巧模块反射加载不落地执行恶意代码API间接调用通过合法DLL转发调用内存加密运行时解密关键代码段// 示例间接调用WinAPI typedef BOOL (WINAPI* pMessageBox)(HWND, LPCSTR, LPCSTR, UINT); HMODULE hUser32 LoadLibraryA(user32.dll); pMessageBox msgBox (pMessageBox)GetProcAddress(hUser32, MessageBoxA); msgBox(NULL, Legitimate Message, Title, MB_OK);7. 实战案例与经验总结在一次红队评估中我们通过以下路径完成域控接管初始立足钓鱼获取普通域用户凭证信息收集发现某服务器配置了非约束委派权限提升利用SpoolService漏洞获取SYSTEM权限票据捕获等待域管理员登录该服务器横向移动使用捕获的TGT访问域控制器权限维持创建隐藏的GPO后门关键教训非约束委派服务器应视为关键资产保护特权账户不应登录非管理工作站应启用Kerberos AES加密减少票据被盗风险对于防御方我建议重点关注定期审计域内委派配置监控异常Kerberos票据请求实施网络分段限制横向移动