JimmyZghendy/wazuh-log-generator

GitHub: JimmyZghendy/wazuh-log-generator

为 Wazuh SIEM 平台生成包含多种攻击场景的模拟日志,用于验证和测试检测规则的触发效果。

Stars: 0 | Forks: 0

# Wazuh 日志生成器 为测试 Wazuh 检测规则生成真实的示例日志,涵盖六种日志源。每个生成器都嵌入了经过校准的**特定攻击场景**,旨在触发默认的 Wazuh 规则集——包括单事件规则和频率/关联规则。 ## 快速开始 ``` python3 generate_logs.py --all # all sources, ~40 events each python3 generate_logs.py --source ad # one source only python3 generate_logs.py --source web --count 100 ``` 输出将写入 `./output/`: | 文件 | 来源 | Wazuh decoder | |-------------------------|-----------------------|---------------------| | `active_directory.xml` | Windows AD events | `windows_eventchannel` | | `mssql_audit.log` | MSSQL ERRORLOG | `mssql_log` | | `mysql.log` | MySQL error + general | `mysql_log` | | `paloalto.csv` | PAN-OS syslog | `paloalto` | | `web_access.log` | Apache combined | `web-accesslog` | | `auth.log` | Linux auth (sshd/sudo)| `sshd`, `sudo`, `pam` | ## 如何将其输入到 Wazuh 最简单的方法:将每个文件复制到 agent 监控的路径中,例如 ``` # /var/ossec/etc/ossec.conf (在 agent 上) apache /var/log/wazuh-test/web_access.log syslog /var/log/wazuh-test/auth.log syslog /var/log/wazuh-test/mssql_audit.log syslog /var/log/wazuh-test/mysql.log syslog /var/log/wazuh-test/paloalto.csv ``` 对于 Windows XML 文件,您可以通过 manager 上的 `wazuh-logtest` 传递单个事件,或者通过 PowerShell 将它们发送到 agent 的事件通道。 ### 在 manager 上测试单个事件 ``` # 选择单行并将其 pipe sed -n '5p' output/auth.log | /var/ossec/bin/wazuh-logtest # 对于 Apache 日志,您必须声明 format: echo '' | /var/ossec/bin/wazuh-logtest # (或使用 -U "rule_id:agent_id:user") ``` ## 嵌入的攻击场景 → Wazuh 规则 每个生成器都至少嵌入了一种旨在触发*特定*规则链的攻击模式。下面提到的确切规则 ID 引用了 Wazuh 的默认规则集 (v4.x)。 ### `active_directory.xml` | 场景 | Event IDs | Wazuh 规则 (默认) | |-----------------------|-------------------|-----------------------------| | 正常登录 | 4624 | 60106 (info) | | **暴力破解爆发** | 10× 4625(来自同一外部 IP) | 60122 → 60204 (frequency) | | 账户锁定 | 4740 | 60123 | | 创建新用户 | 4720 | 60103 | | 添加到管理员组 | 4732 | 60112 | | **AS-REP roasting 尝试** | 4768 PreAuth=0, rc4_hmac | custom / 92651 | | **Kerberoasting** | 4769 rc4_hmac on SPN | custom / 92652 | | 特殊权限 | 4672 | 60106 | ### `auth.log` (Linux) | 场景 | 行 | Wazuh 规则 | |-------------------------|-------|---------------------------| | **SSH 暴力破解** | 20 条 Failed password + Invalid user(来自同一 IP) | 5710 → 5712 (frequency) | | 暴力破解后的系统沦陷 | 1 条 Accepted password(来自同一攻击者 IP) | 5715 (correlated) | | Root 登录被拒绝 | 3 | 5404 | | Sudo 命令 | 8 | 5402 | | **Sudo 失败** | 3 | 5401 | | PAM 身份验证失败 | 4 | 5503 | | **添加用户(系统沦陷后)** | 1 | 5902 | ### `mssql_audit.log` | 场景 | 行 | Wazuh hook | |--------------------------------|-------|-----------------------------| | **针对 `sa` 的暴力破解** | 15 条 Login failed for 'sa' | mssql_log decoder, custom freq rule | | 登录失败(无此用户) | 2 | sql_log auth-failure | | **执行 xp_cmdshell** | 3 | high-risk: command exec via DB | | **授予 sysadmin 角色** | 1 | privilege escalation | | 针对系统 sql_logins 执行 UNION SELECT | 1 | SQLi indicator | ### `mysql.log` | 场景 | 行 | Wazuh 规则族 | |-----------------------------------|-------|-------------------------| | **针对 root 的 Access denied 爆发** | 12 | mysql brute-force chain | | **GRANT ALL ... WITH GRANT OPTION** | 1 | privilege escalation | | **CREATE USER backdoor_*** | 1 | suspicious account creation | | **DROP DATABASE production** | 1 | destructive DDL | | UNION SELECT / SLEEP() / LOAD_FILE | 4 | SQLi behind app | ### `paloalto.csv` | 场景 | Subtype | Wazuh 规则 | |-----------------------|----------|------------------------------| | 正常允许的流量 | TRAFFIC | 63100 (info) | | **端口扫描** | TRAFFIC `deny` × 25(来自同一 IP,不同目标端口) | 63103 → 63152 (frequency) | | **严重威胁 (THREAT critical)** | THREAT (vulnerability/spyware) | 63111 (critical severity) | | Log4Shell / ZeroLogon / Cobalt Strike 特征 | THREAT | 63111 | | **拦截恶意 URL** | THREAT url, block-url, malware/c2/phishing | 63115 | ### `web_access.log` | 场景 | 模式 | Wazuh 规则 | |-----------------------|--------------------------------------|-----------------| | **SQL 注入** | `' OR '1'='1`, `UNION SELECT`, `SLEEP(5)` | 31103, 31106 | | **XSS** | `