跨域攻击分析和防御(上)
字数 1663 2025-08-19 12:42:40
跨域攻击分析与防御(上)教学文档
一、跨域攻击概述
1.1 跨域攻击的定义
跨域攻击是指在渗透测试过程中,当获得某个子公司或部门域控制器权限后,为了获取整个组织机构全部权限或寻找不在当前域中的资料,需要继续攻击其他部门或域的域控制器,最终控制根域控制器的过程。
1.2 跨域攻击的背景
- 大型公司或跨国企业通常拥有自己的内网
- 跨国公司各子公司一般建立域林进行资源共享
- 根据职能划分部门,逻辑上以主域和子域进行管理
- 物理层使用防火墙划分不同区域
二、常见的跨域渗透方法
2.1 常规Web渗透方法
- 利用内网Web应用漏洞跨域获取权限
- 内网Web应用相比公网更脆弱:
- 多为内部办公或测试使用
- 安全性重视程度较低
- 常见弱口令或补丁未及时修复
2.2 利用已知域Hash进行攻击
- PTH(Pass-the-Hash)攻击
- PTT(Pass-the-Ticket)攻击
- 前提条件:
- 域控制器本地管理员密码相同
- 域间网络未被隔离
- 常见场景:
- 不同域管理员为同一批人员
- 用户名相同,密码相同或相近
2.3 利用域信任关系攻击(重点)
三、域信任关系详解
3.1 域信任的作用
- 解决多域环境中跨域资源共享问题
- 域环境只接受来自受信任域的凭证
- 默认情况下,域内用户只能访问本域资源
- 域信任机制允许其他域用户验证身份后访问本域资源
3.2 域信任的DNS依赖
- 利用DNS服务器定位不同子域的域控制器
- 如果两个域控制器无法互相找到,则无法通过域信任共享资源
3.3 域信任类型
3.3.1 按方向分类
-
单向信任:
- 两个域之间单向信任路径
- 一个方向上的信任流,另一个方向上的访问流
- 受信任域用户可访问信任域资源,反之不行
- 示例:A域信任B域 → B域用户可访问A域资源
-
双向信任:
- 两个单向信任的组合
- 两个方向上的信任流和访问流
- 可双向传递身份验证请求
- Active Directory林中所有域信任默认是双向可传递信任
3.3.2 按范围分类
-
内部信任:
- 同一林中域之间的信任关系
- 可传递信任
- 示例:BA域信任CA域,CA域信任DA域 → BA域也信任DA域
-
外部信任:
- 不同林中域的信任关系
- 不可传递
- 林信任可以是传递或非传递的,取决于林间信任类型
3.4 域信任历史演变
- 早期域信任:仅限于两个域之间,单向且不可传递
- Windows Server 2003后:变为双向且可传递
- 管理权限:只有Domain Admins组成员可管理域信任关系
四、获取域信息的技术
4.1 关键用户组
- Enterprise Admins组:
- 仅出现在林的根域中
- 成员具有对目录林中所有域的完全控制权
- 默认是林中所有域控制器上Administrators的成员
4.2 使用lg.exe工具
lg.exe是一款用C++编写的命令行工具,用于管理本地用户组和域本地用户组。
4.2.1 基本命令
-
查看当前域内电脑权限:
lg.exe lab\. -
查看其他域内电脑权限(如pentest域的DC机器):
lg.exe pentest\DC -
枚举本域用户组:
lg.exe lab\. -lu -
枚举远程机器本地组用户(检查信任关系):
lg.exe \\dc- 无信任关系时会显示相应提示
- 有信任关系时会显示用户组信息
-
获取远程系统全部用户SID:
lg.exe \\dc -lu -sidsout -
获取特定组所有成员SID:
lg.exe \\dc -lu -sidsout \groupname
4.2.2 命令输出解读
- 无信任关系时:显示"没有信任关系"或类似提示
- 有信任关系时:显示详细的用户组和权限信息
五、防御建议
-
域信任管理:
- 严格控制Domain Admins组成员
- 定期审计域信任关系
- 避免不必要的域信任关系
-
密码管理:
- 不同域控制器使用不同本地管理员密码
- 避免管理员账户在不同域中使用相同密码
-
网络隔离:
- 确保不同域间有适当的网络隔离措施
- 限制域控制器之间的直接通信
-
监控与检测:
- 监控lg.exe等工具的使用
- 检测异常的域信息查询行为
-
内网应用安全:
- 内网Web应用应与公网应用同等重视
- 定期进行内网渗透测试
- 及时修复漏洞和更新补丁
(注:本文档为"跨域攻击分析与防御"上篇,主要涵盖跨域攻击基本概念、域信任关系和信息收集技术,下篇将深入讲解具体的跨域攻击技术和防御措施)