gungardaa/wazuh-custom-rules
GitHub: gungardaa/wazuh-custom-rules
这是一个基于 Wazuh 和 Sysmon 的安全监控实现,通过自定义规则检测 PowerShell 执行、暴力破解及防火墙篡改等可疑活动。
Stars: 0 | Forks: 0
# Wazuh 自定义规则实现
## 描述
在本任务中,我们安装并配置了 **Wazuh** 作为监控和安全检测系统。Wazuh 用于从设备收集日志,并在中心服务器进行分析。通过该系统,可以通过规则检测设备上的可疑活动,并在仪表板上生成警报。
在本实现中使用了两个不同的系统。**Wazuh Manager** 运行在 Linux 虚拟机上,而 **Wazuh Agent** 运行在 Windows 操作系统上。在 Agent 成功连接到 Manager 后,我们创建了一些 **自定义规则** 来检测被认为可疑的特定活动。
本任务中创建的自定义规则主要关注攻击中常见的几种常见活动,例如运行 PowerShell、重复登录失败、关闭防火墙、使用双重扩展名文件以及 USB 上的 AutoRun 活动。
# 架构与部署
在本实现中,系统由两个主要组件组成:**Wazuh Manager** 和 **Wazuh Agent**。
- **宿主 Laptop**:Windows 11(作为 Wazuh Agent)
- **虚拟机**:Ubuntu 22.04(作为 Wazuh Manager)
Manager 负责接收来自 Agent 的日志,然后使用可用规则分析这些日志。如果某条日志与特定规则匹配,Wazuh 将生成可在仪表板上看到的 **alert(警报)**。
### 部署架构图
# 安装 Wazuh Manager
Wazuh Manager 安装在 Ubuntu 22.04 虚拟机上,使用 Wazuh 官方安装脚本。
### 下载安装脚本
```
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
```
### 运行安装
```
sudo bash wazuh-install.sh -a
```
参数 `-a` 用于执行完整安装,即安装以下组件:
- Wazuh Manager
- Wazuh Indexer
- Wazuh Dashboard
安装完成后,可以通过 Wazuh Dashboard IP 访问仪表板:
```
https://192.168.56.129
```
然后,输入安装过程完成后获得的用户名和密码。
### 检查 Manager 状态
```
sudo systemctl status wazuh-manager
```
# 在 Windows 上安装 Wazuh Agent
Wazuh Agent 安装在 Windows 11 上,使用 PowerShell。
### 下载并安装 Agent
```
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.5-1.msi -OutFile ${env.tmp}\wazuh-agent; msiexec.exe /i ${env.tmp}\wazuh-agent /q WAZUH_MANAGER='192.168.56.129' WAZUH_AGENT_NAME='windows-agent' WAZUH_REGISTRATION_SERVER='192.168.56.129'
```
使用的参数包括:
- WAZUH_MANAGER:Wazuh Manager 的 IP 地址
- WAZUH_AGENT_NAME:Agent 名称
- WAZUH_REGISTRATION_SERVER:用于 Agent 注册的服务器
### 启动 Agent 服务
```
NET START WazuhSvc
```
### 检查服务状态
```
Get-Service WazuhSvc
```
如果成功,Agent 将出现在 Wazuh 仪表板上。
# 集成 Sysmon
为了使 Windows 日志更加完整,使用了 Sysmon (System Monitor)。
### 下载 Sysmon 配置
```
wget https://wazuh.com/resources/blog/emulation-of-attack-techniques-and-detection-with-wazuh/sysmonconfig.xml -OutFile sysmonconfig.xml
```
### 安装 Sysmon
```
.\Sysmon64.exe -accepteula -i .\sysmonconfig.xml
```
### 将 Sysmon 日志添加到 Wazuh
在 `ossec.conf` 文件中添加以下配置:
```
Microsoft-Windows-Sysmon/Operational
eventchannel
```
然后,在配置完成后重启 Agent:
```
Restart-Service WazuhSvc
```
# 自定义规则实现
自定义规则添加在 Wazuh Manager 的 `/var/ossec/etc/rules/local_rules.xml` 文件中。
```
92213
powershell.exe
PowerShell process executed.
windows,powershell_execution,
60122
Multiple failed login attempts detected (possible brute force).
windows,authentication_failed,
sysmon_event_1
netsh advfirewall set allprofiles state off
Possible attempt to disable Windows Firewall using netsh.
windows,firewall_disable,
sysmon_event_1
\.pdf\.exe|\.docx\.exe|\.jpg\.exe
Suspicious process with double extension detected.
windows,masquerading,
sysmon_event_1
autorun.inf
Possible USB AutoRun activity detected.
windows,usb_activity,
```
## 自定义规则说明
### 1. PowerShell 执行检测
该规则检测在 Windows 系统上运行 PowerShell 的情况。PowerShell 常用于各种攻击技术,例如运行恶意脚本。可以通过在 Windows 上打开 PowerShell 应用程序来测试此规则。
### 2. 多次登录失败检测
该规则检测是否在 60 秒内发生 3 次登录失败。这种情况常见于尝试反复猜测密码的暴力破解攻击。可以通过使用错误密码登录 Windows 3 次来测试此规则。
### 3. 防火墙禁用检测
该规则检测使用 netsh 命令关闭 Windows Firewall 的尝试。防火墙是保护系统免受未授权网络访问的重要安全组件。可以通过在命令提示符中运行以下命令来测试此规则:
```
netsh advfirewall set allprofiles state off
```
### 4. 双重扩展名文件检测
该规则检测具有双重扩展名的文件,例如 `file.pdf.exe`、`file.docx.exe`、`file.jpg.exe` 等。此技术可被恶意软件用来伪装恶意文件,使其看起来像普通文件。
### 5. USB AutoRun 检测
该规则检测 `autorun.inf` 文件的存在,该文件常被 USB 恶意软件用于在连接 USB 设备时自动运行程序。
# 学习资源
- https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html
- https://nihatasadovv.medium.com/writing-custom-rules-in-wazuh-36a018860fce
- https://youtu.be/nSOqU1iX5oQ
- https://youtu.be/r4q0flqUyIg
- https://youtu.be/MNHz7cYG63w
# 安装 Wazuh Manager
Wazuh Manager 安装在 Ubuntu 22.04 虚拟机上,使用 Wazuh 官方安装脚本。
### 下载安装脚本
```
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
```
### 运行安装
```
sudo bash wazuh-install.sh -a
```
参数 `-a` 用于执行完整安装,即安装以下组件:
- Wazuh Manager
- Wazuh Indexer
- Wazuh Dashboard
安装完成后,可以通过 Wazuh Dashboard IP 访问仪表板:
```
https://192.168.56.129
```
然后,输入安装过程完成后获得的用户名和密码。
### 检查 Manager 状态
```
sudo systemctl status wazuh-manager
```
# 在 Windows 上安装 Wazuh Agent
Wazuh Agent 安装在 Windows 11 上,使用 PowerShell。
### 下载并安装 Agent
```
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.7.5-1.msi -OutFile ${env.tmp}\wazuh-agent; msiexec.exe /i ${env.tmp}\wazuh-agent /q WAZUH_MANAGER='192.168.56.129' WAZUH_AGENT_NAME='windows-agent' WAZUH_REGISTRATION_SERVER='192.168.56.129'
```
使用的参数包括:
- WAZUH_MANAGER:Wazuh Manager 的 IP 地址
- WAZUH_AGENT_NAME:Agent 名称
- WAZUH_REGISTRATION_SERVER:用于 Agent 注册的服务器
### 启动 Agent 服务
```
NET START WazuhSvc
```
### 检查服务状态
```
Get-Service WazuhSvc
```
如果成功,Agent 将出现在 Wazuh 仪表板上。
# 集成 Sysmon
为了使 Windows 日志更加完整,使用了 Sysmon (System Monitor)。
### 下载 Sysmon 配置
```
wget https://wazuh.com/resources/blog/emulation-of-attack-techniques-and-detection-with-wazuh/sysmonconfig.xml -OutFile sysmonconfig.xml
```
### 安装 Sysmon
```
.\Sysmon64.exe -accepteula -i .\sysmonconfig.xml
```
### 将 Sysmon 日志添加到 Wazuh
在 `ossec.conf` 文件中添加以下配置:
```
### 2. 多次登录失败检测
该规则检测是否在 60 秒内发生 3 次登录失败。这种情况常见于尝试反复猜测密码的暴力破解攻击。可以通过使用错误密码登录 Windows 3 次来测试此规则。
### 3. 防火墙禁用检测
该规则检测使用 netsh 命令关闭 Windows Firewall 的尝试。防火墙是保护系统免受未授权网络访问的重要安全组件。可以通过在命令提示符中运行以下命令来测试此规则:
```
netsh advfirewall set allprofiles state off
```
### 4. 双重扩展名文件检测
该规则检测具有双重扩展名的文件,例如 `file.pdf.exe`、`file.docx.exe`、`file.jpg.exe` 等。此技术可被恶意软件用来伪装恶意文件,使其看起来像普通文件。
### 5. USB AutoRun 检测
该规则检测 `autorun.inf` 文件的存在,该文件常被 USB 恶意软件用于在连接 USB 设备时自动运行程序。
# 学习资源
- https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html
- https://nihatasadovv.medium.com/writing-custom-rules-in-wazuh-36a018860fce
- https://youtu.be/nSOqU1iX5oQ
- https://youtu.be/r4q0flqUyIg
- https://youtu.be/MNHz7cYG63w标签:AI合规, AMSI绕过, AutoRun, EDR, OpenCanary, osquery, PowerShell检测, USB监控, Wazuh, Wazuh Agent, Wazuh Manager, 威胁检测, 安全告警, 生成式AI安全, 登录失败, 端点检测与响应, 系统加固, 红队行动, 网络安全, 脆弱性评估, 脱壳工具, 自定义规则, 虚拟机, 运维安全, 防火墙, 隐私保护