在上个月,网络安全公司Proofpoint的研究人员观察到黑客组织TA505发送了大量的垃圾电子邮件,旨在传播一种名为“Get2”的下载程序,进而在受感染计算机下载并安装远控木马。
在这些远控木马中,我们不乏看到一些“老朋友”,如FlawedGrace、FlawedAmmyy和Snatch,但也迎来了一个“新朋友”——名为“SDBbot”的新型远控木马。
TA505近期活动概述
9月9日,Proofpoint公司的研究人员观察到TA505开始使用Get2作为初始下载器。
起初,Get2下载的有效载荷大多为FlawedGrace和FlawedAmmyy,但从10月7日开始,一种名为“SDBbot”的新型远控木马开始被下载。
除新的远控木马外,TA505在其他方面也进行了创新:
- 发送的垃圾电子邮件数量大多为每天数万或数十万封,但有时会达到数百万封;
- 针对金融机构与针对其他垂直领域的活动交替进行;
- 攻击目标列表新增加了希腊、德国和美国乔治亚州;
- 为Get2下载程序使用了新的Microsoft Office宏。
图1.9月和10月与Get2和SDBbot联系在一起的活动
9月活动分析
9月9日,Proofpoint公司的研究人员观察到数以万计携带Microsoft Excel附件的垃圾电子邮件被发送给了希腊、新加坡、阿联酋、美国乔治亚州、瑞典、立陶宛和其他一些国家的金融机构。
电子邮件大都使用了如下主题和附件名称:
- 主题“HPE INV-02 - Invoice and documents”,附件“hpe_s_hp-inv_02[.]xls”;
- 主题“Need to Apply”,附件“dc123456[.]xls”;
- 主题“Παραστατικό”,附件“business cloud invoice no142 09-09-2019[.]xls”;
- 主题“ΣΤΕΛΙΟΣ ΠΡΟΤΙΜΟΛΟΓΙΟ”,附件“προτιμολογιο[.]xls”。
图2.恶意Microsoft Excel附件示例(英语版)
图3.恶意Microsoft Excel附件示例(希腊语版)
但奇怪的是,除了Get2被安装,研究人员并没有观察到任何后续有效载荷被下载及安装。
9月20日,Proofpoint公司的研究人员观察到数十万封携带有Microsoft Excel和ISO附件的垃圾电子邮件被发送给了美国和加拿大的一些企业。
电子邮件大都使用了如下主题和附件名称:
- 主题“Reçu de paiement (facture 12345) ”,附件“facture_no_432478_v2[.]xls”;
- 主题“Account opening form”,附件“formulaire_01234.iso" (ISO contains an Excel file such as"0920_0123456[.]xls”。
被安装的下载程序仍然是Get2,但此次它下载并安装了FlawedGrace。
图4.垃圾电子邮件示例(ISO附件)
图5. 恶意Microsoft Excel附件示例(法语版本)
10月活动分析
10月7日,垃圾电子邮件不再携带恶意Microsoft Excel附件,而是将恶意短连接添加在正文中,目标是美国企业。
点击短链接,会被重定向到一个登陆页面,而登录页面又链接到一个名为“request[.]xls”的恶意Microsoft Excel文件。
也是从这时开始,Get2下载程序开始下载SDBbot。
图6.带有恶意短连接的垃圾电子邮件示例
图7.以Dropbox为主题的登陆页面
图8.恶意Microsoft Excel文件,旨在诱使用启用宏
恶意Microsoft Excel文件分析
Get2(xl\embeddings\oleObject1[.]bin)作为对象被嵌入在恶意Microsoft Excel文件中,通过宏提取并执行:
- 复制恶意Microsoft Excel文件到%TEMP%目录;
- 使用“ReadAndWriteExtractedBinFile”函数提取oleObject1[.]bin中的DLL,并复制到%APPDATA%目录;
- DLL加载LoadLibraryA,导出的函数(Get2)由宏运行。
执行所有这些操作的宏代码如下:
图9.与Get2下载程序结合使用的宏代码片段
Get2下载程序分析
Get2是一种采用C ++编写的下载程序,在9月和10月的活动中使用了不同的命名,如Amway、Hadno、Seven和Wakeup。
它的功能之一是收集基本的系统信息,并通过HTTP POST请求将其发送到硬编码的命令和控制(C&C)服务器:
图10.C&C请求示例
POST数据包含以下参数:
- D—计算机名;
- U—用户名;
- OS—Windows版本;
- PR—进程列表。
收到的C&C服务器的响应示例如下:
图11. C&C服务器响应示例一
图12. C&C服务器响应示例二
SDBbot远控木马分析
远控木马SDBbot同样采用C++编写,由三个部分组成:安装程序组件、加载程序组件和RAT组件。
安装程序组件
安装程序组件将RAT组件存储在注册表中,并为加载程序组件建立持久性。
在Proofpoint公司研究人员分析的样本中,安装程序组件被命名为“SdbInstallerDll[.]dll”,大部分字符串和数据都经过了XOR编码处理(使用硬编码的128字节密钥)。
根据用户权限,安装程序组件会在HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER中的“\SOFTWARE\Microsoft\<随机3字符注册表子项>[随机1字符值名称]”处创建一个注册表值,而二进制Blob就存储在该值处,并具有如下结构:
- 版权声明(“Copyright (C) Microsoft Corporation.”);
- 加载程序shellcode(作为函数存储在安装程序组件中);
- 由“<来自注册表子项的3个随机字符> 0INIT”组成的字符串;
- 压缩的RAT有效载荷(存储在安装程序组件的“.data1”PE部分中)。
如果bot以常规用户特权运行,则使用注册表“Run”方法建立持久性,加载程序DLL组件将被写入“%APPDATA%\mswinload[.]dll”,并在“Run”子键上添加一个“mswinload”值,以使用rundll32[.]exe执行序数1。
如果bot在Windows 7之前的Windows版本上以管理员权限运行,则使用注册表“mage file execution options”方法建立持久性。加载程序DLL组件将被写入“%SYSTEM%\mswinload0[.]dll”,并为“winlogon[.]exe”添加值“VerifierDlls”。
如果bot在Windows XP或Windows 7上以管理员身份运行,则使用application shimming建立持久性。创建一个shim数据库(SDB),以使用加载程序代码修补services[.]exe,然后使用services[.]exe进行安装:
图13.由SDBbot创建的shim数据库(SDB)示例
值得注意的是,三种方法都需要受感染计算机重启后才能生效。
加载程序组件
在Proofpoint公司研究人员分析的样本中,加载程序组件被命名为“RegCodeLoader[.]dll”,并以“mswinload[.]dll”或“mswinload[.]dll”保存到硬盘上。
它首先会读取存储在注册表中的二进制Blob,并开始执行存储在注册表中的加载程序shellcode,而Shellcode则会解压缩RAT有效载荷,然后加载并执行DLL。
RAT组件
在Proofpoint公司研究人员分析的样本中,RAT组件被命名为“BotDLL[.]dll”。它具有一些典型的RAT功能,如命令shell、录屏、远程桌面、端口转发和文件系统访问。
SDBbot将其C&C存储在纯文本字符串或文件(“ip.txt”)中,通过TCP端口443使用纯文本协议,会话示如下:
图14:SDBbot C&C协议示例
Bot通过发送和接收确认DWORD: 0xC0DE0000来开始通信,然后上传基本的系统信息:
- Ver—恶意软件版本;
- domain—域名;
- pc—计算机名称;
- geo—国家/地区代码;
- os—Windows版本;
- rights—用户权限;
- proxyenabled—是否配置了代理。
收到系统信息后,C&C服务器将以命令DWORD进行响应。
图15.部分使用48字节数据结构的命令
这些命令包括:
2—从C&C获取子命令:
- “cmd”—启动一个cmd[.]exe shell;
- “shutdown_pc”—关机;
- “reboot”—重新启动;
- “sleep utc”—设置休眠时间;
- “video online”—获取现有视频或创建新的视频数据结构;
- “video stop”—在视频数据结构中设置一个“停止”事件;
- “rdpwrap install”—启用RDP;
- “rdpwrap uninstall”—卸载已安装的RDP Wrapper;
- “portforward”—在目标主机和端口以及C&C之间设置代理;
- “run”—通过cmd[.]exe执行命令;
- “runreflective”—从C&C下载DLL,将其注入到新创建的rundll32[.]exe,然后进行加载;
- “keep_bot_online on”—设置一个flag和休眠超时时间
- “keep_bot_online off” —关闭flag并设置休眠超时时间为0。
4—发送数据结构的编号、类型和索引;
5—如果启用了shell或视频录制,则将shell输出或屏幕截图发送到C&C;
11—发送命令shell数据结构的编号、索引和标记;
12—将命令写入shell;
13 / 32—创建一个新的空数据结构,并将其索引发送给C&C;
14—清理并删除现有数据结构;
15—写文件;
23—获取驱动器信息或目录列表;
24—读文件;
25—创建目录;
26—删除文件;
27—清理并删除所有数据结构;
31—尚不明确具体功能。
结论
近两年来,TA505的活动规模开始变得越来越多大,使用过的恶意软件包括下载程序、远控木马、信息窃取程序和银行木马等。
从今年9月份开始,TA505启用了他们的新武器——Get2下载程序和SDBbot远控木马,同时攻击目标也从以往的金融行业扩展到了其他垂直领域。
从目前来看,TA505似乎仍会继续沿着“赚钱”这条道路,一直走下去。