老树开新花--njRAT家族恶意软件分析报告
2018-06-26 16:13

enter image description here

报告编号: B6-2018-062601

报告来源: 360CERT

报告作者: 360CERT

更新日期: 2018-06-26

0x00 前言

  近日,360CERT监测到“njRAT”家族恶意软件的新型变种正在活跃,该木马家族使用.NET框架编写,并且本文中所讲的样本带有严重代码混淆妨碍安全人员分析。

  njRAT又称Bladabindi,是一个插件化的远控木马程序,由于木马简单易学,大大降低了利用门槛,在该团伙的恶意利用过程中,我们总结出以下特点:

  • 恶意载荷层层加密存储
  • 解密流程可控
  • 代码混淆,做了较强anti reverse
  • 全局字符串加密存储
  • 具备勒索软件能力(新功能)
  • 盗取数字货币(新功能)

  此外,我们在后续的追踪关联过程中,发现该团伙的历史行为,均为通过高交互强社工技巧配合钓鱼邮件传播恶意软件,且目标均为银行,税务等机构,本次我们捕获到的样本相较以往更多的利用了漏洞、低交互攻击技巧进行样本落地。

  alt

0x01 技术分析

  DDE是Inter-Process Communication(进程间通信-IPC)机制下的一种遗留功能,最早可以追溯到1987年,它可以与一个由其他基于Microsoft Windows程序所创建的文档建立一条动态数据交换(DDE)链接。在office场景下,除了漏洞,宏之外。DDE也是一种常用的载荷投递方式。

  DDE常用的攻击方法,是嵌入DDEAUTO对象,例如:

  {DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe"}

  与Powershell结合,可以进行远程载荷下载,恶意代码解码释放,远程命令执行等。因为DDE的危险性,微软在去年12月,在office中禁用了DDE协议。

  本次样本是一个excel文件,请求更新通过DDE协议执行msiexec远程下载并运行恶意载荷。

  alt

  alt

  首先执行的文件为memo.msi文件,在临时目录继续释放下一层载荷运行,里面包含一个Base64编码的C#代码,转码后对代码动态转换为程序集,使用Invoke()加载。运行后会再次释放一段Payload进行加载运行,经过两次释放,恶意代码主体开始运行。

  具体释放流程如下:

  1、通过DDE执行下载恶意载荷并释放至“C:\Users\ADMINI~1\AppData\Local\Temp\mome.msi”执行。

  alt

  2、在临时目录继续释放下一层载荷运行。

  alt

  3、解密通过BASE64编码的C#代码动态转换为程序集后将自身资源内数据解密加载进入下一层载荷。

  alt

  4、读取自身文件的资源通过特定算法解密,得到Stub.exe(病毒主体)与adderalldll.dll(注入功能DLL)。

  alt

  5、添加开机启动项后通过加载adderalldll.dll(注入功能DLL)将Stub.exe(病毒主体)注入到RegAsm.exe(傀儡进程)运行。

样本流程图

样本释放:

alt

病毒执行:

alt

  • 主要功能概述
  • 计划任务建立及删除
  • 获取主机信息
  • 注册表操作
  • USB设备感染
  • 键盘记录
  • 获取当前窗口Tittle
  • 获取运行进程信息
  • 检测杀软及运行环境
  • 比特币行为监控
  • 勒索
  • DDOS(slowloris和ARME)
  • 向远程C2发送数据
  • 接收C2指令,进行指定操作

C2指令

偏移    指令名                            行为
3052    "TextToSpeech"                    朗读文本
2436    “delchrm”                        清除Chrome Cookie
2608    “taskmgrON”                        启动任务管理器
2812    “OpenWebpageHiddenHidden模式打开iexplore.exe
2698    “MonitorOFF”                        关闭显示器
2188    “RwareDEC”                        勒索
2722    “NormalMouse”                    恢复鼠标控制
2170    “chngWLL”                        更换壁纸
3088    “kl”                                键盘记录及获取当前窗口tittle
2904    “msgbox”                            弹出消息框
2380    “ddos.slowloris.start”                启动slowloris
2652    “DisableCMD”                        禁用CMD
2208    “RwareSU”                        展示勒索信息
2424    “seed”                            进行种子下载
2566    “HideBar”                        隐藏托盘
2994    “restartme”                        重启电脑
2454    GiveMeAdmin                        Bypass UAC
2502    “BitcoinOFF”                        关闭比特币相关进程监控
2584    “taskmgrOFF”                        关闭任务管理器
2526    “EventLogs”                        删除记录的信息(键盘记录及窗口Tittle)
2940    “antiprocstop”                        停止检测杀软
3016    “shutdownme”                    关机
2748    “ReverseMouse”                    劫持鼠标
2968    “spreadusbme”                    感染USB设备
2776    “ClearClp”                        清空剪切板
2630    “EnabeCMD”                        启用CMD
2676    “MonitorON”                        打开显示器
2796    “SetClp””                            设置剪切板
2306    “ddos.ARME.stop&”                停止ARME
2338    “ddos.slowloris.stop(”                停止slowloris
2850    “OpenWebpage”                    打开程序
2272    “ddos.ARME.start”                    使用ARME进行DDoS
3040    “botk”                            定时任务创建及删除
2480    “BitcoinON”                        比特币相关进程监控
“Rware”                            进行加密
2254    “pcspecs”                        发送系统信息
3096    “prof”                            注册表操作(增,删)                
2548    “ShowBar”                        显示托盘
2876    “BlockWeb”                        劫持网站(host方式)
2920    “antiproc”                        启动检测杀软进程
2226    “searchwallet”                        检测系统中安装的比特币钱包并发送给C2
7554    “PLG”                            检测插件并使用C2进行配置

技术细节

  样本属于njRAT家族,使用C#编写生成。当成功感染目标后,样本自身copy到主机中进行驻留(样本最初在内存中运行),并添加计划任务常驻系统。

  alt

  alt

  样本做了混淆,关键部位的参数和字段都进行了加密。首先进行解密,解密后相关位置的内存为:

  alt

  可以编写脚本进行字段查询,或者批量解密字段。

  样本运行时,根据运行状态,会开启以下几个主要线程:

  • MyAntiProcess(检测杀软)
  • Bitgrb(监控比特币应用)
  • CHuNbRc6NBDgA1N5fN.RLSH5Jqs2M.WRK(键盘及窗口tittle记录)
  • CHuNbRc6NBDgA1N5fN.C6yF5G7kY(发送数据及接收C2指令)

MyAntiProcess

  MyAntiProcess 主要功能是检测杀软和反调试反沙箱,如果检测一些进程到会尝试进行关闭。

  alt

Bitgrb

  Bitgrb进程启动后,会进行进程扫描,对含有BITCOIN字符串的进程命进行监测。当进行购买或者销售比特币时,会对加密钱包进行跟踪。同时伴有对剪切板内容的一些操作。

  alt

CHuNbRc6NBDgA1N5fN.RLSH5Jqs2M.WRK

  这个函数是进行键盘记录和窗口tittle记录的。每次记录20480个数据。将键盘记录的信息写到注册表中,进行数据中转。

  alt

  alt

  alt

CHuNbRc6NBDgA1N5fN.C6yF5G7kY

  C6yF5G7kY分为三个部分,第一个是循环发送主机信息,其中包括:

  • 系统名称
  • 用户名
  • Windows版本(64位/32位)
  • 网络摄像头(是/否)
  • 活动窗口tittle
  • CPU
  • GPU
  • 内存
  • 磁盘
  • 感染时间

  alt

  第二部分接受C2指令,进行相关操作。

  alt

  C2的指令是通过savage进行分割,并且提取第一部分的hash值进行区分。

  alt

  第三个是提供一个Socket.send接口,向C2发送一些信息。函数名为ISqOs4Ltj。传入一个字符串,会将其信息发送给C2。

  alt

  关于C2的信息:

  主机名: apache202[.]duckdns[.]org

  端口:7752

  C2的信息,位于:

  alt

  进行Tcp连接的位置为:

  alt

执行的两种方法

  样本中执行的方法可以分为两种,一个是使用Interaction.shell

  alt

  另外一种是使用thread.start()进行执行操作

  alt

勒索

  勒索主要的指令有三个RwareDEC,RwareSU,Rware。

  Rware为加密模块,采用AES进行加密,主要是对拓展名.lime的文件。

  alt

  alt

  在此随机生成一个字符数组,Lime将输出字符串放在%AppData%\ Microsoft \ MMC \hash位置

  alt

  并且会对界面输出勒索信息:

  alt

U盘感染

  样本有U盘感染的行为,首先检测主机上的磁盘盘符,之后会对检索到的磁盘盘符递增一个,进行文件复制。如果只有C,D盘,则在复制目录数组返回C,D,E,因为插入优盘时盘符自增,所以达到传播到U盘的目的。

  alt

  alt

Bypass UAC

  样本中有一个提权操作,使用了注册表劫持来Bypass UAC。

  alt

0x02 样本关联分析

  从顶级域名上来看:这是个动态域名,其顶级域名注册人与本次事件并无关联。

  我们根据C&C指向的IP 185.208.211.142发现:

  历史解析域名:

  alt

secureserver202[.]duckdns[.]org

  我们在HYBRID沙箱中发现了一个样本与该域名有关联:

  https://www.hybrid-analysis.com/sample/9a76ac2c893154592a09a179e5af2c86c8871265d009014bfb5ab25fabdb448a?environmentId=120

  从沙箱的报告中得知,该样本功能与本文中所提到的样本功能类似,但他会分别连接两个服务器:181[.]215[.]247[.]31、185[.]208[.]211[.]142。与我们发现的样本不同的是C&C端口为25255。

  根据IP:181[.]215[.]247[.]31我们在360威胁情报中心获得他的历史关联信息:

  alt

  根据关联信息我们得知该团伙还有个域名:sandeeprecruit[.]duckdns[.]org

  目前该域名A记录解析:91[.]192[.]100[.]26

  alt

  alt

  根据VT的信息来看,该团伙的样本至少在2月24日就开始在活跃。

  alt

  alt

  alt

  三台机器开放的服务犹如克隆一般,不过根据样本获知的C2端口(2404、25255、7752、1933)均已关闭。

anotis[.]publicvm[.]com

  在该域名下我们发现了两个IOC样本:

  8cabb48e50d72bcc315bc53a5ab62907dae22f68d08c78a5e7ed42270080d4d1

  21e16f82275a9c168f0ce0d5c817cdbbc5d6d7764bb2e2ab8b63dff70f972600

  而通过这两个样本我们找到了由proofpoint在今年3月23日发布的分析报告:https://www.proofpoint.com/us/threat-insight/post/tax-themed-email-campaigns-steal-credentials-spread-banking-trojans-rats-ransomware

  报告中指出:该样本以税收为主题通过电子邮件传播银行木马、RAT和勒索软件,其利用方式与本文中所说样本类似。

anotiz[.]erlivia[.]ltd

  目前该域名解析的IP地址:198.54.117.200

  通过威胁情报我们得知:

  alt

  该团伙很有可能利用过或者正在利用该服务器通过邮件传播恶意载荷。

  根据他们之间的关系,最终我们总结了一张图:

  alt

  上图数据来源:360NetLab

0x03 IOC

filename/url hash
apache202[.]duckdns[.]org:7752 N/A
hxxp://calogistics[.]ga/memo[.]msi N/A
bill_06_13_2018.xls 4DE8A3637E2E6127AA0CDA56A9EE406F59B64CAB
memo.msi EB02F1A546C9ADD107D0F3AD85726387A742F204
Binary.exe E99F9426B2D1239FFEC43AE4371B6738C5897D81
payload.bin 51F361FA7F492E560F31824FB9836CD59B67D37C
adderalldll.dll CCA96E199E144EAAA2E4C7300081E36BDFB0BB0B
Stub.exe 2E7D6F6B4EEA61EE1334CECC539E5F9298179EA2

0x04 总结

  njRAT这个木马简单易学,在网上随便搜搜就有一大片配置木马或做免杀的文章教程,且他强大的功能完全可以满足犯罪的需要,所以近年来该家族的木马在互联网上非常的活跃,我们在分析完以后总结出以下几点:

  1、勒索

  2、数字货币盗取

  3、键盘记录

  4、自动感染USB设备

  5、检测杀软及反调试

  6、远程控制

  7、劫持HOST

  8、恶意载荷加密混淆

  9、字符串加密

  10、代码混淆

  11、注入傀儡进程运行

  我们在分析过程中发现该样本在利用傀儡进程运行时,注入完成后存在兼容性问题,可能需要在指定环境中才可以成功执行,所以我们推断这可能是一次定向攻击,并非大范围攻击,我们溯源后得知该团伙至少在今年2月24日就开始在活 跃,并且目前他的服务器还保持可连通状态,根据360安全大脑-大数据提供的相关信息来看,目前还没有发现中国的计算机受到该团伙的攻击。

0x05 安全建议

  1、请不要接收或者打开任何陌生人通过邮件或者聊天软件等发来的任何文档。

  2、下载安装“360安全卫士”并保持所有防护开启状态并定时检查软件更新。

0x06 时间线

2018-06-26 360CERT完成分析报告

0x07 参考链接

  1. https://www.proofpoint.com/us/threat-insight/post/tax-themed-email-campaigns-steal-credentials-spread-banking-trojans-rats-ransomware