# Detecting Evasion Techniques In Endpoint Logs

> 检测端点日志中对手使用的防御规避技术，包括日志篡改、时间戳伪造、进程注入和安全工具禁用。 适用于调查可疑端点行为、为规避战术构建检测规则，或针对隐蔽对手活动进行威胁狩猎的场景。

- Skill: `killvxk/detecting-evasion-techniques-in-endpoint-logs` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/detecting-evasion-techniques-in-endpoint-logs`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/detecting-evasion-techniques-in-endpoint-logs/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/detecting-evasion-techniques-in-endpoint-logs

---

# 检测端点日志中的规避技术

## 使用场景

在以下情况下使用本技能：
- 在端点遥测数据中狩猎对手的防御规避技术（MITRE ATT&CK TA0005）
- 为常见规避方法（进程注入、时间戳伪造、日志清除）构建检测规则
- 调查对手禁用或绕过安全工具的事件
- 分析端点日志中滥用离地攻击二进制文件（LOLBin）的指标

**不适用于**网络层面的规避（使用网络流量分析）或恶意软件逆向工程。

## 前置条件

- 已安装并配置全面日志记录规则的 Sysmon（SwiftOnSecurity 或 Olaf Hartong 配置）
- 已启用高级审计策略的 Windows 安全事件日志
- EDR 遥测数据（CrowdStrike、SentinelOne、Microsoft Defender for Endpoint）
- 用于日志关联的 SIEM 平台（Splunk、Elastic、Sentinel）
- MITRE ATT&CK 企业矩阵用于技术参考

## 操作流程

### 步骤 1：检测日志篡改（T1070）

**Windows 事件日志清除（T1070.001）**：
```
# 针对 wevtutil 的 Sysmon 事件 ID 1（进程创建）
EventID: 1
CommandLine 包含："wevtutil cl" 或 "wevtutil clear-log"

# 安全事件 ID 1102 - 审计日志已清除
EventID: 1102
来源：Microsoft-Windows-Eventlog

# 系统事件 ID 104 - 事件日志已清除
EventID: 104

# PowerShell 日志清除
EventID: 1 (Sysmon)
CommandLine 包含："Clear-EventLog" 或 "Remove-EventLog"

# Splunk 查询：
index=windows (EventCode=1102 OR EventCode=104)
  OR (EventCode=1 CommandLine="*wevtutil*cl*")
  OR (EventCode=1 CommandLine="*Clear-EventLog*")
| table _time host user CommandLine EventCode
```

**时间戳伪造（T1070.006）**：
```
# Sysmon 事件 ID 2 - 文件创建时间已修改
EventID: 2
# 查找最近写入的文件但创建时间设置为很久以前
# 与事件 ID 11（FileCreate）关联 - 如果 FileCreate 时间是近期，
# 但事件 ID 2 中的创建时间是旧的，则很可能发生了时间戳伪造

# MDE 高级搜寻（KQL）：
DeviceFileEvents
| where ActionType == "FileTimestampModified"
| where Timestamp > ago(7d)
| extend TimeDiff = datetime_diff('day', Timestamp, ReportedFileCreationTime)
| where TimeDiff > 30
| project Timestamp, DeviceName, FileName, FolderPath,
    ReportedFileCreationTime, InitiatingProcessFileName
```

### 步骤 2：检测进程注入（T1055）

```
# Sysmon 事件 ID 8 - CreateRemoteThread
EventID: 8
# 当源进程异常时发出告警（非系统进程）
# 过滤已知合法来源：杀毒软件、调试工具
SourceImage 不在 ("C:\Windows\System32\csrss.exe",
                     "C:\Windows\System32\lsass.exe")

# Sysmon 事件 ID 10 - 带可疑访问掩码的 ProcessAccess
EventID: 10
GrantedAccess 包含："0x1F0FFF" 或 "0x1FFFFF" 或 "0x001F0FFF"
# PROCESS_ALL_ACCESS = 0x1F0FFF（注入中常见）
# 过滤合法来源：访问所有进程的 AV

# Sysmon 事件 ID 25 - Process Tampering
EventID: 25
Type: "Image is replaced"  # 进程空洞（Process Hollowing）指示器

# Splunk 检测：
index=sysmon EventCode=8
| where NOT match(SourceImage, "(?i)(csrss|svchost|MsMpEng|defender)")
| stats count by SourceImage TargetImage host
| where count < 5
| sort - count
```

### 步骤 3：检测安全工具禁用（T1562）

```
# 安全服务的服务停止事件
EventID: 7045（新服务）或 7036（服务状态变更）
ServiceName 在 ("WinDefend", "Sense", "CrowdStrike Falcon Sensor",
                 "SentinelAgent", "csagent", "MBAMService")

# Sysmon 事件 ID 1 - 禁用 Defender 的进程
CommandLine 包含："Set-MpPreference -DisableRealtimeMonitoring"
  或 "sc stop WinDefend"
  或 "sc config WinDefend start= disabled"
  或 "net stop" 且 ("windefend" 或 "sense" 或 "csagent")

# 注册表修改以禁用安全功能
# Sysmon 事件 ID 13 - 注册表值设置
TargetObject 包含："DisableAntiSpyware"
  或 "DisableRealtimeMonitoring"
  或 "DisableBehaviorMonitoring"
Details: "DWORD (0x00000001)"

# MDE KQL：
DeviceRegistryEvents
| where RegistryValueName in ("DisableAntiSpyware", "DisableRealtimeMonitoring")
| where RegistryValueData == "1"
| project Timestamp, DeviceName, RegistryKey, InitiatingProcessFileName
```

### 步骤 4：检测伪装（T1036）

```
# Sysmon 事件 ID 1 - 从异常路径运行的具有合法名称的进程
EventID: 1
Image 包含："svchost.exe" 且 Image 不以 "C:\Windows\System32\" 开头
Image 包含："csrss.exe" 且 Image 不以 "C:\Windows\System32\" 开头
Image 包含："lsass.exe" 且 Image 不以 "C:\Windows\System32\" 开头

# 进程名称不匹配（原始文件名与当前名称）
# Sysmon 从 PE 头部获取 OriginalFileName
EventID: 1
OriginalFileName != （从 Image 路径解析出的文件名）

# 双扩展名文件
EventID: 11 (FileCreate)
TargetFilename 匹配："*\.pdf\.exe" 或 "*\.doc\.exe" 或 "*\.jpg\.exe"

# Splunk：
index=sysmon EventCode=1
| eval process_name=mvindex(split(Image,"\\"),-1)
| where (process_name="svchost.exe" AND NOT match(Image,"(?i)C:\\\\Windows\\\\System32"))
  OR (process_name="csrss.exe" AND NOT match(Image,"(?i)C:\\\\Windows\\\\System32"))
| table _time host Image ParentImage CommandLine User
```

### 步骤 5：检测 LOLBin 滥用（T1218、T1127）

```
# 常见 LOLBin 滥用模式：

# mshta.exe 执行远程内容
EventID: 1
Image 以 "mshta.exe" 结尾
CommandLine 包含："http" 或 "javascript:" 或 "vbscript:"

# certutil.exe 下载文件
EventID: 1
Image 以 "certutil.exe" 结尾
CommandLine 包含："-urlcache" 或 "-decode" 或 "-encode"

# regsvr32.exe 执行脚本
EventID: 1
Image 以 "regsvr32.exe" 结尾
CommandLine 包含："/s /n /u /i:" 或 "scrobj.dll"

# rundll32.exe 加载异常 DLL
EventID: 1
Image 以 "rundll32.exe" 结尾
CommandLine 包含："javascript:" 或 ".js" 或 "http:"

# MSBuild 执行内联任务
EventID: 1
Image 包含："MSBuild.exe"
CommandLine 不含 ".sln" 且不含 ".csproj"
```

### 步骤 6：构建检测规则关联

```
# 将多个弱信号组合成高置信度检测：

# 规则：潜在的后渗透规避链
# 同一台主机在 1 小时内观察到 3+ 种规避技术时触发

# Splunk 关联搜索：
index=sysmon host=*
| eval technique=case(
    EventCode=2, "timestomping",
    EventCode=8 AND NOT match(SourceImage,"csrss|svchost"), "process_injection",
    EventCode=1 AND match(CommandLine,"(?i)wevtutil.*cl"), "log_clearing",
    EventCode=13 AND match(TargetObject,"DisableRealtimeMonitoring"), "security_disable",
    EventCode=1 AND match(CommandLine,"(?i)(mshta|certutil.*urlcache|regsvr32.*/s.*/n)"), "lolbin_abuse",
    true(), NULL
)
| where isnotnull(technique)
| bin _time span=1h
| stats dc(technique) as technique_count values(technique) as techniques by host _time
| where technique_count >= 3
| sort - technique_count
```

## 关键概念

| 术语 | 定义 |
|------|------|
| **防御规避（TA0005）** | MITRE ATT&CK 战术，对手在行动过程中试图规避检测 |
| **进程注入（T1055）** | 将代码注入另一进程内存空间以在受信任上下文中执行的技术 |
| **时间戳伪造（T1070.006）** | 修改文件时间戳使恶意文件看起来是旧文件以融入合法文件 |
| **伪装（T1036）** | 将恶意文件或进程命名为与合法系统文件相匹配以规避检测 |
| **LOLBin** | 离地攻击二进制文件（Living Off the Land Binary），被对手重用的合法 Windows 工具 |
| **痕迹清除（T1070）** | 清除日志、删除文件或修改产物以清除攻陷证据 |

## 工具与系统

- **Sysmon**：具有内核级可见性的高级 Windows 系统监控工具
- **Microsoft Defender for Endpoint**：具有高级搜寻（KQL）功能的 EDR，用于规避检测
- **CrowdStrike Falcon**：基于 IOA 的行为检测，用于规避技术
- **Elastic Security**：具有内置 ATT&CK 规避技术检测规则的 SIEM
- **Sigma 规则**：与厂商无关的检测规则格式，具有丰富的规避规则库

## 常见误区

- **进程注入规则引起的告警疲劳**：许多合法工具（AV、辅助功能）执行进程注入。维护已知合法源进程的白名单。
- **缺少 Sysmon 事件 ID 8/10**：默认 Sysmon 配置可能不捕获 CreateRemoteThread 或 ProcessAccess。使用全面的 Sysmon 配置。
- **忽略父进程上下文**：来自 cmd.exe 的可疑命令行只有在 cmd.exe 的父进程异常时才值得关注（例如 Excel 生成 cmd.exe）。
- **不跨事件类型关联**：单个事件通常是良性的。将多个弱信号组合（进程创建 + 网络连接 + 文件创建）以获得高置信度检测。

