概述
和以前的TransparentTribe流程类似(https://www.yuque.com/p1ut0/qtmgyx/gyaf8b),属于新样本,但是没有更新攻击手法。
样本分析
诱饵信息
原始样本为xls文件,样本名称为RAKESH JAYKRISHNA.xls,7月5日从印度上传。
样本MD5:66558073be686a57514dbc72e56fd41c
诱饵文件包含了一段恶意宏代码和一个数据窗体,当受害者打开并启用宏之后,宏代码将会读取窗体中的数据并解码加载。
窗体中的数据为十进制编码的PE文件二进制流,宏代码读取之后将其转换为byte
程序将PE文件解码并释放到%ALLUSERSPROFILE%\HDM Media\文件夹下并命名为rdvimainta.exe,最后通过Shell加载该PE。
rdvimainta.exe
释放的rdvimainta.exe是一个由C#编写的加载器。
程序入口进去的Main函数是一个空壳,真实的恶意代码是OnCreateMainForm函数中实例化类时的构造函数
Form1的构造函数如下,恶意代码从这里开始执行:
在Form1_Load函数中调用UnShohrp函数释放新的PE文件
在UnShohrp函数中,程序首先是硬编码了两个路径并拼接到%application%后面
接着程序判断%Templates%目录下是否存在wis07和wis08文件,存在则删除。判断是否存在data.zip文件,若不存在则读取_data资源并写入到data.zip中
接着,程序将data.zip解压到当前目录并删除zip文件
根据 Environment.OSVersion 返回的版本信息判断后续加载wis07文件还是wis08文件
获取wis07或wis08的文件流并转换为byte,接着程序用同样的方法判断是否存在hdrmiprcav.zip,若不存在则将刚才转换的数据写入到”C:\ProgramData\Clasic Player\hdrmiprcav.zip” ,接着解压该zip文件到当前目录并删除zip包。最后Process.Start加载释放的hdrmiprcav.exe
CrimsonRat
解压执行的hdrmiprcav.exe就是TransparentTribe常用的远控组件CrimsonRat。
配置信息中定义了两个ip地址,其中一个是硬编码,一个是以ASCII形式存储。
CrimsonRat入口代码在Form1_Load函数中,程序会调用core_start函数,在core_start函数中通过计时器的方法循环调用proc_loop函数以发起网络请求
在网络请求之前,程序会将预定义的main_tp替换为下面main_cons转换出来的值,也就是说上面图中的两个ip,第一个是用于迷惑分析人员的,下面那个才是真实ip,因此该程序请求的真实C2是:
165[.]86.105.43:6588
如果成功与C2建立连接,则调用process_code函数执行后续功能
获取服务器返回值
若服务器返回值不为空,则以 - 符号进行分割
指令分割之后,程序会在分割出来的指令中插入 字符 ‘7’ 并进入switch case,根据服务器返回值不同执行不同指令
部分指令功能如下
获取并拼接主机进程信息
将当前进程设置为开机自启动
下载文件
获取桌面屏幕大小
遍历文件信息
屏幕截图
获取磁盘大小
删除指定文件
获取文件信息
遍历文件夹信息
获取主机基本信息
执行远程命令
移动文件
遍历文件夹下的文件