malathi-cyber-sketch/Living-off-the-Land-Ransomware-Precursor-Detection-Lab

GitHub: malathi-cyber-sketch/Living-off-the-Land-Ransomware-Precursor-Detection-Lab

一个攻防兼备的 SOC 家庭实验室,模拟勒索软件部署前的完整攻击链并编写自定义 Wazuh 关联规则实现多阶段行为检测。

Stars: 0 | Forks: 0

# Living-off-the-Land 勒索软件前体检测实验 ![Platform](https://img.shields.io/badge/SIEM-Wazuh-1E88E5?style=flat-square) ![OS](https://img.shields.io/badge/Target-Windows%2010-0078D6?style=flat-square&logo=windows) ![Attacker](https://img.shields.io/badge/Attacker-Kali%20Linux-557C94?style=flat-square&logo=kalilinux) ![Status](https://img.shields.io/badge/Status-Completed-success?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-lightgrey?style=flat-square) 这是我搭建的家庭实验室,用于演练一次入侵的攻防两面:从 Kali 攻击 Windows 10 虚拟机,然后转换角色,像 SOC 分析师一样在 Wazuh 中进行调查。攻击模拟了类似勒索软件部署前的活动,包括暴力破解登录、植入持久化、删除卷影副本,我还构建了一个自定义检测规则来捕获整个行为模式,而不仅仅是单一事件。 ## 目录 - [项目简介](#what-this-project-is) - [为什么采用这种构建方式](#why-i-built-it-this-way) - [实验环境配置](#lab-setup) - [使用的工具](#tools-used) - [攻击与调查时间线](#timeline-of-the-attack-and-investigation) - [MITRE ATT&CK 映射](#mitre-attck-mapping) - [自定义检测规则](#the-custom-detection-rule) - [截图文件夹](#screenshot-folders) - [漏洞扫描结果](#vulnerability-scan-results) - [我的发现](#what-i-found) - [我练习的技能](#skills-i-practiced) - [下次我会做出的改变](#what-id-do-differently-next-time) - [仓库结构](#repo-layout) - [关于我](#about-me) ## 项目简介 我配置了两台虚拟机,一台用于发动攻击的 Kali 主机和一台作为目标的 Windows 10 主机,将它们连接到运行在 Docker 中的 Wazuh SIEM,然后执行了一条真实的攻击链:扫描、暴力破解 SMB、使用窃取的凭据登录、探查系统、运行一些 living-off-the-land 二进制文件,最后像勒索软件在加密一切之前的通常做法一样删除卷影副本。 然后我切换到分析师视角,在 Wazuh 中查看日志,看看捕获到了什么、遗漏了什么,并构建了一条规则来弥补这一缺口。 ## 为什么采用这种构建方式 许多初学者的作品集要么展示一个攻击性实验室(比如 HackTheBox 的攻击复盘),要么展示一个防御性实验室(一张 Wazuh 的仪表盘截图),但并没有将两者联系起来。我想要自己生成真实的攻击日志,而不是使用样本数据;并且我想发现并修复一个真实的检测缺口,而不是仅仅展示现成的告警。 默认的 Wazuh 规则可以很好地捕获攻击的各个独立部分,但没有任何规则将它们整合在一起并发出“这看起来像是一次正在进行中的攻击”的告警。因此我自己编写了这个规则。 ## 实验环境配置 ``` Kali Linux (attacker) --SMB/RDP--> Windows 10 Pro (victim, Sysmon installed) | Wazuh agent traffic v Wazuh Manager (Docker, single node) Indexer + Dashboard + custom rules ``` | 组件 | 作用 | |---|---| | Kali Linux | 攻击机,使用 nmap、hydra 以及手动执行命令 | | Windows 10 Pro (VirtualBox) | 目标机,安装了 Sysmon 以实现更好的日志记录 | | Wazuh (Docker 单节点) | 收集日志,运行关联规则,展示告警 | | Sysmon | 让 Wazuh 能够更好地监控进程创建和注册表更改 | ## 使用的工具 - 攻击方:nmap、hydra 以及大量 Windows 原生二进制文件 (mshta、rundll32、certutil、bitsadmin、schtasks、wmic、vssadmin、reg) - 防御方:Wazuh Manager、Indexer、Dashboard - 端点日志记录:Sysmon、Windows Event Viewer - 检测工程:自定义的 Wazuh 规则文件 (local_rules_addition.xml) - 虚拟化:VirtualBox ## 攻击与调查时间线 | 阶段 | 攻击者做了什么 | 检测到什么 / 我是如何调查的 | |---|---|---| | 1. 侦察 | 对目标进行全端口扫描 (`nmap -p-`),发现 SMB、RPC、NetBIOS 处于开放状态 | 记录下暴露的服务,作为可能的入侵入口点 | | 2. 初始访问 | 使用用户名/密码字典配合 hydra 暴力破解 SMB,成功获取 `labuser:Password123!` | Wazuh 记录了在此尝试时间窗口内出现的一大批登录/注销事件 | | 3. 确认访问 | 使用窃取的凭据远程登录 | Wazuh 规则 92657 触发,将 NTLM 登录标记为可能的 pass-the-hash 模式 | | 4. 环境探测 | 运行了 `whoami`、`net user`、`hostname`、`ipconfig`、`systeminfo`、`wmic useraccount get name,sid` | 默认情况下这些命令不会触发任何告警,但它们紧随登录告警之后发生,这对构建时间线非常重要 | | 5. 运行 LOLBins | mshta、rundll32、certutil、bitsadmin、schtasks,所有被滥用的原生 Windows 工具 | 规则 92201 和 92004 捕获到了 PowerShell 派生 shell 并释放脚本的行为 | | 6. 持久化 | 向注册表 Run 键添加了一个 Base64 编码的值,并添加了另一个指向 calc.exe 的值 | 规则 92041 (类 Base64 注册表值) 和 92302 (通过 reg.exe 修改注册表) 均被触发 | | 7. 危险操作 | `vssadmin delete shadows /all /quiet`,删除所有卷影副本 | 这是整个链条中置信度最高的单一信号,几乎没有合法程序会运行此命令 | | 8. 关联告警 | 上述多个事件在 5 分钟内接连发生 | 我的自定义规则 100220 触发,级别 15,“在同一主机上检测到多个勒索软件前体技术” | | 9. 调查 | — | 进入 Threat Hunting,针对 `vssadmin`、`reg.exe`、`registry` 进行查询以构建时间线 | | 10. 撰写报告 | — | 生成了本仓库以及 SOC_Response_Guide.md | ### 精选截图
**Hydra 找到有效的 SMB 凭据** ![Hydra SMB brute force success](https://static.pigsec.cn/wp-content/uploads/repos/cas/fd/fd76807de4d4f657eda2abf906c24ca9c61e684b020b7307d1b327f4d9d48196.png) **Wazuh 捕获到引发的 RDP 登录** ![Wazuh RDP pass-the-hash alert](https://static.pigsec.cn/wp-content/uploads/repos/cas/ff/ffd72b0fcdc0d365514d16ab29cced0aa57064986f3fb0cb522ca3f4228edfcc.png)
**注册表持久化 + 删除卷影副本** ![Registry Run key and vssadmin delete shadows](https://static.pigsec.cn/wp-content/uploads/repos/cas/4e/4ea45117007d49fa05c2b1fe160a546edd899f417cea854239e6db3048cfbe2d.png) **关联规则捕获到了整个行为模式** ![Ransomware precursor chain alert](https://raw.githubusercontent.com/malathi-cyber-sketch/Living-off-the-Land-Ransomware-Precursor-Detection-Lab/main/screenshots/05-siem-investigation-threat-hunting/03-ransomware-precursor-chain-alert-519-hits.png)
如果你想查看其余内容,所有 24 张截图都在 [`screenshots/`](./screenshots/) 文件夹中。 ## MITRE ATT&CK 映射 | 战术 | 技术 | ID | 我做了什么 | |---|---|---|---| | Reconnaissance | Active Scanning | T1595 | nmap 全端口扫描 | | Credential Access | Brute Force | T1110.001 | 针对 SMB 进行 Hydra 暴力破解 | | Initial Access | Valid Accounts | T1078 | 使用恢复的凭据登录 | | Credential Access | Pass-the-hash pattern | T1550.002 | 被 Wazuh 规则 92657 标记 | | Discovery | System Owner/User Discovery | T1033 | whoami, net user | | Discovery | System Information Discovery | T1082 | systeminfo, ipconfig | | Execution | System Binary Proxy Execution | T1218 | mshta, rundll32, certutil | | Command and Control | Ingress Tool Transfer | T1105 | certutil -urlcache, bitsadmin /transfer | | Persistence | Registry Run Keys | T1547.001 | 对 HKCU Run 键执行 reg add | | Persistence | Scheduled Task | T1053.005 | schtasks /create | | Defense Evasion | Obfuscated payload (Base64) | T1027 | 注册表中的 Base64 值 | | Impact | Inhibit System Recovery | T1490 | vssadmin delete shadows | ## 自定义检测规则 Wazuh 的内置规则可以很好地捕获独立的部分——比如注册表写入、PowerShell 派生 cmd——但没有将它们联系起来。所以我编写了一个小型规则集 (`local_rules_addition.xml`) 并将其部署到 Manager 上: ``` docker cp ~/local_rules_addition.xml single-node-wazuh.manager-1:/var/ossec/etc/rules/local_rules_addition.xml ``` 我添加的规则: | 规则 ID | 级别 | 捕获内容 | |---|---|---| | 100210 | 14 | 删除卷影副本/恢复机制 | | 100211 | 13 | 计划任务执行编码过的 PowerShell | | 100212 | 13 | 尝试禁用安全工具 | | 100213 | 6 | 通过 reg.exe 修改注册表 Run 键 | | 100214 | 10 | 写入注册表的类 Base64 值 | | 100215 | 4 | PowerShell 派生 cmd.exe | | 100220 | 15 | 5 分钟内在同一主机上发生上述多个事件——这是真正起作用的核心告警 | 规则 100220 不针对单一事件进行检测;它是一个频率规则,用于监视在同一 agent 上相继触发的、带有特定标签的子规则。这些命令本身都不是恶意的(IT 管理员一直在运行 reg.exe 和 vssadmin),是组合方式和发生速度使其变得可疑。 规则部署与关联逻辑: ![Custom rule deployed via docker cp](https://static.pigsec.cn/wp-content/uploads/repos/cas/0d/0d66ff53259d68260cde1bb2eb17bb78787d88acaa8c44de847aaf5d00a97636.png) ![Ransomware precursor correlation rule 100220](https://static.pigsec.cn/wp-content/uploads/repos/cas/1b/1bf7c4970cee4b0785fc2b84b273e67ce1e0403090bd75f8e09920b24024af2d.png) ## 截图文件夹 | 文件夹 | 包含内容 | |---|---| | `00-lab-environment-setup/` | 配置易受攻击的测试账户 | | `01-recon-and-initial-access/` | Nmap、Hydra 以及第一条 Wazuh 告警 | | `02-post-exploitation-enumeration/` | 登录后的基础侦察命令 | | `03-persistence-and-defense-evasion/` | LOLBins、注册表持久化、删除卷影副本 | | `04-detection-engineering/` | 构建与部署自定义规则 | | `05-siem-investigation-threat-hunting/` | 告警、仪表盘、狩猎查询 | | `06-vulnerability-assessment/` | 针对受害主机的漏洞扫描 | 包含我审查过的每一张截图(包括被我舍弃的截图及原因)的详细解析都在 [`docs/screenshot-audit.md`](./docs/screenshot-audit.md) 中。 ## 漏洞扫描结果 我还使用 Wazuh 的 Vulnerability Detection 模块针对这台 Windows 10 agent 运行了扫描。它返回了 816 条发现结果,其中大部分与过时的 Firefox 安装有关,包括几个严重的 CVE(sandbox escape、same-origin bypass)。虽然这跟我模拟的入侵没有直接关系,但它很好地提醒了我们:未打补丁的软件通常也是真实安全事件的一部分。 ![Wazuh vulnerability inventory showing Firefox CVEs](https://static.pigsec.cn/wp-content/uploads/repos/cas/85/85567a7ab65e9fab5203c93e8f14c0c802c2ac48424dfef9dac927a96fe48935.png) ## 我的发现 - 像 (`Password123!`) 这种字典类型的弱密码,足以让 Hydra 在不到一分钟的真实尝试中暴力破解 SMB。 - Wazuh 的默认规则能很好地捕获独立的事件,但如果没有自定义关联规则,就会漏掉多阶段的攻击模式。 - `vssadmin delete shadows` 是你可以搜寻的置信度最高的指标之一——基本上除了在批准的备份流程中,它没有任何运行的理由。 - 出现在注册表键中的 Base64 值在搜寻持久化痕迹时值得作为追踪的切入点。 - Firefox 的漏洞虽然与攻击本身无关,但无论如何它都作为真实风险出现在了同一台主机上。 ## 我练习的技能 SIEM 管理、使用 XML 编写 Wazuh 检测规则、Threat Hunting、日志分析、将行为映射到 MITRE ATT&CK、漏洞管理、基础的 Windows 命令行取证、Sysmon 配置、ocker,以及清晰地撰写调查报告。 ## 下次我会做出的改变 我的一些 Threat Hunting 查询返回为空(将 `reg.exe` 或 `registry` 作为纯文本搜索),因为 Wazuh 的搜索并不总是像你期望的那样匹配自由文本。像 `data.win.eventdata.commandLine:` 这样限定字段的查询效果好得多。下次我会直接从这些查询开始,而不是靠猜测关键词。 我还想添加一个 Shuffle SOAR playbook,以便在规则 100220 触发时自动隔离主机,并改进规则,使其能够真正解码 Base64 payload,而不是仅仅对其进行模式匹配。 ## 仓库结构 ``` Living-off-the-Land-Ransomware-Precursor-Detection-Lab/ ├── README.md ├── SOC_Response_Guide.md ├── docs/ │ └── screenshot-audit.md └── screenshots/ ├── 00-lab-environment-setup/ ├── 01-recon-and-initial-access/ ├── 02-post-exploitation-enumeration/ ├── 03-persistence-and-defense-evasion/ ├── 04-detection-engineering/ ├── 05-siem-investigation-threat-hunting/ └── 06-vulnerability-assessment/ ``` ## 关于我 我是一名位于印度海得拉巴的初级 SOC/VAPT 分析师。获得了 CEH 认证,拥有电子与通信工程 (ECE) 的 B.Tech 学位,目前正在像这样构建一系列实践实验室作品集,同时正在申请 SOC Analyst I 和 VAPT Analyst 职位。 - GitHub: [github.com/malathi-cyber-sketch](https://github.com/malathi-cyber-sketch) - LinkedIn: [linkedin.com/in/malathi-mittapalli-enola-b73208413](https://linkedin.com/in/malathi-mittapalli-enola-b73208413)
标签:SOC分析, Wazuh, 勒索软件检测, 安全实验室, 攻击模拟, 知识库安全, 请求拦截, 驱动签名利用