新华三攻防实验室
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
一、概述
njRAT,又称Bladabindi是一种使用.NET框架编写的远控木马,包含远控的典型功能如文件管理,进程控制,数据窃取等。本文重点针对njRAT的上线包进行分析,让读者可以了解经典病毒njRAT的流量特征,进行有效防御。
二、样本分析
文件基本信息如下:
持久化
通过设置注册表项实现开机自启动。
将自身文件属性设置为隐藏,复制文件到Windows自启动文件夹,并修改文件名为1da3b8905e6c54c724d1c70a5cf05f16.exe。
防御规避
将自身添加到防火墙的白名单中,允许通过防火墙进行网络通信。
终止任意进程,该样本为测试样本,所以进程Exsample.exe。
获取当前窗口句柄,判断当前窗口是否为processviewer等窗口,是则禁用窗口。
通过发送窗口关闭消息终止相关进程。wMsg值为0x12时表示WM_QUIT,此处可能攻击者失误将wMsg值写为12。
信息窃取
监听键盘输入并记录按键信息。
获取当前窗口的标题并将该字符串先转换为UTF-8编码的字节数组,再将字节数组转换为Base64编码的字符串隐藏传输数据。
传播扩散
将自身复制到U盘并写入相应配置,当U盘插入其他主机后自动运行该程序。
文件执行
脚本执行与本地执行。主控端文件的内容会使用ZIP压缩,封装成命令包发送,被控端接收到命令,使用压缩算法解压后,将内容写入临时目录下的指定文件(文件名由主控端指定)并执行。脚本执行与本地执行数据包通过分隔符分成三部分,第三部分首字节为”1f”作为标识符。
下载执行。主控端发送链接,由于不含标识符”1f”,使用DownloadData方法下载并执行。
三、网络行为分析
收集受害者主机信息
获取需要发送的数据长度,将长度与数据拼接在一起后发送到C2服务器
被控端第一次发送的数据
1.创建一个固定字符串”ll”作为标识符。
2.打开njRAT在注册表中创建的子键,判断是否存在”vn”值,不存在则拼接OK.VN的值” S29udG9s”。VN为自定义值。
3.获取系统驱动器的序列号并转换为16进制字符串存储。text2的值为S29udG9s+“_”+系统卷的序列号。
获取主机名,用户名,并对操作系统的名称进行处理。
被控端第二次发送的数据
将IP,端口,路径,以及姓名等拼接成一个字符串,该字符串先转换为UTF-8编码的字节数组,再将字节数组转换为Base64编码的字符串隐藏传输数据。
被控端第三次发送数据
设置死循环,窗口标题每隔8秒更新一次。left中存储旧窗口标题。left与当前的窗口标题text对比,不同则将left修改为当前窗口标题并向C2服务器发送修改的数据。
上线报文示例如下:
上线包详细解析
上线包关键数据导出,包含三组数据。使用Imhex标注,各部分含义如下
发送宿主机基本信息
1.下图标记处值如下
字节[0,2]为本次发送数据的长度
字节[3,5]为建立连接的命令标识符
字节[6,10]为njRAT传输数据中的固定分隔符
2.下图标记处为定值,表示注册表中自定义”vn”的键值
3.下图标记处为系统驱动器卷的序列号
4.下图标记处为计算机名称
5.下图标记处为当前登陆用户的用户名
6.下图标记处为样本最后写入时间
7.下图标记处为操作系统的名称
8.下图标记处为摄像头查询结果
9.下图标记处值如下
字节[0,4]为版本信息
字节[5,9]为分隔符
字节[10,11]为固定字符串
10.下图标识处为窗口标题
11.下图标识处值如下
字节[0,3]为本次发送数据长度
字节[4,6]为该段数据标识符
字节[7,11]为分隔符
发送样本配置
1.下图标识处的值为该样本基础信息如回连IP、端口、保存路径、文件名等,以及注册表自启动、添加防火墙白名单等功能是否启用。
发送活动窗口标题
1.下图标识处值如下
字节[0,2]为本次发送数据的长度
字节[3,5]为该段数据标识符
字节[6,10]为分隔符
字节[11,52]为窗口标题
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)