用途
该技能面向日志监控与痕迹规避的方法论整理。它一方面解释蓝队如何借助日志追踪攻击行为(SIEM、Event Log、Syslog),另一方面整理红队如何规避日志记录或精准清除痕迹。当需要设计无痕操作,或分析日志监控覆盖范围时使用。
核心原则:最好的反日志策略是不产生日志,而非事后删除。
蓝队视角:日志检测关键点
Windows 关键 Event ID
文档列举了以下映射关系(Event ID、日志源、含义、可触发的红队动作):
- 4624 / Security / 登录成功 / PTH、PTT、RDP
- 4625 / Security / 登录失败 / 密码喷洒
- 4648 / Security / 显式凭据登录 / runas、PsExec
- 4672 / Security / 特权分配 / 特权提升
- 4688 / Security / 新进程创建 / 工具执行
- 4698 / Security / 计划任务创建 / 持久化
- 4720 / Security / 用户创建 / 后门账户
- 5140 / Security / 网络共享访问 / 横向移动
- 5156 / Security / 网络连接 / C2 通信
- 7045 / System / 服务安装 / 持久化、PsExec
- 1102 / Security / 日志清除 / 反取证暴露
- 4104 / PowerShell / 脚本块日志 / PS 攻击工具
- 4103 / PowerShell / 模块日志 / PS 命令执行
- 1 / Sysmon / 进程创建(含 hash)/ 所有工具执行
- 3 / Sysmon / 网络连接 / C2 通信
- 8 / Sysmon / CreateRemoteThread / 进程注入
- 10 / Sysmon / 进程访问 / LSASS dump
- 11 / Sysmon / 文件创建 / 工具落盘
Linux 关键日志
- auth.log / secure,位置 /var/log/,记录 SSH 登录、sudo、su
- wtmp,位置 /var/log/,记录登录与注销
- btmp,位置 /var/log/,记录失败登录
- lastlog,位置 /var/log/,记录最后登录时间
- audit.log,位置 /var/log/audit/,记录 auditd 规则匹配
- syslog / messages,位置 /var/log/,记录系统事件
- journal,位置 /var/log/journal/,systemd 日志
- .bash_history,位置 ~/,记录命令历史
SIEM 常见检测规则
文档给出 Sigma 规则示例(蓝队部署),包括:
- 进程注入:Sysmon EventID 8(CreateRemoteThread to lsass)
- 凭据 Dump:EventID 10(OpenProcess to lsass)
- 横向移动:EventID 4648 + 4624 LogonType 3
- 持久化:EventID 7045(新服务)、4698(新计划任务)
- 日志清除:EventID 1102 / 104,属于高优先级告警
- PowerShell:EventID 4104 含 "IEX"、"Invoke-"、"-enc"
红队视角:日志逃逸
策略 1:阻止日志产生(最优)
Windows 方向包括:禁用 ETW Provider 以阻止 PowerShell/AMS 日志(patch ntdll!EtwEventWrite → ret,或 NtTraceEvent hook);关闭 ScriptBlock Logging(注册表 HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging → 0);使用 .NET 避免 PowerShell 日志(C# 直接调用 .NET,不走 PS 引擎,无 4104);Thread detach from ETW(patch 当前线程的 ETW context,不再产生事件);Sysmon 绕过(unload sysmon driver 或 patch 事件回调)。
Linux 方向包括:操作前 unset HISTFILE、export HISTSIZE=0、export HISTFILESIZE=0;或 set +o history;使用空格前缀命令(bash HISTCONTROL=ignorespace);kill -9 auditd(需 root,会产生停止日志);auditctl -e 0(关闭审计,更隐蔽)。
策略 2:绕过日志(不触发检测规则)
绕过 Sysmon:进程注入避免 CreateRemoteThread,改用 APC、Callback、Early Bird;LSASS 访问避免直接 OpenProcess,改用 Handle 复制或 MiniDump;网络使用 raw socket,Sysmon EID 3 可能不捕获;文件使用已存在文件名或路径,不触发新文件规则。
绕过 PowerShell 日志:降级攻击 powershell -version 2(无 ScriptBlock 日志);使用 C#/.NET 直接反射调用,无 PS 日志;AMSI bypass 阻止脚本内容被记录;使用 WMI/COM,不走 PowerShell 引擎。
绕过 4688 进程创建:进程名伪装,复制合法程序名执行;使用 LOLBins(rundll32、mshta、certutil)以合法进程出现;父进程欺骗,设置 PPID 为正常进程;命令行混淆,使用环境变量展开或特殊字符。
策略 3:精准清除(已产生日志时的补救)
前提提醒:不要清空整个日志,否则 EventID 1102 会立即告警;应精准删除特定条目。
Windows 精准清除方式包括:停止 EventLog 服务后修改 .evtx 文件再重启服务(net stop eventlog 需 SYSTEM,修改 evtx 二进制结构删除特定记录,net start eventlog);使用 Danderspritz eventlogedit(NSA 工具)精准删除指定 EventID 记录并修复文件校验;使用 Invoke-Phant0m 杀掉 EventLog 服务的所有线程,使服务在但不写日志;利用 MiniNT 注册表键 HKLM\SYSTEM\CurrentControlSet\Control\MiniNT 阻止日志写入。
Linux 精准清除方式包括:auth.log 使用 sed -i '/特定IP/d' /var/log/auth.log;wtmp 通过 utmpdump 导出、编辑删除特定行后用 utmpdump -r 写回;lastlog 使用工具修改特定用户的记录;audit.log 用 aureport 确认记录后 sed 删除;journal 使用 journalctl --vacuum-time=1s(会清全部)。
策略 4:实时日志转发对抗
现代企业会实时转发日志到 SIEM,本地删除无效。应对方案包括:从一开始就不产生日志(策略 1)为最优;绕过 Sysmon/ETW(策略 2)不产生特定事件;使用 SSH 隧道或 DNS 隧道,在网络日志中混入合法流量;选择凌晨或节假日操作,SOC 响应慢;理解 SIEM 规则阈值,低于告警阈值操作(例如密码喷洒锁定阈值 5 次,则每用户只尝试 2 次)。
对照表
文档给出的蓝队监控与红队对策对照包括:EventID 4624 任何登录 → 正常时段加合法用户名;EventID 4688 新进程 → LOLBins 或 PPID spoofing;EventID 4104 PS 脚本 → .NET、AMSI bypass、PS v2;Sysmon EID 1 进程加 hash → 修改已知白名单程序;Sysmon EID 8 远程线程 → APC 或 Timer callback;Sysmon EID 10 进程访问 → Handle duplicate;auditd syscall 审计 → 关闭 auditd 或直接 syscall;网络日志连接记录 → 域前置、CDN、合法服务。
适用场景与限制
该技能适用于日志监控覆盖范围分析、无痕操作方案设计,以及理解 SIEM 检测规则与规避思路。文档中的深入参考包括 Windows Event Log 详细 ID 映射与清除、Linux audit/syslog 绕过技术,具体位置为 references/windows-eventlog.md 与 references/linux-log-evasion.md。关于该技能的其他信息(如安装方式、运行环境要求)暂未提供。