NjRAT 样本分析
字数 2321 2025-11-26 12:15:32
NjRAT 样本分析教学文档
1. 概述
NjRAT(又称为 Bladabindi)是一款带有图形用户界面(GUI)的远程访问工具(RAT),允许攻击者远程控制和监视受害者计算机。该恶意软件具有键盘记录、截图捕获、文件操作和数据窃取等功能,被广泛用于各种网络犯罪活动。
1.1 历史背景
- 最早的 NjRAT 由名为 M38dHhM 的组织创建,据信位于阿拉伯语国家,主要针对中东地区
- 自 2013 年其源代码泄露后,出现了多个修改版本:
- NjRAT 0.7d Danger Edition
- NjRAT 0.7d Golden Edition
- NjRAT 0.7d Green Edition
- NjRAT Lime Edition
2. 环境配置
2.1 实验环境搭建
硬件要求:
- 三台虚拟机:
- 两台 Windows 10 Pro x64(攻击端和受害端)
- 一台 Windows XP SP3(兼容性测试)
网络配置:
- 攻击端与受害端位于同一局域网
- 兼容性测试环境独立设置
拓扑架构:
- 攻击端(C2服务器) → 受害端(被控主机)
- 独立兼容性测试环境用于对比分析
2.2 NjRAT 控制端配置
- 运行 NjRAT 控制端程序
- 设置 C2 服务器监听端口
- 通过 Builder 选项生成客户端可执行文件
2.3 攻击流程
- 受害端运行生成的 exe 文件
- 控制端面板显示主机上线
- 攻击者通过 C2 控制端下发指令
3. 静态分析
3.1 基本信息分析
工具使用:
- DIE(Detect It Easy)用于文件格式识别
- pestudio 用于导入函数和字符串分析
关键发现:
- 文件格式:Win32 PE,VB.NET 编译,基于 .NET Framework 2.0
- 特征识别:DIE 识别为 NjRAT 0.7D Green Edition Malware
- 香农熵:低于5,表明未加壳或加密
- 功能特征:修改注册表、关闭计算机、禁用任务管理器、修改防火墙策略
3.2 代码反编译分析
使用工具: dnSpy(.NET 反编译器)
入口点分析:
- 主入口点:main() 函数 → OK.ko() 函数
启动流程:
-
参数检测:
- 检测程序启动参数
- 存在参数时在注册表 HKEY_CURRENT_USER 写入 di 值
- 延迟5秒执行
-
互斥体创建:
' 创建互斥体确保单实例运行 ' 创建失败则终止当前实例 -
安装函数 INS():
- 自复制安装到系统目录
- 添加防火墙例外规则
- 注册表自启动(Run项)
- 启动文件夹自启动
- 终止指定进程(杀毒软件)
- 隐藏自身文件
- USB传播机制
-
清理函数 UNS():
- 提供自我清理功能
线程管理:
- RC() 线程:接收 C2 数据包
- kq.WRK() 线程:键盘记录功能
- mgr.protect() 线程:进程自我保护
数据传输:
- 使用 Base64 编码进行通信
自我保护机制:
- 正常关机:正常结束进程
- 强行终止:触发蓝屏死机(BSOD)
主循环框架:
- 每秒循环一次
- 内存优化:每5秒降低内存占用
- 心跳机制:维持与C2连接
- 活动窗口监控:每8秒检测并上报
- 自启动维护:持续检查注册表启动项
4. 动态分析
4.1 基于 Process Monitor 的行为分析
启动阶段行为:
-
注册表操作:
- 写入 di = "!" 作为启动标记
- 创建注册表配置根键保存受害者ID等信息
-
网络配置:
- 调用 netsh 添加防火墙例外
-
持久化机制:
- 注册表 Run 项持久化
- 启动文件夹隐藏文件创建
- 定期检查维护自启动项
-
传播行为:
- USB传播:在各磁盘根目录创建:
- svchost.exe(恶意程序副本)
- autorun.inf(自动执行配置)
- 现代系统限制:Windows 7+ 系统对U盘autorun有限制
- USB传播:在各磁盘根目录创建:
-
进程保护:
- 设置 ProcessInformationClass = 29
- 标记为关键进程,强行终止导致BSOD
- 可通过PCHunter等内核工具解除保护
4.2 基于 Wireshark 的网络通信分析
通信协议分析:
-
初始握手:
- TCP三次握手建立连接
- 第一条消息(明文+Base64):
- 机器ID(Base64)
- 主机名、用户名、系统信息等(明文)
-
系统信息上报:
- 第二条消息(Base64编码):
- 受害者详细信息
- 可执行文件位置
- NjRAT配置选项
- 第二条消息(Base64编码):
-
功能通信:
- 键盘记录: kl命令 → Base64编码的击键日志
- 远程桌面: CAP命令 → JPEG格式屏幕截图流
- 密码窃取: pas命令 → 下载Pass.exe扫描密码
4.3 基于在线沙箱的行为分析
真实攻击场景分析:
- 投递方式: 通过钓鱼文档(PowerPoint插件)
- 执行链: 文档宏 → POWERPNT.EXE → 释放NjRAT载荷
- 检测标签: macros、rat、njrat等
5. 防御建议
5.1 检测指标
- 网络特征: Base64编码的C2通信
- 文件特征: 特定目录的隐藏可执行文件
- 注册表特征: 异常自启动项
- 进程特征: 关键进程标记
5.2 防护措施
-
系统加固:
- 禁用不必要的Office宏
- 限制U盘自动运行功能
- 定期更新系统补丁
-
监控检测:
- 网络流量监控(Base64通信模式)
- 进程行为监控(异常的关键进程)
- 注册表变更监控
-
应急响应:
- 使用专业工具(如PCHunter)处理受保护进程
- 全面清理注册表和文件系统
- 网络隔离和密码重置
6. 总结
NjRAT作为一款功能完整的远程访问木马,具有高度的隐蔽性和持久化能力。通过深入分析其静态特征和动态行为,可以有效提升对此类威胁的检测和防御能力。现代防御需要结合行为监控、网络流量分析和系统加固等多层次防护策略。