后渗透阶段的日志清理技术如何规避检测?

2 人参与

在后渗透阶段,攻击者往往需要在不触发安全监控的前提下抹除操作痕迹。日志清理并非单纯的wevtutil cl,而是一套与系统审计、日志轮转机制、以及日志聚合平台交互的综合手段。若仅凭蛮力删除,SIEM 仍可能捕获异常的日志写入或文件属性变更;因此,真正的规避策略必须在清理前后保持系统行为的“自然”。

日志清理的攻击路径

常见的入口包括本地管理员权限、系统服务账户以及通过 DLL 注入获得的系统上下文。攻击者往往先利用提权模块获取 NT AUTHORITYSYSTEM,随后才能对 C:WindowsSystem32winevtLogs 目录进行写入或删除操作。值得注意的是,Windows 10 1903 之后引入的日志完整性校验(Log File Signature)使得直接篡改文件会触发事件 ID 1102。

规避检测的关键技术

  • 利用 Windows Event Forwarding (WEF) 将目标日志实时转发到离线服务器,再在本地执行 wevtutil cl,因为转发过程已经产生了合法的写入记录。
  • 在日志轮转窗口期(默认 7 天)内执行清理,配合修改 MaxSize 参数,使得日志文件在达到阈值前被截断,系统不会记录异常的“日志被清空”事件。
  • 通过 PowerShellClear-EventLog 并加入 -Confirm:$false 参数,利用 EventLog 的内部缓存刷新机制,避免触发 EventLog.Clear 事件。
  • 在清理脚本前后插入无害的日志写入,例如 Write-EventLog -LogName Application -Source "microsoft-Windows-TaskScheduler",用合法记录掩盖异常行为。
  • 针对集中式 SIEM,先在 Windows Event Collector 上禁用对应的过滤规则,再执行本地清理,事后恢复规则,确保审计链路中没有“规则被修改”的告警。

实战脚本示例

# 1. 暂停 Event Log 服务(仅在本地可行)
sc stop eventlog

# 2. 清除常见日志
wevtutil cl Security
wevtutil cl System
wevtutil cl Application

# 3. 重新启动服务并写入伪装记录
sc start eventlog
Write-EventLog -LogName System -Source "Microsoft-Windows-Eventlog" -EventId 6005 -Message "The event log service has started."

“清除日志的瞬间,往往也是最容易留下痕迹的时机。” —— 红队经验

参与讨论

2 条评论
  • 霜痕影

    这个技术点确实容易忽略,转发到离线服务器再清理是个思路。

    回复
  • 可可奶盖

    Windows 10 1903之后的校验是个大坑,之前没注意就触发了警报。

    回复