安全运营内刊 您所在的位置:网站首页 vnc自适应屏幕 安全运营内刊

安全运营内刊

2023-05-12 14:44| 来源: 网络整理| 查看: 265

01 前言

QakBot,也称为QBot、QuackBot和Pinkslipbot,入侵后会监视金融业务、自我传播和安装勒索软件等。该恶意软件家族已经活跃了多年。时至今日QakBot仍在不断增加功能,如键盘记录、后门和逃避检测等。不仅如此,QakBot还能够窃取电子邮件,攻击者可以利用这些信息向受害者进行有针对性的钓鱼攻击。

02 QakBot 感染链

QakBot主要通过垃圾邮件感染受害者,电子邮件附件包含Microsoft Office文档(Word、Excel)或带有密码保护的压缩文件。包含宏的文档会提示受害者打开附件,在某些情况下,电子邮件中包含指向传播恶意文档的网页的链接。QakBot还可以通过已感染机器将自身payload传播到其他受害者的机器。

最近 QakBot 版本(2020-2021 变种)的感染链如下:

● 用户打开恶意附件/链接,并被诱导单击“启用内容”。

● 执行恶意宏。一些变体通过“GET”请求“PNG”,但该文件实际上是一个二进制文件。

● 加载的payload(stager)包括加密资源模块。其中一个加密资源具有DLL二进制文件(加载器),该文件在运行时解密。

● “Stager”将“Loader”加载到内存中,内存在运行时解密并运行payload。

● payload与C2服务器通信。

03 典型的 QakBot 功能

目前在野观察到的典型 QakBot 恶意活动包括:

● 感染主机信息收集;

● 创建计划任务(权限提升和持久化);

● 凭证收集:凭证转储(Mimikatz,exe 访问)、密码窃取(来自浏览器数据和 cookie)、针对网络银行链接(网络注入);

● 密码暴力破解;

● 注册表操作(持久化);

● 创建恶意软件副本;

● 通过进程注入隐藏恶意进程。

04 C2 通信

QakBot恶意软件的资源中包含150个硬编码IP地址列表,其中大多数属于其他受感染的系统,这些系统被用作向其他代理或realС2转发流量。

被感染机器与С2的通信是带有Base64编码数据的HTTPS POST请求。数据用RC4算法加密,静态字符串“jHxastDcds)oMc=jvh7wdUhxcsdt2”和随机16字节序列用于加密,数据本身是JSON格式。

JSON格式的原始消息

带有加密 JSON 的 HTTPS POST 请求

通常情况下,在感染之后机器人会发送 "PING "信息、"SYSTEM INFO "信息和 "ASK for COMMAND "信息,而C2则会回复 "ACK "和 "COMMAND "信息。如果C2推送了额外的模块,机器人会发送一个 "STOLEN INFO "消息,其中包含模块窃取的数据。

● PING "信息--机器人向C2发出带有 "BOT ID "的请求信息,以检查С2是否处于活动状态。

“PING”消息

● ACK'消息 - C2响应消息,字段 "16 "包含受感染系统的外部IP地址,这是唯一有价值的信息。

“ACK”消息

'SYSTEM INFO'信息--僵尸向C2请求信息,并收集了关于受感染系统的信息。除了一般的系统信息,如操作系统版本和位数、用户名、计算机名称、域名、屏幕分辨率、系统时间、系统运行时间和僵尸运行时间外,它还包含以下实用程序和WMI查询的结果。

SYSTEM INFO' 消息– 向 C2 发送机器人请求消息,其中包含收集的有关受感染系统的信息。除了操作系统版本和位数、用户名、计算机名称、域、屏幕分辨率、系统时间、系统正常运行时间和机器人正常运行时间等一般系统信息外,它还包含以下实用程序和 WMI 查询的结果:

arp -a

ipconfig /all

net view /all

cmd /c set

nslookup -querytype=ALL -timeout=10 _ldap._tcp.dc._msdcs.{DOMAIN}

nltest /domain_trusts /all_trusts

net share

route print

netstat -nao

net localgroup

qwinsta

WMI Query ROOT\CIMV2:Win32_BIOS

WMI Query ROOT\CIMV2:Win32_DiskDrive

WMI Query ROOT\CIMV2:Win32_PhysicalMemory

WMI Query ROOT\CIMV2:Win32_Product

WMI Query ROOT\CIMV2:Win32_PnPEntity

“SYSTEM INFO”消息

● ASK for COMMAND'消息

机器人向C2发出的命令请求消息。在'SYSTEM INFO'消息发出后,机器人开始向C2请求执行命令。其中一个主要字段是 "14" - SALT。这个字段是唯一且在每个请求中都会改变的。目的是用来防止机器人被劫持或接管。在收到这个请求后,С2在签名程序中使用SALT,并将签名放在响应中,因此可以检查签名的数据。机器只执行有效且已签名的命令。

“ASK for COMMAND”消息

一旦与C2服务器建立了通信,QakBot就会下载和使用额外的模块来执行恶意操作。附加模块因样本不同而不同,可能包括Cookie抓取器"、"电子邮件收集器"、"凭证抓取器 "和 "代理模块 "等等。

这些模块可能是由开发者自己编写的,也可能是从第三方资源库中借用和改编的。例如,有些旧样本可能会使用Mimikatz进行凭证转储。

下面是在研究中发现的一些模块。

05 附加模块

● Cookie Grabber

从主流浏览器(Edge、Firefox、Chrome、Internet Explorer)收集cookie。

● Hidden VNC

允许攻击者连接到受感染主机并与其进行交互,而真实用户不知情。

● Email Collector

尝试在受感染主机上查找 Microsoft Outlook,然后遍历软件文件夹并递归收集电子邮件。最后将收集到的电子邮件泄露到远程服务器。

● Hooking module

挂钩一组硬编码的 WinAPI 和(如果存在)Mozilla DLL Hooking 用于执行 Web 注入、嗅探流量和键盘数据,甚至阻止某些域的 DNS 解析。挂钩的工作方式如下:QakBot 将挂钩模块注入到适当的进程中,该模块从硬编码集中找到函数并修改这些函数,使其跳转到自定义代码。

● Passgrabber module

从各种来源收集账户名和密码,如Firefox 和 Chrome 文件、Microsoft Vault 存储等。该模块不使用 Mimikatz,而是使用自己的算法来收集密码。

● Proxy module

试图确定哪些端口可以使用UPnP端口转发和第2级С2查询来监听。比较当前和旧的代理加载器版本时发现:攻击者决定从二进制文件中删除 cURL 依赖项,并使用自己的代码执行所有 HTTP 通信。除了删除 cURL 之外还删除了 OpenSSL 依赖项,并将所有功能嵌入到一个可执行文件中。即不再有代理加载器或代理模块,现在是一个单一的文件。

在尝试确定端口是否开放和机器能否作为C2二级代理之后,代理模块还启动了一个多线程的SOCKS5代理服务器。SOCKS5协议被封装成QakBot代理协议,由以下部分组成。QakBot代理命令(1字节),版本(1字节),会话ID(4字节),数据包总长度(dword),数据(数据包总长度-10)。收到和发出的数据包存储在缓冲区内,可以一个一个地接收/发送,也可以在一个TCP数据段中的多个数据包中接收/发送(流)。

5.1代理模块执行流程

1、与 C2 通信,尝试使用 UPnP 转发端口并确定可用端口并将其报告给 C2。这里使用的常用 C2 通信协议是 HTTP POST RC4 加密的 JSON 数据。

2、下载 OpenSSL 库。QakBot 不保存下载的文件,而是测量下载速度并删除接收到的文件。

3、设置 stager 使用command 37(更新配置)/module 274(代理)接收的外部 PROXY-C2 连接。

5.2 QakBot 代理命令

从 C2 解析的数据包图片

跟踪单个代理

06 参考资料

https://securelist.com/qakbot-technical-analysis/103931/

https://www.freebuf.com/articles/network/228047.html

声明:

1.本文档由天融信安全团队发布,未经授权禁止第三方转载及转投。

2.本文档所提到的技术内容及资讯仅供参考,有关内容可能会随时更新,天融信不另行通知。

3.本文档中提到的信息为正常公开的信息,若因本文档或其所提到的任何信息引起了他人直接或间接的资料流失、利益损失,天融信及其员工不承担任何责任。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有