执行恶意软件持久化调查
使用时机
- 当调查恶意软件如何在重启后在已被入侵的系统上维持存在时
- 在事件响应过程中,用于识别所有持久化机制以进行完整的修复
- 用于威胁狩猎,发现各端点上未经授权的自启动项
- 当分析恶意软件行为以理解其持久化策略时
- 用于在事件修复后验证所有持久化是否已被清除
先决条件
- 取证镜像或具有管理员权限的实时系统访问权限
- 用于 Windows 持久化枚举的 Autoruns(Sysinternals)
- 用于离线注册表分析的 RegRipper
- 了解 Windows 和 Linux 的持久化机制
- 用于扫描持久化位置的 YARA 规则
- 用于比较的已知良好自启动项基线
工作流程
步骤 1:枚举 Windows 注册表持久化
# 从取证镜像中提取注册表配置单元
mount -o ro,loop,offset=$((2048*512)) /cases/case-2024-001/images/evidence.dd /mnt/evidence
# 关键注册表持久化位置
python3 << 'PYEOF'
from Registry import Registry
import json
results = {'registry_persistence': []}
# SYSTEM 配置单元分析
system_reg = Registry.Registry("/cases/case-2024-001/registry/SYSTEM")
select = system_reg.open("Select")
current = select.value("Current").value()
cs = f"ControlSet{current:03d}"
# 服务(非常常见的持久化方式)
services = system_reg.open(f"{cs}\\Services")
for svc in services.subkeys():
try:
start_type = svc.value("Start").value()
image_path = ""
try:
image_path = svc.value("ImagePath").value()
except:
pass
# 启动类型:0=Boot, 1=System, 2=Auto, 3=Manual, 4=Disabled
if start_type in (0, 1, 2) and image_path:
svc_type…