enzoromeiro/ad-prevencao-de-bruteforce

GitHub: enzoromeiro/ad-prevencao-de-bruteforce

通过 Hydra 模拟 SMB 暴力破解攻击并使用 GPO 账户锁定策略进行防御的 Active Directory 安全实验项目。

Stars: 0 | Forks: 0

# 🏴‍☠️ Active Directory - 防范针对身份的 Brute Force 攻击 ### 本项目重点介绍如何通过 GPO 应用安全策略,以保护域身份免受 Brute Force(暴力破解)攻击。 🦾 什么是 Brute Force 攻击? Brute Force(暴力破解)是攻击者用来通过试错法发现有效凭证(用户名和密码)或目录的一种技术。此类攻击可能发生在多种身份验证向量中,例如 Web 表单、SSH、RDP、SMB 等。 攻击者通常使用自动化工具,并结合 wordlists(包含数百万个泄露或常见密码及用户名的字典)进行攻击。 🛡 什么是 GPO? GPO(Group Policy Objects,组策略对象)是 Active Directory 中应用于计算机和用户的一系列规则。它们允许对操作系统进行标准化、配置和强化——例如禁用 USB 端口、限制对控制面板的访问、设置默认桌面背景、应用在多次身份验证失败后锁定账户的策略等。 ### 🏙 1. Active Directory 结构 为了进行本实验,我使用了 `cyberlab.local` 域,并利用组织单位(OUs)创建了一个标准化的组织结构: ADlab Corp(企业根 OU):在域内组织企业结构。 ![AD 结构](https://static.pigsec.cn/wp-content/uploads/repos/cas/ed/ed0eea88c03ef49d5899ec0a60d76bbc35e9fa7c0d9723aa9dcebeb2abac039f.jpg) **Computadores:** 分为 Servers(服务器)和 Workstations(工作站)两个子 OU。 **Departamentos:** 分为 Financeiro 和 TI 两个子 OU,包含各部门的用户账户。 **Grupo_Segurança:** 根据权限和部门对用户进行分组,以便于管理共享文件和目录的权限。 为了本项目,我在 Workstations OU 中添加了一台 Windows 7 机器,并创建了置于 TI 部门下的用户 admin.ronaldo。 ![AD 中的机器](https://static.pigsec.cn/wp-content/uploads/repos/cas/38/389918804a2c316704afb18c90cb3df907b50442735288f64e0a28b1a9800cbc.jpg) ![AD 用户](https://static.pigsec.cn/wp-content/uploads/repos/cas/d2/d2126fea8602278301481faa9e29f34f85b775e39df80a07b5bb5867ec2a0ee3.jpg) ### ⚙️ 2. 创建和配置 Account Lockout GPO 要创建 GPO,我导航至: Server Manager > Tools > Group Policy Management ![GPO 路径](https://static.pigsec.cn/wp-content/uploads/repos/cas/b4/b42bf1e9ed1ab1a1b329b8b5aec5a302d359df029946bae204162e167e52776c.jpg) 我右键点击 Default Domain Policy(以便该规则能应用于整个 `cyberlab.local` 域),并选择 **Edit...** 以打开编辑器。 ![GPO Account Lockout 1](https://static.pigsec.cn/wp-content/uploads/repos/cas/7f/7fa02308e0b2dc4a0c9aab800afa9954ba3435d7df4a53907747b7c7b19266ff.jpg) ![GPO Account Lockout 2](https://static.pigsec.cn/wp-content/uploads/repos/cas/1d/1d68a06bb58af53a2d6e7b0190dda378cdb4708aa879e1db407e6ba93c907da7.jpg) 为什么要在 Computer Configuration 中进行配置? 在 Active Directory 中,GPO 分为 Computer Configuration(在计算机启动时应用于操作系统的规则)和 User Configuration(在登录后加载的用户配置文件规则)。 由于 Account Lockout 策略需要在身份验证完成之前就在操作系统中生效,因此该策略强制要求在 **Computer Configuration** 中进行配置。 **我导航至以下路径:** Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy ![GPO Account Lockout 3](https://static.pigsec.cn/wp-content/uploads/repos/cas/2c/2c080b7e4503ddd6bc3bd123327f5c919eca4065e525944fe6c9a22c12719c30.jpg) 锁定策略参数: **Account lockout threshold(账户锁定阈值):** 设定在锁定前允许的错误尝试次数(建议:3 到 5 次)。 **Account lockout duration(账户锁定时间):** 账户被锁定后保持停用状态的时间(例如:15 到 30 分钟,或设为 0 以要求管理员手动解锁)。 **Reset account lockout counter after(在此时间后重置账户锁定计数器):** 重置错误尝试计数器所需的无失败时间(例如:10 分钟)。 **Allow Administrator account lockout(允许锁定管理员账户):** 如果启用,管理员账户也可以被锁定。 为了应用这些配置,我右键点击所需的规则,选择 **Properties**,勾选 **Define this policy setting**,并输入了相应的值。 ![GPO 编辑](https://static.pigsec.cn/wp-content/uploads/repos/cas/9e/9eeba46c46ccadeabfe442d24f825f55222648d293b9b2c6fd29952c3edb4f29.jpg) ![启用并设置 GPO 的值](https://static.pigsec.cn/wp-content/uploads/repos/cas/bb/bbc3c341eb44642023b4ed383254864d9bb259322e8b46f985c1a3e16865fa44.jpg) 最终应用的配置: 在 10 分钟的时间窗口内,经过 5 次错误验证尝试后,该账户将被自动锁定 15 分钟。 ![GPO 最终配置](https://static.pigsec.cn/wp-content/uploads/repos/cas/3a/3aec47256a49c3f1fb1c7ea5222f6c90f36c910689e06576828878b93dd5bd7f.jpg) 为了强制域内工作站立即更新策略,我在 Windows 终端中执行了: gpupdate /force ![Gpupdate 命令](https://static.pigsec.cn/wp-content/uploads/repos/cas/fa/fab714fa261f96b6b3e126707d3075127b6ee1d189bdb851f72286adb019123b.jpg) ### 🧪 3. 攻击模拟(通过 SMB 进行 Brute Force) 在启用了保护的情况下,我在 Kali Linux 上使用 Hydra 工具模拟了针对 SMB 协议(端口 445)的暴力破解攻击,该协议用于本地网络中的文件共享。 **执行命令:** sudo hydra -l admin.ronaldo -m cyberlab -P /usr/share/wordlists/rockyou.txt 192.168.1.10 smb -t 1 -V ### 参数解析: -l admin.ronaldo:指定目标用户名 -m cyberlab:SMB 模块的参数,用于指定 Active Directory 域(CYBERLAB),确保登录尝试通过 Domain Controller 进行身份验证,而不是作为计算机的本地用户 -P /caminho/wordlist:设定攻击中使用的密码列表 192.168.1.10:目标 IP 地址(Windows 7 工作站) smb:被攻击的服务/协议 -t 1:设定每次只进行 1 个并发连接 -V:详细模式,在终端实时显示尝试过程。 ![SMB Brute Force 攻击](https://static.pigsec.cn/wp-content/uploads/repos/cas/f4/f49123eb9a584679a80bac5f53266a09c7d56af4f539c4fc271d5994d177acaf.jpg) ### ✅ 4. 结果 如终端所示,Hydra 的攻击被成功拦截(未找到有效密码(0 valid passwords found))。在超过 5 次错误尝试后,GPO 生效,Domain Controller 锁定了该账户。 在 Domain Controller 的 **Event Viewer** 中,生成了 **ID 4740** 的安全事件(用户账户已被锁定(A user account was locked out)),记录了 CYBERLAB\admin.ronaldo 账户的锁定情况,并在 **Caller Computer Name** 字段中通过 IP \ \192.168.1.67 标识出了发起攻击的机器。 ![Event Viewer 4740/4625](https://static.pigsec.cn/wp-content/uploads/repos/cas/27/27e80556c22568a0db0a4ed64adf356ec2d4107062ab7557831a244b0f3ff82b.jpg) 此后,任何使用该凭证进行身份验证的尝试(无论是通过 SMB、RDP、SSH 还是标准的 Windows 登录)都会被拒绝,并提示该账户已被临时锁定。 ![账户已锁定](https://static.pigsec.cn/wp-content/uploads/repos/cas/94/94d9d05ae2013c8d39d51b979b18de985f6d0b6fe506fa01974cdbd3141de8e5.jpg)
标签:Active Directory, Plaso, Terraform 安全, Windows运维, 子域名枚举, 安全实验, 系统安全, 防御策略