QakBot,也称为QBot、QuackBot和Pinkslipbot,是一款已存在了十多年的银行木马。它于2007年在野外被发现,此后一直在维护和发展,它的主要目的是窃取银行凭证。时至今日,QakBot在功能方面仍在不断发展,拥有更多的功能,如键盘记录、后门功能和逃避检测功能。它还能够窃取电子邮件,以便攻击者利用这些信息向受害者发送有针对性的邮件,引诱受害者打开这些电子邮件。
QakBot感染链
QakBot主要通过垃圾邮件感染受害者,电子邮件附件包含Microsoft Office文档(Word、Excel)或带有密码保护的压缩文件。包含宏的文档会提示受害者打开附件,在某些情况下,电子邮件中包含指向传播恶意文档的网页的链接。它还可以通过已感染机器将QakBot有效负载传播到受害者的机器。
最近QakBot版本(2020-2021变体)的感染链如下:
(1) 用户收到一封带有ZIP附件的钓鱼电子邮件,其中包含一份带有嵌入宏的Office文档或恶意链接。
(2) 用户打开恶意附件/链接,并被诱导单击“启用内容”。
(3) 执行恶意宏。一些变体通过“GET”请求“PNG”,但该文件实际上是一个二进制文件。
(4) 加载的有效负载(stager)包括加密资源模块。其中一个加密资源具有DLL二进制文件(加载器),该文件在运行时解密。
(5) “Stager”将“Loader”加载到内存中,内存在运行时解密并运行有效负载。
(6) 有效负载与C2服务器通信。
典型的QakBot具有如下功能:收集主机信息;创建计划任务;证书获取:凭证转储;密码窃取;
网络注入;密码暴力破解;修改注册表;创建副本;注入进程。
C2通信
QakBot恶意软件的资源中包含150个硬编码IP地址列表,其中大多数属于其他受感染的系统,这些系统被用作向其他代理或realС2转发流量。
被感染机器与С2的通信是带有Base64编码数据的HTTPS POST请求。数据用RC4算法加密,静态字符串“jHxastDcds)oMc=jvh7wdUhxcsdt2”和随机16字节序列用于加密,数据本身是JSON格式。
感染后,机器会发送“PING”消息、“SYSTEM INFO”消息和“ASK for COMMAND”消息,C2会回复“ACK”和“COMMAND”消息。
‘PING’ message:发送 ‘BOT ID’判断С2是否存活
‘ACK’ message:C2响应消息,字段“16”包含受感染系统的外部IP地址
‘SYSTEM INFO’ :向C2发送受感染系统的信息和以下查询结果
- whoami /all
- 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
‘ASK for COMMAND’ :请求C2执行命令,其中一个主要字段是“14”——SALT。此字段唯一,并在每个请求中都会更改。它用于防止受感染机器被劫持或接管。收到此请求后,С2在签名过程中使用SALT,并在响应中放置签名,以便机器可以检查签名数据,机器只执行有效且已签名的命令。
‘COMMAND’ message:当前版本的bot支持24个命令,其中与下载、执行、删除或设置/更新配置值有关。消息包含SALT的签名值(从bot的请求字段“14”获取)、命令ID和模块ID。
如果C2推送模块,则会将Base64编码的二进制文件放入消息字段“20”中。
其他模块
Cookie Grabber:从流行浏览器中手机cookie信息
Hidden VNC:允许攻击者在受感染机器无感状态下连接操作计算机
Email Collector:尝试在受感染的计算机上查找Microsoft Outlook,然后将收集到的电子邮件发送到远程服务器
Hooking module:Hook编码的WinAPI和Mozilla DLL用于执行web注入、嗅探流量、键盘记录、阻止DNS解析
Passgrabber module:从各种来源收集登录名和密码:Firefox和Chrome文件、Microsoft Vault存储等。
Proxy module:使用UPnP端口转发和tier 2С2查询确定哪些端口可用
确定端口可用后代理模块启动多线程SOCKS5代理服务。SOCKS5协议被封装到QakBot代理协议中,该协议由以下部分组成:QakBot代理命令(1字节)、版本(1字节)、会话id(4字节)、总数据包长度(dword)、数据(总数据包长度-10)。通常代理模块命令如下:
C2服务器数据包:
单次代理数据包:
IOC
部分C2服务器地址:
- 75.67.192[.]125:443 24.179.77[.]236:443 70.163.161[.]79:443
- 72.240.200[.]181:2222 184.185.103[.]157:443 78.63.226[.]32:443
- 83.196.56[.]65:2222 95.77.223[.]148:443 76.168.147[.]166:993
- 105.198.236[.]99:443 73.151.236[.]31:443 64.121.114[.]87:443
- 213.122.113[.]120:443 97.69.160[.]4:2222 77.27.207[.]217:995
- 105.198.236[.]101:443 75.188.35[.]168:443 31.4.242[.]233:995
- 144.139.47[.]206:443 173.21.10[.]71:2222 125.62.192[.]220:443
- 83.110.109[.]155:2222 76.25.142[.]196:443 195.12.154[.]8:443
- 186.144.33[.]73:443 67.165.206[.]193:993 96.21.251[.]127:2222
- 149.28.98[.]196:2222 222.153.122[.]173:995 71.199.192[.]62:443
- 45.77.117[.]108:2222 45.46.53[.]140:2222 70.168.130[.]172:995
- 45.32.211[.]207:995 71.74.12[.]34:443 82.12.157[.]95:995
- 149.28.98[.]196:995 50.29.166[.]232:995 209.210.187[.]52:995
- 149.28.99[.]97:443 109.12.111[.]14:443 209.210.187[.]52:443
- 207.246.77[.]75:8443 68.186.192[.]69:443 67.6.12[.]4:443
原文链接:securelist