内网后渗透攻击--跨域攻击
用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。
内网后渗透攻击学习,我们从最基本的信息收集开始,然后是权限提升,横向移动,权限维持,以及域控制器安全,到现在最后的跨域攻击,我们学习完了内网渗流程中每一个环节,也讲述了在每一个环节中所涉及的工具以及如何使用,这一篇是内网后渗透攻击的最后一篇,在涉及理论知识学习之后,我们就需要进行实战演习。想要看全部流程的,可以去看我的专栏,涉及内网后渗透攻击的流程内网渗透_jieyu1119的博客-CSDN博客,还有涉及工具使用的专栏内网工具_jieyu1119的博客-CSDN博客。接下来我们正式开始学习跨域攻击,跨域攻击的前提是得有域控制器的权限,内网渗透的流程是一步步环环相扣的,不可能一上来就是横向移动或者权限维持,只有在获得域控制器的前提下才能够进行跨域攻击。
一、常见的跨域攻击方式
常规的渗透方式(利用Web漏洞跨域获取权限);利用已知域散列值进行哈希传递攻击或票据传递攻击(比如域控制器本地管理员密码可能相同);利用域信任关系进行跨域攻击。
二、域信任关系简介
前两种方式这里不再介绍,这里就介绍第三种的攻击方式,首先介绍什么是域信任关系
Windows Active Directory(AD)环境中,域信任关系是不同域(或林)之间建立的一种安全关联,用于实现跨域资源访问、身份验证和授权,是企业内网多域环境协同工作的核心机制。
1、核心概念
- 域(Domain):AD 中最小的管理单元,包含用户、计算机、组等对象,由域控制器(DC)统一管理。
- 林(Forest):由一个或多个信任的域组成,共享同一套 AD 架构和全局编录,林的根域是林的首个域。
- 信任关系:两个域(或林)之间的 “信任约定”—— 当域 A 信任域 B 时,域 A 会认可域 B 中用户的身份验证结果,允许域 B 的用户访问域 A 中的资源(需权限配置)。
2、信任的核心要素
-
信任方向
- 单向信任:域 A 信任域 B(A → B),但域 B 不信任域 A。此时,域 B 的用户可访问域 A 的资源,反之不行。
- 双向信任:域 A 信任域 B,同时域 B 信任域 A(A ↔ B),双方用户可互相访问对方资源(受权限限制)。
(注意:信任是 “单向” 的逻辑关系,双向信任本质是两个方向相反的单向信任组合。)
-
可传递性
指信任关系是否能 “传递” 给其他域,是区分信任类型的关键:- 可传递信任:若域 A 信任域 B,且域 B 信任域 C,则域 A 自动信任域 C(如父子域信任、林信任)。
- 不可传递信任:信任关系仅局限于两个域之间,无法传递给第三方(如外部信任)。
3、常见信任类型
-
父子域信任
- 场景:同一林中,父域与子域之间(如
corp.com
与eu.corp.com
)。 - 特性:默认双向、可传递,由 AD 自动创建(新建子域时自动建立),用于实现林内跨域资源共享。
- 场景:同一林中,父域与子域之间(如
-
树根信任
- 场景:同一林中,不同子域树的根域之间(如
corp.com
与asia.corp.com
,二者均为子域树的根)。 - 特性:默认双向、可传递,由 AD 自动创建,确保林内所有域通过根域间接信任。
- 场景:同一林中,不同子域树的根域之间(如
-
外部信任
- 场景:不同林的域之间(非父子 / 树根关系),或同林内需要限制信任范围时(如
corp.com
与partner.com
)。 - 特性:单向或双向、不可传递,需手动创建,用于隔离不同组织或限制信任扩散。
- 场景:不同林的域之间(非父子 / 树根关系),或同林内需要限制信任范围时(如
-
林信任
- 场景:两个独立林的根域之间(如
corp.com
林与acme.com
林)。 - 特性:双向、可传递,需手动创建,允许两个林内的所有域通过根域信任关系实现跨林访问(比外部信任更高效,适合大型组织合并场景)。
- 场景:两个独立林的根域之间(如
-
快捷信任
- 场景:同一林内两个非直接信任的域之间(如
eu.corp.com
与asia.corp.com
),为优化跨域访问速度。 - 特性:单向或双向、可传递,手动创建,减少跨域验证的路径(无需通过根域中转)。
- 场景:同一林内两个非直接信任的域之间(如
4、信任关系的作用
- 跨域身份验证:用户在域 B 登录后,访问域 A 的资源时,域 A 通过信任关系认可域 B 的身份验证结果,无需重复登录(支持单点登录)。
- 资源共享:通过信任,管理员可在域 A 中为域 B 的用户 / 组分配权限(如允许
B\user1
访问域 A 的文件服务器)。 - 组织协同:大型企业多部门、分公司的域环境,或企业合并 / 合作时,通过信任实现跨组织 IT 资源互通。
三、利用域信任关系的跨域攻击
在域环境中,跨域攻击的核心逻辑是滥用域信任关系的 “可传递性” 和 “方向”,从已控制的域(源域)横向移动到被源域信任的目标域(或通过信任链间接信任的域)。攻击的关键是利用信任关系中身份验证的漏洞,获取目标域的访问权限。
1、攻击前提
- 攻击者已控制源域中的某个实体(如域管理员权限、高权限服务账户、或获取了关键账户哈希 / 票据);
- 源域与目标域存在信任关系(如父子域信任、林信任等),且信任方向允许源域访问目标域(或可通过传递性间接访问);
- 信任关系未被严格限制(如未启用 SID 筛选、权限配置不当等)。
2、核心原理:信任关系中的身份验证逻辑
跨域访问时,用户 / 服务的身份验证需通过信任链中的 KDC(域控制器)交互:
- 源域用户请求访问目标域资源时,源域 KDC 会生成 “跨域票据”(TGT 或 ST),并由源域的信任账户(如
目标域$
)或 KRBTGT 账户签名; - 目标域 KDC 会验证票据的签名是否来自 “被信任的源域”,若验证通过则认可身份并授权访问。
攻击者的目标是伪造或滥用这一票据生成过程,让目标域认可来自源域的恶意身份。
3、常见跨域攻击技术
1. 黄金票据(Golden Ticket)攻击
原理:利用源域的KRBTGT
账户哈希,伪造目标域的 TGT(票据授予票据),直接获取目标域的访问权限。
KRBTGT
是域内负责票据签名的关键账户,其哈希可用于伪造该域签发的任何票据。由于信任关系中,目标域会信任源域 KDC 签发的票据(前提是信任方向正确),因此伪造的票据会被目标域认可。
适用场景:
- 源域与目标域存在可传递信任(如父子域、林信任),且攻击者已获取源域的
KRBTGT
哈希(通常需要源域管理员权限)。
攻击步骤:
- 在源域中通过
Mimikatz
等工具获取KRBTGT
账户的 NTLM 哈希或 AES 密钥; - 构造黄金票据,指定目标域的名称、域 SID、伪造的高权限用户(如
Enterprise Admins
组成员); - 使用票据通过
Kerberos
认证访问目标域资源(如 DC 的 CIFS 服务、AD 数据库等)。
2. 白银票据(Silver Ticket)攻击
原理:针对目标域的特定服务(如文件共享CIFS
、HTTP 服务),利用服务账户的哈希伪造访问该服务的 ST(服务票据),无需KRBTGT
参与。
适用场景:
- 跨域访问目标域的特定服务(无需控制整个域);
- 攻击者已获取目标域中某服务账户(如文件服务器的
svc_files
)的哈希。
攻击步骤:
- 确定目标域中需访问的服务(如
DC01.corp.com
的CIFS
服务); - 获取该服务账户的 NTLM 哈希或 AES 密钥(可通过源域的权限渗透获取,或利用信任关系中的信息泄露);
- 用
Mimikatz
生成针对该服务的白银票据,指定服务 SPN(如cifs/DC01.corp.com
); - 使用票据访问目标服务(如读取
DC01
上的共享文件)。
3. 权限委派滥用(Delegation Abuse)
原理:利用域中的 “权限委派” 配置(允许服务临时获取用户身份访问其他资源),通过跨域委派实现权限提升。
- 非约束委派:服务可获取用户的 TGT(票据授予票据),若该服务位于源域,而用户是目标域的高权限用户(如目标域管理员),攻击者控制服务后可提取用户 TGT,直接访问目标域;
- 约束委派(含 RBCD):通过配置 “资源基于约束委派”(RBCD),攻击者可让源域的机器账户被允许委派到目标域的服务,进而以目标域服务身份访问资源。
适用场景:
- 源域中存在配置了跨域委派的服务 / 机器账户;
- 目标域用户曾访问过源域的委派服务(非约束委派场景)。
攻击步骤(非约束委派示例):
- 发现源域中配置了非约束委派的服务(如
WebServer
); - 诱导目标域的高权限用户(如
corp\admin
)访问该服务(如访问WebServer
的网页); - 服务会缓存用户的 TGT,攻击者通过
Mimikatz
从服务内存中提取corp\admin
的 TGT; - 使用该 TGT 访问目标域
corp.com
的资源(如 DC 的 AD 管理工具)。
4. 信任账户滥用
原理:域间信任会自动创建 “信任账户”(如子域$
在父域中存在,林A$
在林 B 中存在),这类账户具有跨域认证的特殊权限。若获取信任账户的哈希,可直接用于跨域 Pass-the-Hash(PtH)攻击。
适用场景:
- 信任账户密码未定期轮换(默认复杂但长期不变);
- 攻击者通过权限提升获取了源域中信任账户的哈希(如通过 DC 的内存 dump)。
攻击步骤:
- 在源域 DC 中获取信任账户(如
eu.corp.com$
)的 NTLM 哈希; - 使用
Impacket
的psexec
或wmiexec
工具,通过 PtH 直接登录目标域(如corp.com
)的 DC 或其他资源; - 利用信任账户的权限在目标域执行命令(信任账户通常对目标域有有限但关键的权限,如同步数据)。
5. SID 筛选绕过(SID Filtering Bypass)
原理:为防止权限提升,林信任或外部信任默认启用 “SID 筛选”(SID Filtering),会剥离票据中来自源域的高权限 SID(如Enterprise Admins
)。若目标域禁用了 SID 筛选(如管理员手动关闭),攻击者可在票据中注入目标域的高权限组 SID,获取权限。
适用场景:
- 目标域对源域的信任关系中,SID 筛选被禁用(通过
netdom trust
命令可查看:netdom trust 源域 /domain:目标域 /quarantine
,返回 “否” 则禁用)。
攻击步骤:
- 在源域生成包含目标域高权限组(如
corp\Domain Admins
)SID 的票据; - 由于 SID 筛选被禁用,目标域会认可该 SID,攻击者因此获得对应权限;
- 访问目标域的敏感资源(如 DC 的
C$
共享)。
4、典型攻击场景
以 “子域→父域” 为例(父子域默认双向可传递信任):
- 攻击者通过漏洞(如 MS17-010)控制子域
eu.corp.com
的普通用户,逐步提权至子域管理员; - 利用子域管理员权限,通过
Mimikatz
从子域 DC 中 dump 出KRBTGT
账户哈希和域 SID; - 生成父域
corp.com
的黄金票据(指定父域名称、伪造用户为Enterprise Admins
成员); - 使用黄金票据通过
psexec
登录父域 DC,实现跨域控制。
五、防御启示
跨域攻击的防御需针对信任关系的薄弱点:
- 严格限制信任范围:非必要不建立可传递信任,外部合作优先使用不可传递的外部信任;
- 启用 SID 筛选:所有林信任 / 外部信任强制启用 SID 筛选(默认启用,禁止手动关闭);
- 保护关键账户:定期轮换
KRBTGT
、信任账户的密码,限制其权限; - 监控跨域活动:审计异常的 Kerberos 票据请求(如频繁的跨域 TGT 申请)、非约束委派的服务调用。