攻击
如下是一封礼品卡的信,信中还附有一个USB设备。但是该USB设备实际上含有恶意软件。
图 1. 含有恶意USB设备的礼品卡
分析
研究人员查看设备的相关信息,发现有打印的“HW-374”信息,谷歌搜索发现shopee.tw一个“BadUSB Leonardo USB ATMEGA32U4”。
图 2: 与收到的USB设备匹配的网站图片
该设备使用了Arduino微控制器ATMEGA32U4,被变成用来模拟USB键盘。因为PC设备默认是相信USB键盘设备的,插入电脑后,键盘模拟器就会自动注入恶意命令。
为了快速获取UBS的payload,研究人员将其连接到一个air-gapped的笔记本,安装的是Ubuntu系统,研究人员分析发现了以下payload。
Powershell Payload
图 3. 使用VIM拦截Payload,发现一个混淆的PowerShell脚本
解混淆PowerShell命令一个简单的密文替换。
图 4.使用CyberChef解混淆的PowerShell命令
解混淆的字符串中有一个从hxxps://milkmovemoney[.]com/st/mi.ini处下载第二阶段PowerShell代码的命令。
图 5. 下载的第二阶段Powershell代码
图6 下载的脚本
第二阶段PowerShell执行流如下:
· 复制wscript.exe 到 %AppData%\Microsoft\Windows\wipre.exe;
· 解码JS命令,并保存为prada.txt;
· 用命令“cmd.exe /c wipre.exe /e:jscript prada.txt”执行prada.txt;
· 显示伪造的消息框警告。
图 7. 伪造的消息框警告
Javascript Payload
保存为prada.txt的JS代码是第3阶段payload,使用Windows内置的脚本wscript.exe来执行。
图 8. 保存为Prada.txt的反混淆的JS代码
JS是用简单变量替代混淆的。脚本的主要功能是以唯一ID来注册受感染的主机给C2服务器,然后接收额外的JS代码,JS代码用eval()函数。
下面是JS代码的执行流:
1、获取当前UTC时间生成唯一ID;
2、检查脚本是否位于%AppData%\Microsoft\Windows文件夹中,如果并在该文件夹中就删除;
3、延迟2分钟执行。
4、生成含有以下信息的数据:
· group : f1 (硬编码)
· rt : 2 (硬编码)
· secret : secret hash (硬编码)
· time : 120000
· uniq_id : current UTC milliseconds
· id : MAC address and hostname (使用WMI查询)
5、URL编码该数据并用随机生成的key来XOR编码数据;
6、将生成的XOR key加入到编码的数据中
7、合成一个含有参数的HTTP POST body:
kbaxmaconhuc=
8、合成一个 URL 路径:
https:///
9、使用下面的HTTP请求header以HTTP POST raw body发送数据到C2 url:
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/50.0' Content-Type: %application/x-www-form-urlencoded'
10、C2服务器响应编码的JS代码
11、使用eval() 解码和执行JS代码。
在该事件中,C2服务器是活动的,会响应如图9所示编码的数据。编码的数据用XOR key来解码。数据和key都是限定在“&_&”或URL编码的“%26_%26”。解码的数据中会发现一个将会在受感染的主机中执行的JS代码。
图 9: 用编码的数据响应C2服务器
JS代码在解码时,会发现一个从受感染主机中收集系统信息的代码。
图 10: 解混淆的JS代码,是C2服务器发送的代码的一部分
收集后发送给C2服务器的系统信息包括:
· 用户名;
· 主机名;
· 用户的系统权限。
使用WMI查询获取以下信息:
· 进程所有者;
· 域名;
· 计算机型号;
· 操作系统信息;
· 操作系统名;
· OS build;
· OS版本;
· 内存容量;
· 可用内存;
· 操作系统注册的用户;
· 操作系统注册的组织;
· 操作系统序列号;
· 安装日期;
· 操作系统架构;
· 操作系统产品类型;
· 语言代码;
· 时区;
· 用户数;
· UAC级别权限;
· Office和Adobe acrobat安装情况;
· 运行的进程列表;
· 受感染的主机运行在虚拟环境中。
收集的信息发送给C2服务器后,主JS代码会进入一个2分钟的休眠循环,然后从C2服务器获取新的命令。完整攻击流如下所示:
图 11: 攻击流
总结
USB设备随处可见,而且被广泛使用,一些人认为USB设备是安全无害的。但是USB控制器芯片可以重新编程,这类设备可以被用来发起攻击和感染用户计算机。而这类USB设备被安全领域专业人员广泛使用,风险不言而喻。这篇文启示我们:不要相信此类设备。
文章后续更新:发布这篇文章后,我们已经收到多方面的确认,该活动与FIN7 APT活动的IOC匹配。FIN7是一个网络犯罪集团,至少从2015年起就开始瞄准酒店和零售业。
本文翻译自:https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/would-you-exchange-your-security-for-a-gift-card/如若转载,请注明原文地址