简介
Blackgear 网络间谍活动也称为 Topgear 或 Comnie,基于 Protux 后门,最早可追溯到 2008 年。攻击目标位于日本、韩国和台湾地区,涉及公共机构、电信行业和高科技公司。比如,2016 年研究人员发现 Blackgear 使用了包括 Elirks 在内的不同恶意软件攻击了日本企业。基于最新的攻击活动,研究人员认为 Blackgear 的运营者拥有良好的组织架构,并且会开发自己的攻击工具。
Blackgear 的一大特点就是会避免被检测,会滥用 blog、microblog 和社交媒体服务来隐藏 C2 的配置。如果 C2 信息嵌入在恶意软件中,那么很容易就会被拦截;与之相比,Blackgear 的攻击者利用社交媒体就可以根据需要迅速修改 C2 服务器信息。这样,攻击者就可以实行下一步攻击或者更长远的攻击。
通过分析 Blackgear 最新攻击活动中使用的 Marade 下载器(TSPY_MARADE.ZTBC)和 Protux(BKDR_PROTUX.ZTBC),研究人员发现了博客和社交媒体发布的加密配置信息,如图 1 所示。这可以说明这些恶意软件工具是同一组织开发的。
图 1. Facebook 上发布的 Marade 加密配置信息
图 2. Blackgear 攻击的感染链
攻击链
为了更形象的描绘 Blackgear 的攻击活动,研究人员将攻击活动使用的攻击和技巧进行了关联分析。
1. 使用诱饵文件或假的安装文件,通过垃圾邮件发送诱骗潜在受害者点击文件。
2. 诱饵文件会提取出 Marade 下载器,释放在机器的 temp 文件夹中,并且将文件大小增加到超过 50M,以绕过传统沙箱的检测。
3.Marade 会检查受感染的主机是否可以连接到网络,还会检查是否安装反病毒软件。
4. 如果受感染的系统能够联网并且没有安装反病毒软件,Marade 就会连接到 Blackgear 控制的公开博客或者社交账号发布的消息来提取加密的 C2 配置。否则 Marade 使用代码中嵌入的 C2 信息。
5. 加密的字符串会伪装成磁力链接来确保恶意流量以避免被反病毒软件检测到。然后,Marade 会解密加密的字符串并从中提取出 C2 服务器的信息。
6.C2 服务器会发送 Protux 到受害者主机并执行。Protux 是一个非常有名的后门,执行时会使用 rundll32 动态链接库(dll),测试主机的网络、从其他博客提取 C2 服务器信息,使用 RSA 算法来生成 session key 并发送信息到 C2 服务器。
Blackgear 的恶意软件攻击会使用 RAR 自提取可执行文件(self-extracting executable,SFX)或 Office VB 脚本来生成诱饵文件。下面是 SFX 文件和最近使用的诱饵文件截图:
图 3. Blackgear 使用的恶意 SFX 文件内容,伪装成 Flash Player 安装器
图 4a. Blackgear 使用的恶意文档
图 4b. VB 脚本执行 Marade 的过程
图 5. Protux 的加密配置和同一博客内的 Marade
Marade 和 Protux 的关系
Marade 和 Protux 的加密配置出现在同一博客中。如图 5 所示,红色区域的字符串作为搜索标签来找出配置信息的位置,橘色区域的字符串是 Protux 会提取出的加密配置信息。
在 Blackgear 之前的攻击活动中,Protux 的配置格式是其他的版本。比如,Protux 的循环会搜索 "++a++" 标签,如图 5 所示;最新版本的 Protux 使用的格式与 Marade 类似,如图 6。
图 6. 博客中的 Protux 的加密配置
对最新版本的 Protux 进行逆向分析可以帮助确定如何解密 C2 信息,具体参见下面的 python 代码。研究人员、系统管理员、信息安全专家等在解密 Protux 的最新版本时都可以使用下面的代码。
import os, sys, datetime, operator, base64def decrypt ( ) :if len ( sys.argv ) != 2:print "Usegae : ./decrypt_protux_magnet.py "sys.exit ( 0 ) str = sys.argv [ 1 ] head = str.find ( "magnet:?xt=urn:bhih:" ) tail = str.find ( "&xl=" ) if -1 == tail:tail = str.find ( "&xl=" ) if -1 == head or -1 == tail:print ( "can ’ t find delimiter" ) sys.exit ( ) b64_data = str [ len ( "magnet:?xt=urn:bhih:" ) : tail ] b64_decode = base64.b64decode ( b64_data ) key = ord ( b64_decode [ 2 ] ) data = b64_decode [ 4: ] output_file = open ( "C2_info", "wb" ) for single_byte in data:output_file.write ( chr ( ord ( single_byte ) ^ key ) ) output_file.close ( ) if name == ‘ main ’ :decrypt ( )
新远程控制器工具
研究人员对 Protux 远程控制器工具样本的源进行了分析。该工具提供 UI 接口来帮助攻击者发送指令并监控被黑的终端主机,还可以在受感染的系统中远程控制 Marade。
图 7a. 控制器提取的 Marade 相关的信息
图 7b. 收集的 Protux 相关的信息
根据控制器的行为,研究人员断定 Marade 和 Protux 是同一个组织开发的。这两个工具在个系统中服务不同的角色,Marade 用于第一阶段攻击,发送被黑的系统信息到 C2 服务器,并等候控制器下发的命令。这样攻击者就可以监控并检查受影响的系统是否是他们感兴趣的。如果感兴趣,就使用 Protux 发起二阶段攻击。Protux 工具可以实时控制攻击者和后门之间的通信,下面是 Protux 的一些组件和作用:
· FileManage – 列出系统的所有驱动和文件夹
· ProcManage – 列出被黑主机的所有进程、模块、线程和端口
· ServiceManage – 列出被黑主机的所有服务
· RegManage – 列出被黑主机的所有注册表
· ScreenManage – 截图
· ShellManage – 创建 shell
Protux:新技巧
Protux 是一个比较古老的后门,第一版的开发时间是 2005 年,距今已有 13 年时间,使用 DLL 注入来执行常规程序。基于这些行为,我们可以从使用的下载器和诱饵文件来进行模式映射。触发器的格式为:
%system32/rundll32.exe .
从 Protux 的历史我们可以看出一些变化:输出名和运行原理,具体如下:
通过对 Protux 的关联分析,研究人员发现其中嵌入了版本号。图 8 中高亮部分就是后门的版本号和加密字符串的时间戳。
Protux 3.7 是最新版本,使用开源编译器 OpenCSP 和 RSA 算法来生成 session key。
图 8. Blackgear 使用的不同版本的 Protux
图 9. 用 OpenCSP 加密的 Protux
应对措施
Blackgear 已经有 10 年的历史了,攻击目标覆盖不同行业。使用的攻击技术可以绕过传统的安全解决方案,比如 Blackgear 的攻击使用了阶段感染。一些前在的受害者可能在攻击的第一阶段并不会注意到,因为第一阶段主要是侦察和收集信息。一旦后门感染完成,就会滥用微博和社交媒体服务来提取 C2 信息。
因此,企业需要应对此类威胁,就需要开发出鲁棒的威胁寻找策略以帮助验证是否存在入侵、威胁和潜在的系统活动。还应建立深度威胁分析和关联机制,从网络到服务器再到终端,获取目标攻击的完整图谱。
留言与评论(共有 0 条评论) |