SuperAPI AI 工具集

log-evasion

安全与审计

查看项目

更新于 10-16 04:48

技能介绍

用途

该技能面向日志监控与痕迹规避的方法论整理。它一方面解释蓝队如何借助日志追踪攻击行为(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。关于该技能的其他信息(如安装方式、运行环境要求)暂未提供。