一波盗取俄罗斯用户银行卡资金的定向攻击样本分析

 

背景

自从2018年10月25日起,360威胁情报中心连续捕获了多个专门盗窃俄罗斯语用户银行卡资金的定向攻击样本。这批定向攻击样本主要利用微软Office CVE-2017-11882漏洞配合钓鱼文档进行定向投递:漏洞文档最终释放的木马程序会不断监控用户的系统剪切板,如果发现具有银行账号或者yandex账号的特征,就会把剪切板里的银行账号替换为攻击者的MasterCard(万事达)银行卡账号。一旦用户通过拷贝的方式输入目标银行账号,则会把钱转向攻击者账户。并且木马程序还会下载一个俄罗斯著名的yandex.ru门户网站提供的键盘管理工具Punto Switcher 3.1,以用于窃取用户的键盘记录,借以躲避杀毒软件的查杀。

 

样本分析

执行流程

捕获到的样本的整个攻击流程如下:

Dropper

360威胁情报中心最初发现的样本是名为логотип.doc的RTF漏洞利用文档,该漏洞利用样本包含一个CVE-2017-11882漏洞的公式对象。漏洞触发后会通过执行mshta hxxp://xnz.freetzi.com/z.hta 命令来实现加载执行hxxp://xnz.freetzi.com/z.hta上的脚本:

Downloader

z.hta

下载执行的hta文件主要功能如下:

z.hta首先会使用tasklist命令结束winword.ext进程,紧接着判断:

%userprofile%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Chromeupd.exe文件是否存在,如果不存在则利用Google Chrome浏览器去下载hxxp://xnz.freetzi.com/1.rar文件:

下载回来的1.rar其实是一个VBS脚本文件,1.rar会被移动到路径:%userprofile%\appdata\roaming\1.vbs,然后使用wscript.exe执行该VBS脚本:

1.vbs

1.vbs脚本执行后会首先下载hxxp://xnz.freetzi.com/1.zip到%APPDATA%/1.zip,接着下载hxxp://xnz.freetzi.com/p.zip 到%APPDATA%/p.zip,并解压到%APPDATA%目录下:

最后把1.zip压缩包里面的1.png移动到启动目录下:

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\Chromeupd.exe来实现恶意样本持久化,最后删除1.zip和p.zip和1.vbs文件。

Backdoor(Chromeupd.exe)

被写入自启动项的Chromeupd.exe是该定向攻击木马的核心功能模块。样本是C#编写的程序,样本运行后会首先注册5个定时器实现其5个主要功能:

  1. 监控系统剪切板里可能出现的银行卡账号并替换成攻击者的MasterCard银行卡账号
  2. 隐藏程序窗口
  3. 安装下载回来的p.png(Punto Switcher 3.1版本,俄罗斯的一个正常的键盘管理工具)
  4. 上传键盘管理工具中的diary.dat到hxxp://apz.freetzi.com/upload.php
  5. 检查是否需要自删除和是否需要获取新的攻击者的银行卡账号

替换剪切板里可能出现的银行卡账号

其中一个定时器功能会判断当前系统剪切板里面的内容是否是字符串,如果是则判断是哪种类型的账号,然后将其中的账号替换为内置的攻击者账号:

其中的判断规则为:当剪切板中的字符串长度为16,则把这个16位的字符串做Luhn算法(见参考[2])校验。如果校验通过,则把剪切板中的字符串替换为内置的MasterCard卡号:

而如果剪切板中的字符串长度在10到17之间,且字符串起始数字是410开头,并且字符串全为数字字符串,则试用内置的yandex账号替换:

而对于字符串中有‘-’或‘ ’分割的情况,同样也会做Luhn算法校验,校验通过则替换为内置同样格式的MasterCard卡号:

隐藏窗口

而当2号定时器执行时,则调用hide()函数实现当前窗口隐藏,之后让该定时器失效:

安装下载的p.png(Punto Switcher 3.1版本,俄罗斯的一个正常的键盘管理工具)

3号定时器首先会创建注册表项:Software\\Yandex\\Punto Switcher\\3.1,并设置Option键值,以用于配置即将要安装的Punto Switcher软件:

接着把%APPDATA%/p.png(第二步1.vbs下载回来的文件)重命名为p.exe后执行。执行30秒后,删除p.exe:

而p.exe是一个自解压文件,里面的包含的文件是Punto Switcher 3.1的应用程序安装文件。该自解压文件运行后,静默安装Punto Switcher 3.1到%APPDATA%/p/目录下,然后启动%APPDATA%\p\punto.exe:

上传键盘管理工具中的diary.dat文件

定时器4会获取定时器3安装的Punto Switcher 3.1软件目录下的diary.dat文件,并且上传到hxxp://apz.freetzi.com/upload.php :

检查是否需要自删除和是否需要获取新的攻击者的银行卡账号

定时器5会向hxxp://apz.freetzi.com/terminate发送请求,当返回yes的时候,就遍历进程把进程名为punto和ps64ldr的进程结束,然后再把%APPDATA%/p/目录(Punto Switcher 3.1的安装目录)删除。最后结束自身进程:

如果返回的不是yes,则请求hxxp://apz.freetzi.com/override_trigger,并检查是否需要替换攻击者的银行卡账号。如果返回yes,则请求hxxp://apz.freetzi.com/override,获得最新攻击者的银行卡账号:

攻击者当前内置的银行卡账号为5106211036145444,内置的yandex账号为410017721321307

攻击者信息溯源

360威胁情报中心通过一些公开渠道校验攻击者的银行卡号后得知,攻击者内置的银行账号为MasterCard(万事达卡)Credit Card,万事达卡(MasterCard)成立于1966年,和VISA并列为全球最大的两大刷卡消费联盟。

通过公开渠道查询攻击者的银行卡账号:5106211036145444,可以得知该卡为万事达信用卡:

 

总结

360威胁情报中心本次监测到的定向攻击并没有发现在国内的受影响者,不过盗号木马类样本一直以来非常活跃,而此次捕获到的盗号木马样本并不会直接盗取用户的卡号/密码,而是通过替换用户剪贴板中的银行卡账号的方式让用户在不知觉中将资金转移到黑客的账户名下。并且还使用了正常软件来获取用户的隐私数据资料,让普通用户很难有所察觉。所以广大用户在银行卡转账前、转账过程中,都要多次确认其账号是否正确。对于电脑里无故增加的软件,也需要十分注意。

目前,基于360威胁情报中心的威胁情报数据的全线产品,包括360威胁情报平台(TIP)、天眼高级威胁检测系统、360 NGSOC等,都已经支持对此类攻的精确检测。

 

IOC

C&C
xnz.freetzi.com
apz.freetzi.com

 

文件MD5 描述
9aca967928da3de8c2ec619026f5fb50 诱饵文件名:логотип.doc
bee1d162463eb8b72b0859a43c578d8e 诱饵文件名:Manual.doc
b324446b9ad4ebc36c4e3d2ab5e964f6 诱饵文件名:Лабораторная работа 5.doc
c00dbb7071dd1d75a374b5890c919d77 Downloader:1.rar(1.vbs)
7740b98568ed72651b300c683dfb61e2 Backdoor:1.png(Chromeupd.exe)
e4a01e57cb448bb4f6b1fc45c0ae083f Punto键盘管理工具自解压包:p.png

 

攻击者账号 描述
5106211036145444 攻击者MasterCard账号
410017721321307 攻击者yandex账号

 

参考

[1].https://yandex.ru/soft/punto/

[2].https://en.wikipedia.org/wiki/Luhn_algorithm

(完)