跨域攻击分析和防御(上)
字数 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 基本命令

  1. 查看当前域内电脑权限:

    lg.exe lab\.
    
  2. 查看其他域内电脑权限(如pentest域的DC机器):

    lg.exe pentest\DC
    
  3. 枚举本域用户组:

    lg.exe lab\. -lu
    
  4. 枚举远程机器本地组用户(检查信任关系):

    lg.exe \\dc
    
    • 无信任关系时会显示相应提示
    • 有信任关系时会显示用户组信息
  5. 获取远程系统全部用户SID:

    lg.exe \\dc -lu -sidsout
    
  6. 获取特定组所有成员SID:

    lg.exe \\dc -lu -sidsout \groupname
    

4.2.2 命令输出解读

  • 无信任关系时:显示"没有信任关系"或类似提示
  • 有信任关系时:显示详细的用户组和权限信息

五、防御建议

  1. 域信任管理

    • 严格控制Domain Admins组成员
    • 定期审计域信任关系
    • 避免不必要的域信任关系
  2. 密码管理

    • 不同域控制器使用不同本地管理员密码
    • 避免管理员账户在不同域中使用相同密码
  3. 网络隔离

    • 确保不同域间有适当的网络隔离措施
    • 限制域控制器之间的直接通信
  4. 监控与检测

    • 监控lg.exe等工具的使用
    • 检测异常的域信息查询行为
  5. 内网应用安全

    • 内网Web应用应与公网应用同等重视
    • 定期进行内网渗透测试
    • 及时修复漏洞和更新补丁

(注:本文档为"跨域攻击分析与防御"上篇,主要涵盖跨域攻击基本概念、域信任关系和信息收集技术,下篇将深入讲解具体的跨域攻击技术和防御措施)

跨域攻击分析与防御(上)教学文档 一、跨域攻击概述 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 基本命令 查看当前域内电脑权限: 查看其他域内电脑权限(如pentest域的DC机器): 枚举本域用户组: 枚举远程机器本地组用户(检查信任关系): 无信任关系时会显示相应提示 有信任关系时会显示用户组信息 获取远程系统全部用户SID: 获取特定组所有成员SID: 4.2.2 命令输出解读 无信任关系时:显示"没有信任关系"或类似提示 有信任关系时:显示详细的用户组和权限信息 五、防御建议 域信任管理 : 严格控制Domain Admins组成员 定期审计域信任关系 避免不必要的域信任关系 密码管理 : 不同域控制器使用不同本地管理员密码 避免管理员账户在不同域中使用相同密码 网络隔离 : 确保不同域间有适当的网络隔离措施 限制域控制器之间的直接通信 监控与检测 : 监控lg.exe等工具的使用 检测异常的域信息查询行为 内网应用安全 : 内网Web应用应与公网应用同等重视 定期进行内网渗透测试 及时修复漏洞和更新补丁 (注:本文档为"跨域攻击分析与防御"上篇,主要涵盖跨域攻击基本概念、域信任关系和信息收集技术,下篇将深入讲解具体的跨域攻击技术和防御措施)