news 2026/4/25 13:28:24

BadBlood权限随机化详解:理解ACL在Active Directory安全中的关键作用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BadBlood权限随机化详解:理解ACL在Active Directory安全中的关键作用

BadBlood权限随机化详解:理解ACL在Active Directory安全中的关键作用

【免费下载链接】BadBloodBadBlood by @davidprowe, Secframe.com, fills a Microsoft Active Directory Domain with a structure and thousands of objects. The output of the tool is a domain similar to a domain in the real world. After BadBlood is ran on a domain, security analysts and engineers can practice using tools to gain an understanding and prescribe to securing Active Directory. Each time this tool runs, it produces different results. The domain, users, groups, computers and permissions are different. Every. Single. Time.项目地址: https://gitcode.com/gh_mirrors/ba/BadBlood

BadBlood是一款由@davidprowe开发的开源工具,能够在Microsoft Active Directory域中填充结构和数千个对象,生成接近真实环境的复杂域环境。每次运行BadBlood都会产生不同的域结构、用户、组、计算机和权限设置,为安全分析师和工程师提供了理想的Active Directory安全实践平台。

为什么Active Directory权限随机化至关重要?

在现实企业环境中,Active Directory (AD)权限配置往往随着时间推移变得复杂且难以管理。权限蔓延、过度授权和配置错误是导致AD环境脆弱的主要原因。BadBlood的权限随机化功能通过模拟这些真实世界的复杂性,帮助安全专业人员:

  • 理解不同权限配置对AD安全性的影响
  • 练习识别和修复权限漏洞
  • 测试安全工具在复杂权限环境中的有效性
  • 培养权限审计和治理的实战技能

BadBlood的核心价值在于其Invoke-BadBlood.ps1脚本,该脚本明确提到"生成用户、组、OU、计算机,然后在随机OU上放置ACL",从而创建一个充满挑战的学习环境。

BadBlood权限随机化的工作原理

BadBlood的权限随机化机制主要通过AD_Permissions_Randomizer/GenerateRandomPermissions.ps1脚本实现。这个强大的脚本采用了多步骤方法来创建复杂的权限结构:

1. 权限集定义

脚本首先定义了多种权限集(FunctionSet),每种权限集包含多个具体权限:

  • 完全控制权限:包括FullControl、FullControlUsers等权限
  • 用户控制权限:如创建用户账户、删除用户账户、重命名用户账户等
  • 计算机控制权限:如创建计算机账户、删除计算机账户、设置SPN等
  • 组控制权限:如创建组、删除组、修改组成员等
  • OU控制权限:如创建OU、删除OU、链接GPO等
  • 打印机控制权限:如创建打印队列、删除打印队列等
  • 复制控制权限:如管理复制拓扑、复制目录更改等
  • 站点和子网控制权限:如创建站点对象、修改子网属性等

2. 随机权限分配

Create-PermissionSet函数通过随机选择机制,为每个对象分配不同的权限组合:

$permINT = 1..100|get-random if($permint -gt 25){#if gt this number, assign random permissions $howmanypermissions = 1..60|get-random $p = 1 do{$randoperm = 0..(($permissions.count)-1)|Get-random $permissions[$randoperm].APPLY = 'TRUE' $p++ }while($P -le $howmanypermissions) }

这段代码确保每次运行都会生成不同的权限组合,模拟现实环境中权限随时间演变的过程。

3. 权限应用目标

权限被随机应用到不同的AD对象和OU上:

  • 用户对象:随机选择5-100个用户账户应用权限
  • 组对象:随机选择5-100个组应用权限
  • 计算机对象:随机选择5-100个计算机账户应用权限
  • OU容器:权限可以应用到特定OU或整个域根,并有3-5%的概率直接应用于域根

ACL在Active Directory安全中的关键作用

访问控制列表(ACL)是Active Directory安全的基石。BadBlood通过模拟真实环境中的ACL配置,帮助安全专业人员理解以下关键概念:

最小权限原则的重要性

BadBlood随机分配权限的方式常常导致"权限蔓延",模拟了现实环境中随着时间推移权限逐渐累积的问题。这为学习如何应用最小权限原则提供了实践机会,帮助安全人员识别过度授权的账户和组。

权限继承与传播

在GenerateRandomPermissions.ps1脚本中,权限通常设置为"Descendents"继承类型:

iex ($permission.FunctionName + " -objgroup " + '$adgroup' + " -objou " + '$OUPicked' + " -inheritanceType `'Descendents`'")

这模拟了现实环境中权限如何通过OU层次结构继承和传播,展示了权限配置错误可能造成的广泛影响。

权限映射与管理

BadBlood使用权限到OU的映射机制:

$PermissionsToOUMapping = @{} $PermissionsToOUMapping.Add('User','ServiceAccounts') $PermissionsToOUMapping.Add('Computer','Devices') $PermissionsToOUMapping.Add('Group','Groups') $PermissionsToOUMapping.Add('OU','OU') $PermissionsToOUMapping.Add('Printer', 'Devices')

这种映射反映了现实环境中权限组织的常见模式,帮助学习者理解如何合理规划权限结构。

使用BadBlood进行Active Directory安全实践

安装与准备

要开始使用BadBlood进行权限安全实践,首先需要克隆仓库:

git clone https://gitcode.com/gh_mirrors/ba/BadBlood

BadBlood包含多个功能模块,其中与权限相关的核心模块包括:

  • AD_Permissions_Randomizer/:权限随机化核心脚本
  • AD_OU_SetACL/:OU权限设置脚本集合
  • BonusContent/Example to Delegate Granular Permissions on A Domain.ps1:权限委派示例

实践建议

  1. 权限审计练习:运行BadBlood后,使用AD审计工具识别过度权限的用户和组
  2. 权限路径分析:追踪权限如何通过OU层次结构传播,识别权限继承链中的弱点
  3. 模拟攻击场景:尝试利用随机分配的权限执行常见的AD攻击路径,如权限提升
  4. 权限清理实践:练习安全地移除不必要的权限,恢复到最小权限状态

总结:通过BadBlood掌握Active Directory权限安全

BadBlood的权限随机化功能为安全专业人员提供了一个独特的学习平台,能够在安全可控的环境中实践Active Directory权限管理和安全防护。通过分析和操作BadBlood生成的复杂权限结构,学习者可以深入理解ACL在AD安全中的关键作用,掌握识别和修复权限漏洞的实用技能。

无论是刚开始学习AD安全的新手,还是希望提升实战能力的安全工程师,BadBlood都是一个不可或缺的工具。它不仅教会我们如何发现权限问题,更重要的是帮助我们理解如何在现实环境中设计和维护安全的权限结构。

通过BadBlood的实践,我们可以将理论知识转化为实际能力,为保护企业Active Directory环境做好充分准备。记住,在AD安全领域,对权限的深入理解和有效管理是防御复杂攻击的关键!

【免费下载链接】BadBloodBadBlood by @davidprowe, Secframe.com, fills a Microsoft Active Directory Domain with a structure and thousands of objects. The output of the tool is a domain similar to a domain in the real world. After BadBlood is ran on a domain, security analysts and engineers can practice using tools to gain an understanding and prescribe to securing Active Directory. Each time this tool runs, it produces different results. The domain, users, groups, computers and permissions are different. Every. Single. Time.项目地址: https://gitcode.com/gh_mirrors/ba/BadBlood

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 13:24:31

Kohya_SS:从零到精通的AI图像生成模型训练指南

Kohya_SS:从零到精通的AI图像生成模型训练指南 【免费下载链接】kohya_ss 项目地址: https://gitcode.com/GitHub_Trending/ko/kohya_ss Kohya_SS是一款基于Gradio构建的图形化界面工具,专门用于训练稳定扩散模型。它支持LoRA训练、Dreambooth微…

作者头像 李华
网站建设 2026/4/25 13:22:23

012、PCIE中断机制:MSI与MSI-X

PCIE中断机制:MSI与MSI-X 最近在调试一块PCIE采集卡时遇到了一个诡异的问题——设备在连续高速传输数据时,系统偶尔会完全卡死几秒钟,然后恢复。用示波器抓中断引脚波形完全正常,但/proc/interrupts里该设备的中断计数增长缓慢。熬…

作者头像 李华
网站建设 2026/4/25 13:12:23

实测 Winhance:清理优化 Windows 系统,提升性能与个性化设置!

Winhance 实测:清理优化 Windows 系统,性能与个性化设置双提升! 万万没想到,Winhance 竟有如此强大的功能。它能帮助清除 Windows 的冗余文件和无用应用,还能显示隐藏设置,以此优化性能和隐私。同时&#x…

作者头像 李华
网站建设 2026/4/25 13:08:31

嵌入式系统-73:RT-Thread-组件:utest框架在持续集成中的实战应用

1. 为什么嵌入式开发需要持续集成测试 第一次接触嵌入式系统的持续集成时,我完全不明白为什么要在资源受限的设备上搞这些"花里胡哨"的东西。直到某次项目交付前夜,一个基础驱动模块的改动导致整个系统崩溃,团队通宵排查问题的惨痛…

作者头像 李华
网站建设 2026/4/25 13:07:19

终极React认证解决方案:redux-auth-wrapper完全指南

终极React认证解决方案:redux-auth-wrapper完全指南 【免费下载链接】redux-auth-wrapper A React Higher Order Component (HOC) for handling Authentication and Authorization with Routing and Redux 项目地址: https://gitcode.com/gh_mirrors/re/redux-aut…

作者头像 李华