Halino/Wazuh-qBittorrent

GitHub: Halino/Wazuh-qBittorrent

该项目为 Wazuh 提供 qBittorrent WebUI 认证日志的自定义解码器与检测规则,使 SIEM 能够监控登录成功、登录失败和暴力破解事件。

Stars: 0 | Forks: 0

# 用于 Wazuh 的 qBittorrent WebUI 认证解析器 **解码器**和**规则**,使 Wazuh 能够直接从 qBittorrent 自身的日志文件中提取并分析 **qBittorrent** WebUI / WebAPI 的**认证**事件(登录成功、登录失败、暴力破解)。 ## 包含内容 | 文件 | 用途 | |------|--------| | `wazuh/decoders/qbittorrent_decoders.xml` | 解析 `WebAPI login success` / `WebAPI login failure` 行 | | `wazuh/rules/qbittorrent_rules.xml` | 登录成功、登录失败、暴力破解 | | `wazuh/ossec-qbittorrent.conf.snippet` | `localfile` 配置示例 | | `tests/sample_logs.txt` | 用于 `wazuh-logtest` 的示例行 | ## 日志格式 qBittorrent 会向其日志文件中写入纯文本行。此规则集解析的两种认证消息如下所示: ``` (N) 2026-07-09T12:00:00 - WebAPI login success. IP: 203.0.113.10 (W) 2026-07-09T12:00:00 - WebAPI login failure. Reason: IP has been banned, IP: 203.0.113.10, username: admin ``` 失败行还可能在原因和 IP 之间包含一个 `attempt count: N,` 字段(`... Reason: incorrect credentials, attempt count: 1, IP: ...`);解码器会处理这两种格式。 提取的字段:`srcip`(成功);`qbt_reason`、`srcip`、`dstuser`(失败)。 这些解码器基于**内容匹配**(它们依赖于 prematch 子字符串,没有 `program_name` 父级),因此一条原始的 qBittorrent 日志行在**没有** syslog `Mon DD HH:MM:SS host` 头部的情况下也能被解码。 ## 规则 | 规则 ID | 级别 | 检测内容 | MITRE | |---------|-------|---------|-------| | 110500 | 3 | WebUI 登录成功 | — | | 110501 | 6 | WebUI 登录失败 | T1078 | | 110502 | 10 | 暴力破解(120 秒内同一 IP 失败 5 次) | T1110 | 规则 ID 使用了专门的 **110500-110502** 区间,以避免与其他规则集发生冲突。 ## 日志在哪里?(请先阅读此部分) 最常见的错误是将 Wazuh 指向了**错误(过期)**的日志文件,导致永远无法触发告警。 qBittorrent 的日志位于其配置/日志目录中,确切路径**因平台和 Docker 镜像而异**。在流行的 **LinuxServer / hotio `qbittorrent` 风格 Docker 镜像**中,实际路径由 `qBittorrent.conf` 中的 `FileLogger\Path` 控制,文件通常最终位于 **DATA 卷**下——例如 `.../qBittorrent/data/logs/qbittorrent.log`——而**不是**你可能预期的配置目录中。 在进行任何配置之前,请**确认实际生效的路径**: 1. 检查 `qBittorrent.conf` 中的 `FileLogger\Path`(这是权威设置)。 2. 检查文件的 **mtime** ——触发一次 WebUI 登录/注销,并验证你找到的文件确实更新了。一个永远不变的文件就是过期的那个。 常见真实路径(请在*你自己的*安装环境中验证): ``` Docker (LinuxServer / hotio): /config/qBittorrent/data/logs/qbittorrent.log Linux (native, per-user): ~/.local/share/qBittorrent/logs/qbittorrent.log Windows: %LOCALAPPDATA%\qBittorrent\logs\qbittorrent.log ``` 确保已启用文件日志记录:**Tools > Options > Behavior > Log file**。 ## 部署 ``` sudo cp wazuh/decoders/qbittorrent_decoders.xml /var/ossec/etc/decoders/ sudo cp wazuh/rules/qbittorrent_rules.xml /var/ossec/etc/rules/ sudo systemctl restart wazuh-manager ``` 然后让 Wazuh **agent**(在 qBittorrent 主机上,或者挂载了容器卷)使用 `log_format syslog` 通过 `` 读取**已确认**的日志路径。请参阅 `wazuh/ossec-qbittorrent.conf.snippet`: ``` syslog /path/to/qBittorrent/data/logs/qbittorrent.log ``` ## 测试 ``` /var/ossec/bin/wazuh-logtest ``` 粘贴例如以下内容: ``` (W) 2026-07-09T12:00:00 - WebAPI login failure. Reason: IP has been banned, IP: 203.0.113.10, username: admin ``` 预期结果:解码器为 `qbittorrent`,规则 **110501**(authentication_failed,T1078)。 在 120 秒内(同一 IP)粘贴 5 次或以上,以触发 **110502**(暴力破解,T1110)。 有关完整集合,请参阅 `tests/sample_logs.txt`。 ## 兼容性 - Wazuh 4.x(使用 `pcre2`)。 - qBittorrent 4.x / 5.x,需启用 WebUI 和文件日志记录。适用于原生安装和 Docker 镜像(LinuxServer、hotio 等)。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:qBittorrent, Wazuh, 免杀技术, 日志解析, 暴力破解检测, 红队行动, 规则配置, 证书伪造, 请求拦截