Egyan07/GhostSecure_v2.1

GitHub: Egyan07/GhostSecure_v2.1

基于 Windows 安全事件日志的轻量级 Active Directory 攻击检测服务,实时监控并告警 8 种常见域攻击手法。

Stars: 1 | Forks: 0

# GhostSecure 2.1 **Windows Active Directory 攻击检测器** 作为 Windows 后台服务运行,一旦检测到实时的 AD 攻击(如 Kerberoasting、Pass-the-Hash、DCSync、Golden Ticket 等),会立即向您的团队发出警报。 ## 功能介绍 GhostSecure 实时监控您的 Windows 安全事件日志,一旦发现已知的 Active Directory 攻击模式,立即触发警报。它作为 Windows 服务静默运行 —— 无需窗口,无需交互。当检测到异常时,会立即在管理员屏幕上弹出提示。 ## 检测的攻击类型 | 攻击 | 监控的事件 ID | 描述 | |---|---|---| | **Kerberoasting** | 4769 | 异常的 Kerberos 服务票据请求 —— 攻击者正在离线提取可破解的票据 | | **Pass-the-Hash** | 4624 | NTLM 登录但没有匹配的先前交互式会话 —— 正在使用被盗哈希 | | **DCSync (Mimikatz)** | 4662 | 非 DC 账户调用复制权限 —— 攻击者正在转储所有密码哈希 | | **Golden Ticket** | 4768, 4769 | TGT 票据具有异常的生命周期或加密方式 —— 正在使用伪造的 Kerberos 票据 | | **LDAP 侦察 / BloodHound** | 1644 | LDAP 查询爆发 —— 网络映射工具正在扫描攻击路径 | | **AS-REP Roasting** | 4768 | 账户不需要预认证 —— 攻击者正在抓取可破解的 AS-REP 哈希 | | **Skeleton Key** | 4673 | DC 上的敏感权限使用 —— 允许万能密码登录的恶意软件植入 | | **审计日志被清除** | 1102 | 安全日志被擦除 —— 攻击者正在掩盖踪迹 | ## 特性 - 作为 **Windows 服务**运行 —— 自动启动,重启后依然有效 - **实时检测** —— 持续监控安全事件日志 - 通过 `msg.exe` 向管理员工作站发送**桌面弹窗警报** - **电子邮件警报**(可选 SMTP —— 密码存储在环境变量中,绝不硬编码) - **警报去重** —— 相同攻击仅每 5 分钟触发一次,而不是 100 次 - **状态仪表板** —— `python main.py --gui` 显示实时检测统计 - **可配置的排除项** —— 帐户白名单,用于抑制误报 - **结构化日志**记录到 `C:\SecurityLogs\ad_attack_log.txt` ## 系统要求 - Windows Server 2016+ 或 Windows 10/11(已加入域) - Python 3.10+ - 域管理员权限(用于安装) - 已启用 Windows 高级审核策略日志记录(见下文) - `pywin32`(用于 Windows 服务支持) ## 安装说明 ``` pip install pywin32 ldap3 ``` 1. 将此文件夹复制到域控制器或已加入域的机器 2. 打开 `config.py` 并配置: - `ADMIN_HOSTNAME` —— 警报弹窗应出现的计算机名称 - `KNOWN_DOMAIN_CONTROLLERS` —— 您的 DC 主机名,例如 `["DC01", "DC02"]` - `DOMAIN_NAME` —— 您的域名,例如 `"REDPARROT"` 3. 右键点击 `Install.bat` → **以管理员身份运行** 4. 完成 —— 服务自动启动 **验证运行状态:** ``` sc query GhostSecure2ADDetector ``` 应显示 `STATE: RUNNING`。 ## 启用 Windows 审核日志(必需) GhostSecure 需要 Windows 记录安全事件。没有此设置,它将无法监控任何内容。 1. 在域控制器上打开 **组策略管理** 2. 编辑 **Default Domain Controllers Policy** 3. 导航至:`计算机配置 > 策略 > Windows 设置 > 安全设置 > 高级审核策略配置 > 审核策略` 4. 对以下项目启用 **成功和失败**: - 帐户登录 → 审核 Kerberos 身份验证服务 - 帐户登录 → 审核 Kerberos 服务票据操作 - DS 访问 → 审核目录服务访问 - 登录/注销 → 审核登录 - 特权使用 → 审核敏感特权使用 - 系统 → 审核安全状态更改 5. 运行:`gpupdate /force` ## 电子邮件警报(可选) 1. 在 `config.py` 中设置 `ENABLE_EMAIL_ALERTS = True` 2. 填写您的 SMTP 服务器详细信息 3. 将您的密码存储为系统环境变量 —— **切勿硬编码**: ``` # 以管理员身份运行 PowerShell [System.Environment]::SetEnvironmentVariable( 'GHOSTSECURE_SMTP_PASSWORD', 'YourPasswordHere', 'Machine') ``` 设置变量后重启服务。 ## 仪表板 ``` python main.py --gui ``` 显示实时检测计数、服务状态和最近警报。 ## 项目结构 ``` GhostSecure/ ├── main.py # Entry point — service + CLI + GUI launcher ├── config.py # All settings ← edit this before deploying ├── Install.bat # Installs and starts the Windows service ├── Uninstall.bat # Stops and removes the service ├── build.bat # Packages into standalone exe ├── core/ │ ├── alert_manager.py # Alert dispatch, deduplication, logging │ ├── detector_engine.py # Orchestrates all detectors │ └── event_reader.py # Windows Security Event Log reader ├── detectors/ │ ├── kerberoasting.py │ ├── pass_the_hash.py │ ├── dcsync.py │ ├── golden_ticket.py │ ├── ldap_recon.py │ ├── asrep_roasting.py │ └── skeleton_key.py ├── utils/ │ ├── ad_helpers.py # LDAP helpers (GSSAPI auth) │ └── time_helpers.py └── gui/ └── status_dashboard.py # Live status dashboard ``` ## 卸载 右键点击 `Uninstall.bat` → **以管理员身份运行**。 停止并移除服务。`C:\SecurityLogs\` 中的日志文件将被保留。 ## 更新日志 **v2.1** *(当前版本)* - 修复:SMTP 密码现在从 `GHOSTSECURE_SMTP_PASSWORD` 环境变量读取 —— 绝不硬编码 - 修复:`alerts_triggered` 计数器始终为 0 —— 现已正确跟踪并显示在仪表板中 - 修复:Golden Ticket `_tgt_issuance` 字典非线程安全 —— 已添加 `threading.Lock()` - 修复:Pass-the-Hash 登录跟踪非线程安全 —— 已添加 `threading.Lock()` - 修复:LDAP Windows 认证现在使用 SASL/GSSAPI,而非损坏的 NTLM 空密码绑定 - 修复:GUI 仪表板显示冻结的统计数据 —— DetectorEngine 现在后台线程中运行 - 修复:办公时间内的 Pass-the-Hash 误报 —— 窗口扩展至 8 小时 (28800s) - 修复:事件读取器在每个周期重新处理相同事件 —— 现已跟踪 `EventRecordID` - 修复:审计日志清除没有账户排除项 —— 已添加 `AUDIT_LOG_CLEAR_EXCLUDED_ACCOUNTS` - 修复:LDAP 绑定密码也移至 `GHOSTSECURE_LDAP_PASSWORD` 环境变量 **v2.0** - 初始版本 —— 8 个 AD 攻击检测器,Windows 服务架构 ## 免责声明 GhostSecure 是一个**早期预警系统**,而不是一个完整的安全解决方案。它检测来自 Windows 事件日志的已知攻击模式 —— 它不阻止攻击,也不能替代完整的 EDR/SIEM。警报触发时请务必进行调查和响应。 根据 GDPR/ICO 指南,安全日志应保留至少 12 个月。 ## 许可证 MIT 许可证 —— 可免费使用、修改和分发。 *由 Egyan | Red Parrot Accounting Ltd 构建*
标签:Active Directory监控, AD安全, AS-REP Roasting, DCSync检测, Golden Ticket检测, Kerberoasting检测, LDAP侦察, Pass-the-Hash检测, Python安全工具, Skeleton Key, StruQ, Web报告查看器, Windows安全日志, Windows服务, 事件日志分析, 入侵检测系统, 凭证窃取防护, 域控制器安全, 安全数据湖, 实时攻击检测, 模拟器, 系统加固, 逆向工具, 邮件告警, 防御规避检测