r648r/Wazuh-Deploiment
GitHub: r648r/Wazuh-Deploiment
一键式 PowerShell 脚本,将 Windows 端点快速部署为集成 Wazuh、Sysmon、Sigma、YARA 等多组件的检测就绪主机。
Stars: 1 | Forks: 0
# Windows 端点检测部署 — Wazuh + Sysmon + Sigma + YARA
**English** · [Français](README.fr.md)
一键式 PowerShell 部署脚本,可将 Windows 端点变更为
**具备检测能力的主机**:安装 **Wazuh** agent、**Sysmon**,计划执行
**Chainsaw + Sigma** EVTX 搜捕,集成 **YARA** 和 Sysinternals(`autoruns`、
`sigcheck`、`logonsessions`)作为 Wazuh 的 active-response 命令,并传送
**Atomic Red Team** 脚本以验证检测效果。
## 已部署的检测技术栈
| 组件 | 角色 |
|---|---|
| Wazuh agent | EDR/SIEM 遥测数据 -> Wazuh manager |
| Sysmon | 丰富的进程 / 网络 / 注册表事件日志记录 |
| Sigma + Chainsaw | 针对Sigma规则集计划执行的 EVTX 搜捕 |
| YARA | 按需恶意软件扫描 (active response) |
| Sysinternals | `autoruns`, `sigcheck`, `logonsessions` 采集器 |
| Atomic Red Team | 检测验证 (ART 测试, 勒索软件模拟) |
## 演示
```
PS C:\> .\Deploy-WazuhAgent.ps1 -WAZUH_AGENT_GROUP Workstations `
-WAZUH_AGENT_NAME WIN-CLIENT01 `
-WAZUH_REGISTRATION_SERVER 198.51.100.50
[+] Wazuh agent installed and registered (group: Workstations)
[+] Installing Sysmon ............................. OK
[+] Updating local_internal_options.conf (remote commands enabled)
[+] Downloading & extracting chainsaw.exe ......... OK
[+] Config Sigcheck / Chainsaw / Logonsessions / Autoruns ... OK
[+] Cloning Sigma ruleset -> C:\Program Files\socfortress\sigma
Receiving objects: 100% (115121/115121), 38.87 MiB | 16.3 MiB/s, done.
[+] Finished — endpoint is detection-ready
```
YARA active-response 扫描示例:
```
PS C:\> .\yara.ps1
MalwareType FilePath
----------- --------
Mimikatz_Memory C:\Users\Public\Downloads\mk.exe
Generic_Ransomware C:\Users\Public\Downloads\invoice.scr
```
## 参数
部署脚本接受三个必选参数:
- `WAZUH_AGENT_GROUP` — 分配给该 agent 的 Wazuh 组。
- `WAZUH_AGENT_NAME` — 仪表盘上显示的 agent 名称。
- `WAZUH_REGISTRATION_SERVER` — Wazuh manager 的 IP 地址。
## 主要功能
### CustomLog
处理日志输出,区分错误消息与普通提示信息。
- `message` (字符串) — 要打印的消息。
- `isAnError` (布尔值) — 该消息是否为错误(可选,默认为 `false`)。
```
CustomLog -message "Installation succeeded."
CustomLog -message "Installation failed." -isAnError $true
```
### InstallWazuh
安装 Wazuh agent:检查服务是否已存在,若不存在则下载并安装,若未运行则启动它。
### InstallScripts
运行安装额外组件(如 Sysmon)的脚本,通过 `StartPowershellAsAdmin` 以管理员权限执行每一个脚本,并捕获所有错误。
### UpdateLocalInternalOption
更新 `local_internal_options.conf` 以启用远程命令
(`wazuh_command.remote_commands=1`)。
### InitializeAndDownloadChainsaw
重置目标目录,然后下载并解压 Chainsaw
(合并了 `InitChainsawSetup` + `DownloadChainsaw`)。
### PullOrCloneSigma
克隆 Sigma 规则仓库,如果已存在则拉取最新代码。
### 移动文件
将所需的配置文件复制到目标位置,并校验每一次复制。
### 启动 Wazuh
启动 `WazuhSvc` 服务。
### 以管理员身份启动 PowerShell
以管理员权限运行 PowerShell 命令。
- `Arguments` (字符串) — 传递给 PowerShell 命令的参数。
### 卸载 WazuhSysinternal
移除 Sysinternals 工具(`C:\Program Files\sysinternals`)并卸载
Wazuh agent。
## 常量
- `$CHAINSAW_SOURCE_FOLDER` — Chainsaw 源目录。
- `$ADMIN_DOCUMENT` — 管理员的 Documents 目录。
- `$SOCFORTRESS_DESTINATION_FOLDER` — SOCFortress 目标目录。
- `$SIGMA_RULES_GIT_URL` — Sigma 规则 Git 仓库 URL。
- `$TEMP_PATH` — 临时目录。
- `$IS_ADMIN` — 脚本是否以管理员权限运行。
- `$SCRIPT_TO_EXEC` — 待执行脚本的哈希表。
- `$WAZUH_INSTALLER_PATH` — Wazuh agent 安装程序路径。
- `$WAZUH_INSTALL_COMMAND` — Wazuh agent 安装命令。
## 主界面
`Main` 函数统筹整个部署过程。它会检查是否具有管理员权限
(如有需要则提权重新启动),然后按顺序运行:
1. `InstallWazuh`
2. `InstallScripts`
3. `UpdateLocalInternalOption`
4. `InitializeAndDownloadChainsaw`
5. `MoveFiles`
6. `PullOrCloneSigma`
标签:AI合规, IPv6, Libemu, PowerShell, Wazuh, 漏洞靶场, 特权提升, 终端安全, 自动化部署, 防御检测