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):在域内组织企业结构。

**Computadores:** 分为 Servers(服务器)和 Workstations(工作站)两个子 OU。
**Departamentos:** 分为 Financeiro 和 TI 两个子 OU,包含各部门的用户账户。
**Grupo_Segurança:** 根据权限和部门对用户进行分组,以便于管理共享文件和目录的权限。
为了本项目,我在 Workstations OU 中添加了一台 Windows 7 机器,并创建了置于 TI 部门下的用户 admin.ronaldo。


### ⚙️ 2. 创建和配置 Account Lockout GPO
要创建 GPO,我导航至:
Server Manager > Tools > Group Policy Management

我右键点击 Default Domain Policy(以便该规则能应用于整个 `cyberlab.local` 域),并选择 **Edit...** 以打开编辑器。


为什么要在 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

锁定策略参数:
**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**,并输入了相应的值。


最终应用的配置:
在 10 分钟的时间窗口内,经过 5 次错误验证尝试后,该账户将被自动锁定 15 分钟。

为了强制域内工作站立即更新策略,我在 Windows 终端中执行了:
gpupdate /force

### 🧪 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:详细模式,在终端实时显示尝试过程。

### ✅ 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 标识出了发起攻击的机器。

此后,任何使用该凭证进行身份验证的尝试(无论是通过 SMB、RDP、SSH 还是标准的 Windows 登录)都会被拒绝,并提示该账户已被临时锁定。

标签:Active Directory, Plaso, Terraform 安全, Windows运维, 子域名枚举, 安全实验, 系统安全, 防御策略