初探Rootkit-记一次对Festi Rootkit的静态分析
字数 2028 2025-08-25 22:59:20

Rootkit技术深入解析:以Festi Rootkit为例

一、Rootkit概述

1.1 Rootkit定义

Rootkit是一种计算机软件的集合,通常是恶意软件,用于访问计算机内原本不允许访问的区域(未经root权限的区域)。Rootkit旨在帮助恶意攻击者控制计算机或应用程序,一经激活就会在计算机中留下后门漏洞以及其它恶意软件。

1.2 Rootkit分类

根据Rootkit感染机器的位置和深度可以分为以下几类:

  1. 用户模式Rootkit:在应用层运行的Rootkit,可以修改应用程序和API行为,相对内核Rootkit更容易被检测出来。

  2. 内核模式Rootkit:运行在内核层中,可以控制所有系统进程,除了难以被检测外,还会影响目标系统的稳定性(可能导致蓝屏)。

  3. 固件Rootkit:可以访问运行设备(路由器、网卡、硬盘或系统BIOS)的软件,可以在关闭计算机时隐藏在固件中,重新启动计算机时又重新安装,很难被清除。

  4. Bootkit:通过感染目标系统的主引导记录(MBR)来控制目标系统,允许恶意程序在目标操作系统加载之前执行。

  5. 虚拟Rootkit:利用硬件虚拟化功能来控制计算机,通过绕过内核并在虚拟机中运行目标操作系统来实现。几乎不可能被检测和清除,因为它的运行级别高于操作系统。

二、Rootkit感染机制

2.1 感染方式

与其他计算机病毒如蠕虫不同,Rootkit需要帮助才能感染计算机:

  1. 捆绑安装:Rootkit和软件包捆绑一同安装到计算机上
  2. 混合威胁:Rootkit与Dropper、loader两个组件共同构成混合威胁

2.2 关键组件

  1. Dropper(投放者)

    • 一种特殊的感染类型,携带有效负载到目标计算机内部
    • 能够隐藏自身和负载(压缩、加密和混淆)以避免被杀软检测
  2. Loader(下载者)

    • 自身不携带有效负载,而是从远程服务器下载
    • 通常是一段恶意代码,Dropper先执行,将Loader植入系统,Loader再将Rootkit安装到目标系统

三、Festi Rootkit分析

3.1 Festi简介

Festi Rootkit是早期流行的涉及垃圾邮箱和分布式拒绝服务(DDoS)的僵尸网络,针对Windows X86平台。

3.2 Dropper分析

  1. 数据提取

    • 从特定地址(dword_404000)中提取数据
    • 进行数据处理和子函数调用
    • 将处理结果保存在.sys文件中
  2. 服务创建

    • 使用CreateServiceA创建内核模式服务
    • 使用StartServiceA启动该服务,将Rootkit植入系统
  3. 自删除机制

    • 典型的恶意软件自删除机制
    • 生成.bat文件示例:
      :trydel 
      "C:\Windows\system32\drivers\serial<random_number>.sys" 
      if exist "C:\Windows\system32\drivers\serial<random_number>.sys" goto trydel 
      "C:\Users\Username\AppData\Local\Temp\<random>.bat"
      

3.3 驱动程序分析

3.3.1 C&C通信配置

Festi内核驱动程序有两个主要职责:

  1. 从命令和控制(C&C)服务器请求配置信息
  2. 以插件形式下载和执行恶意模块

预定义配置信息

  • C&C服务器的域名
  • 用于加密bot和C&C之间传输数据的密钥
  • bot版本信息

存储方式

  • 硬编码在驱动程序的二进制文件中
  • 存储在.cdata节表中
  • 使用DWORD字节的密钥对数据进行异或运算(在驱动程序初始化时解密)

解密示例

  • 使用IDApython脚本,key是0x9D802CB0,对.cdata进行异或解密

3.3.2 反虚拟机和反调试技术

  1. 虚拟机检测

    • 检查ebx寄存器是否包含VMX值(VMware环境)
    • 检测Virtual PC环境:
      • 通过异常处理和vpcext指令
      • 'vpcext'指令特定于Virtual PC环境,执行成功且无异常表明存在VPC管理程序
  2. 网络监控检测

    • 检查是否存在npf.sys驱动(Windows包捕获库WinPcap使用)
    • WireShark等网络监控软件使用该驱动访问数据链路网络层
  3. 调试器检测

    • 检查从操作系统内核映像导出的KdDebuggerenabled变量
    • 检测系统中是否存在内核调试器

四、Festi Rootkit高级特性

  1. 插件管理

    • 以插件形式下载和执行恶意模块
    • 支持动态扩展恶意功能
  2. 隐藏技术

    • 进程隐藏
    • 文件隐藏
    • 注册表隐藏
    • 网络连接隐藏

五、防御措施

  1. 检测技术

    • 完整性检查
    • 行为分析
    • 内存分析
    • 交叉视图检测
  2. 防护建议

    • 保持系统和软件更新
    • 使用可信安全软件
    • 最小权限原则
    • 网络流量监控
    • 启用安全启动(针对Bootkit)

六、参考资源

  1. 《Rootkit和Bootkit 现代恶意软件逆向分析和下一代威胁》
  2. RETURN OF THE FESTI ROOTKIT
  3. King of Spam: Festi Botnet Analysis
  4. Rootkit 神秘 Avatar rootkit 带有 API、SDK 和Yahoo Groups,用于 C&C 通信
  5. Avatar Rootkit: Dropper 分析

注:相关附件可上GitHub自行下载随书文件。

Rootkit技术深入解析:以Festi Rootkit为例 一、Rootkit概述 1.1 Rootkit定义 Rootkit是一种计算机软件的集合,通常是恶意软件,用于访问计算机内原本不允许访问的区域(未经root权限的区域)。Rootkit旨在帮助恶意攻击者控制计算机或应用程序,一经激活就会在计算机中留下后门漏洞以及其它恶意软件。 1.2 Rootkit分类 根据Rootkit感染机器的位置和深度可以分为以下几类: 用户模式Rootkit :在应用层运行的Rootkit,可以修改应用程序和API行为,相对内核Rootkit更容易被检测出来。 内核模式Rootkit :运行在内核层中,可以控制所有系统进程,除了难以被检测外,还会影响目标系统的稳定性(可能导致蓝屏)。 固件Rootkit :可以访问运行设备(路由器、网卡、硬盘或系统BIOS)的软件,可以在关闭计算机时隐藏在固件中,重新启动计算机时又重新安装,很难被清除。 Bootkit :通过感染目标系统的主引导记录(MBR)来控制目标系统,允许恶意程序在目标操作系统加载之前执行。 虚拟Rootkit :利用硬件虚拟化功能来控制计算机,通过绕过内核并在虚拟机中运行目标操作系统来实现。几乎不可能被检测和清除,因为它的运行级别高于操作系统。 二、Rootkit感染机制 2.1 感染方式 与其他计算机病毒如蠕虫不同,Rootkit需要帮助才能感染计算机: 捆绑安装 :Rootkit和软件包捆绑一同安装到计算机上 混合威胁 :Rootkit与Dropper、loader两个组件共同构成混合威胁 2.2 关键组件 Dropper(投放者) : 一种特殊的感染类型,携带有效负载到目标计算机内部 能够隐藏自身和负载(压缩、加密和混淆)以避免被杀软检测 Loader(下载者) : 自身不携带有效负载,而是从远程服务器下载 通常是一段恶意代码,Dropper先执行,将Loader植入系统,Loader再将Rootkit安装到目标系统 三、Festi Rootkit分析 3.1 Festi简介 Festi Rootkit是早期流行的涉及垃圾邮箱和分布式拒绝服务(DDoS)的僵尸网络,针对Windows X86平台。 3.2 Dropper分析 数据提取 : 从特定地址(dword_ 404000)中提取数据 进行数据处理和子函数调用 将处理结果保存在.sys文件中 服务创建 : 使用CreateServiceA创建内核模式服务 使用StartServiceA启动该服务,将Rootkit植入系统 自删除机制 : 典型的恶意软件自删除机制 生成.bat文件示例: 3.3 驱动程序分析 3.3.1 C&C通信配置 Festi内核驱动程序有两个主要职责: 从命令和控制(C&C)服务器请求配置信息 以插件形式下载和执行恶意模块 预定义配置信息 : C&C服务器的域名 用于加密bot和C&C之间传输数据的密钥 bot版本信息 存储方式 : 硬编码在驱动程序的二进制文件中 存储在.cdata节表中 使用DWORD字节的密钥对数据进行异或运算(在驱动程序初始化时解密) 解密示例 : 使用IDApython脚本,key是0x9D802CB0,对.cdata进行异或解密 3.3.2 反虚拟机和反调试技术 虚拟机检测 : 检查ebx寄存器是否包含VMX值(VMware环境) 检测Virtual PC环境: 通过异常处理和vpcext指令 'vpcext'指令特定于Virtual PC环境,执行成功且无异常表明存在VPC管理程序 网络监控检测 : 检查是否存在npf.sys驱动(Windows包捕获库WinPcap使用) WireShark等网络监控软件使用该驱动访问数据链路网络层 调试器检测 : 检查从操作系统内核映像导出的KdDebuggerenabled变量 检测系统中是否存在内核调试器 四、Festi Rootkit高级特性 插件管理 : 以插件形式下载和执行恶意模块 支持动态扩展恶意功能 隐藏技术 : 进程隐藏 文件隐藏 注册表隐藏 网络连接隐藏 五、防御措施 检测技术 : 完整性检查 行为分析 内存分析 交叉视图检测 防护建议 : 保持系统和软件更新 使用可信安全软件 最小权限原则 网络流量监控 启用安全启动(针对Bootkit) 六、参考资源 《Rootkit和Bootkit 现代恶意软件逆向分析和下一代威胁》 RETURN OF THE FESTI ROOTKIT King of Spam: Festi Botnet Analysis Rootkit 神秘 Avatar rootkit 带有 API、SDK 和Yahoo Groups,用于 C&C 通信 Avatar Rootkit: Dropper 分析 注:相关附件可上GitHub自行下载随书文件。