初探Rootkit-记一次对Festi Rootkit的静态分析
字数 2028 2025-08-25 22:59:20
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文件示例:
: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内核驱动程序有两个主要职责:
- 从命令和控制(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自行下载随书文件。