当前位置: 首页 > news >正文

如何防御安全标识符 (SID) 历史记录注入

安全标识符 (SID) 历史记录注入是一种针对 Windows Active Directory 环境的复杂网络攻击手段。此攻击利用了 SID 历史记录属性,该属性旨在在用户从一个域迁移到另一个域时维护用户的访问权限。通过向此属性注入恶意 SID 值,攻击者可以提升权限并获得对 Active Directory 环境中资源的未授权访问权限。

什么是 SID 历史记录注入?

SID 历史记录注入是指未经授权修改 Active Directory 中已入侵用户帐户的 SID 历史记录属性。当用户或组迁移到新域时,此属性通常会存储旧域中的先前 SID。其目的是维护用户或组对资源的访问权限。

攻击者可以通过将与高权限组(例如域管理员)对应的 SID 插入属性中来利用此功能。然后,攻击者可以使用该帐户提升权限、创建后门或窃取数据。

SID 历史记录注入被认为是一种复杂的攻击媒介,因为它:

  • 需要深入了解 Active Directory 和提升权限
  • 绕过寻求直接更改群组成员资格的标准安全措施
  • 利用对 Active Directory 和 Windows 身份验证机制的深入理解

SID 历史记录注入如何工作?

某些因素会使环境特别容易受到 SID 历史记录注入的攻击。这些因素包括:

  • 遗留系统:遗留系统(尤其是经历过多次域迁移的系统)可能保留了过时的安全协议和配置,这些协议和配置与现代安全最佳实践不符。这些系统通常残留有 SID 历史记录属性,这些属性可能会在安全审核期间被忽略。
  • 被忽略的 SID:在迁移过程中,SID 历史记录属性可能会累积。不再相关或已停用的旧 SID 可能无法正确清除,从而为攻击者留下后门。
  • 复杂的迁移:在迁移涉及合并多个域的复杂环境中,SID 历史记录可能成为众多遗留 SID 的存储库,从而增加攻击面。
  • 权限配置错误:在 Active Directory 中正确配置权限至关重要。如果权限配置错误,允许非管理员帐户写入 SID 历史记录属性,则可能造成灾难性的后果。
  • 过于宽泛的访问控制:授予广泛的权限可能导致非管理用户能够直接或通过组成员身份修改敏感属性。
  • 委托管理:在大型组织中,委托管理任务十分常见。如果监管不力,可能会导致用户拥有过多的权限,包括修改 SID 历史记录。
  • 缺乏警报系统:许多组织没有配置警报系统来通知 Active Directory 中关键属性的变化。
  • 审计策略不足: Active Directory 可能没有配置默认审计设置来跟踪 SID 历史记录属性的更改,尤其是在组织尚未将 SID 历史记录注入视为潜在风险的情况下。

SID 历史记录注入攻击涉及多个步骤,使攻击者能够增强对受感染环境的控制。

步骤 1. 初步入侵

攻击者通常首先在网络中站稳脚跟,然后发起 SID 历史记录注入攻击。这种攻击可以通过多种方法实现:

  • 网络钓鱼:发送看似合法的精心制作的电子邮件,诱骗用户提供凭证
  • 利用已知漏洞:针对未打补丁的系统或使用零日漏洞
  • 社会工程学:操纵个人破坏标准安全协议

在一个案例中,攻击者瞄准了一家金融机构。恶意攻击者诱骗一名员工打开一份利用公司文档阅读器软件漏洞的文档。该漏洞导致恶意代码执行并建立后门。

步骤2:枚举AD环境

一旦进入系统,攻击者就会枚举 Active Directory 环境。此步骤可能涉及使用:

  • LDAP 查询检索有关用户帐户及其相关权限的信息
  • PowerShell 脚本可自动收集有关 Active Directory 结构的数据
  • Active Directory 侦察工具(例如 BloodHound),可以说明 Active Directory 中的权限关系

通过此枚举,攻击者可以发现具有提升的(但监控不力的)权限的帐户。

步骤3:SID历史记录修改

获得正确的访问权限后,攻击者可以继续执行以下操作:

  • 确定目标帐户:这可能是一个不经常使用或监控的帐户,称为孤立帐户。
  • 修改 SID 历史记录属性:攻击者使用 Mimikatz 等工具,将 SID 注入目标帐户的 SID 历史记录中。此 SID 与高权限组(例如域管理员)的 SID 匹配。

一个值得注意的案例涉及一家科技公司。攻击者将企业管理员组的 SID 添加到通常不需要如此高权限的服务帐户中。

步骤4:权限提升

修改 SID History 属性后,攻击者现在可以:

  • 访问资源:目标帐户(以及攻击者)现在可以访问仅允许匹配的高权限组访问的资源。
  • 创建后门:攻击者可以建立额外的账户或修改现有账户以确保环境中的持久访问。

在某政府机构遭受攻击期间,恶意攻击者曾利用此方法提升权限,并创建后门账户以实现持续访问。攻击者随后利用这些账户在较长时间内窃取敏感数据。

SID 历史记录注射有哪些风险?

SID History 注入的风险包括:

  • 未经授权的访问:攻击者访问网络的敏感区域,导致数据泄露。
  • 权限提升:攻击者无需直接修改组成员身份即可提升权限,以避免被发现。
  • 持久性:即使在密码更改或帐户禁用后,攻击者仍可以使用注入的 SID 来维持访问权限。
  • 横向移动: SID 历史记录注入有助于网络内的横向移动,从而导致更广泛的危害。

网络攻击者在多阶段入侵中使用了这种方法,通过 SID 历史记录注入加剧了最初的入侵,并造成了严重的数据泄露和系统损坏。

如何检测 SID 历史记录注入攻击

要检测 SID 历史记录注入:

  • 审查审计日志:定期审查 Active Directory 审计日志,以发现对 SID 历史记录属性的意外修改。
  • 配置 SIEM 警报:配置安全信息和事件管理 (SIEM) 系统,以便在 SID 历史记录修改时发出警报。如果没有充分的监控,SID 历史记录属性的更改可能会被忽视。
  • 定期审核 Active Directory 攻击面:使用 Active Directory 安全工具扫描 SID 历史记录属性与已知迁移不符的帐户。此类工具还可以检测到 SIEM 系统可能遗漏的入侵指标。

如何减轻 SID 历史记录注入攻击?

通过了解并解决易受攻击的环节,组织可以显著降低 SID 历史记录注入的风险。缓解策略包括:

  • 升级旧系统:升级或退役旧系统,并确保在域迁移期间适当管理和清除所有 SID 历史记录属性。
  • 审查权限:验证只有受信任的帐户才有权写入 SID 历史记录属性。
  • 实施最小特权:定期审核权限并验证仅向用户授予必要的权利。
  • 使用 PAM 解决方案:实施特权访问管理 (PAM) 解决方案来限制和控制特权访问。
  • 增强监控:实施高级 Active Directory 监控解决方案,对 SID 历史记录等关键属性的变化发出警报。
  • 修补和更新:保持所有系统得到修补和更新,以防止初始危害向量。

此外,Active Directory 管理员应采取以下步骤:

  • 启用审核:审核 Active Directory 中对 SID 历史记录的更改。理想情况下,启用此类更改的自动回滚功能,直到验证其合法性为止。
  • 实施最小特权:将最小特权原则应用于所有 Active Directory 帐户。
  • 教育员工:培训 IT 员工识别 SID 历史记录注射的迹象并做出适当的反应。
  • 进行定期审查:对高权限组进行定期访问审查。

防范 SID 历史记录注入

SID 历史记录注入是一种隐秘攻击,可能导致严重的安全漏洞。这种攻击的隐蔽性和复杂性使其格外危险,因为如果没有针对 SID 历史记录属性进行专门的控制和监控,它通常无法被检测到。现实生活中的事件凸显了采取强有力的安全措施和持续警惕的必要性。

组织应建立健全的安全实践,包括定期监控、最低权限访问和用户教育,以防范此类攻击。
组织还必须保持警惕,积极主动地保护其 Active Directory 环境,以抵御 SID 历史记录注入和其他新兴威胁。

http://www.xdnf.cn/news/1377649.html

相关文章:

  • 【Linux实时内核机制】ww_rt_mutex 的contending_lock异常问题
  • wireshark解析FLV插件分享
  • Unity Shader unity文档学习笔记(二十一):几种草体的实现方式(透明度剔除,GPU Instaning, 曲面细分+几何着色器实现)
  • HTML5超详细学习内容
  • GPIO推挽和开漏的名称由来和本质含义
  • FactoryBean接口作用
  • 使用Stone 3D快速制作第一人称视角在线小游戏
  • 【PyTorch】基于YOLO的多目标检测项目(二)
  • 基于Cursor AI IDE的Vue3留言板系统实战:从零搭建到智能优化全流程
  • 《金融对账系统雪崩隐患的深度复盘与架构重生》
  • 从CTFshow-pwn入门-pwn40理解64位栈溢出不都需要堆栈平衡
  • 致远OA新闻公告讨论调查信息查询SQL
  • Linux操作系统——TCP服务端并发模型
  • 域名、ip、DSN、URL
  • 虚拟机逃逸攻防演练
  • 装饰器模式(C++python)
  • 如何提升素材检索效率?语义搜索在 DAM 中的应用效果全解
  • 广东省省考备考(第八十八天8.27)——判断推理(听课后强化训练)
  • 基于NXP iMXRT600音频算法开发方法
  • 【ros-humble】【虚拟机】网络配置
  • 【leetcode】105. 从前序与中序遍历序列构造二叉树
  • 机器视觉学习-day05-图片颜色识别及颜色替换
  • 指针 (六):sizeof和strlen细节强化之“做题篇”
  • 深度学习:常用的损失函数的使用
  • Python随机选择完全指南:从基础到高级工程实践
  • 数据库:缓冲池和磁盘I/O
  • FPGA入门学习路径
  • 【Python 提高】GUI 界面 Tkinter 库布局管理器 Pack 方法开发指南
  • 树的常见算法及Java实现
  • 【yocto】Yocto Project 核心:深入了解.inc文件