卡巴斯基:QakBot銀行木馬活動分析報告
概述
QakBot,也被稱為QBot、QuackBot和Pinkslipbot,它是一個已經存在了十多年的銀行木馬。它于2007年被在野發現,之后被其運營團隊不斷地維護和開發。
近年來,QakBot已成為全球流行的銀行木馬之一。它的主要目的是竊取銀行憑證(如登錄名、密碼等),惡意軟件本身也實現了一些功能,如監視金融業務、自我傳播和安裝勒索軟件等,以便從受感染組織中獲得最大收益。
QakBot的功能仍在不斷發展,直到今天,它已經實現了更多的功能和新技術,如鍵盤記錄、后門功能和逃避檢測的技術。值得一提的是,其逃避檢測的技術包括虛擬環境檢測、定期自我更新和加密器/打包器(cryptor/packer)更改。此外,QakBot還試圖保護自己不被分析人員和自動工具分析和調試。
該惡意軟件另一個有趣的功能是竊取電子郵件的能力。這些后來被攻擊者用來向受害者發送有針對性的電子郵件,獲得的信息被用來引誘受害者打開這些電子郵件。
QakBot感染鏈
據了解,QakBot主要通過垃圾郵件活動感染受害者。在某些情況下,電子郵件與Microsoft Office文檔(Word、Excel)或密碼保護的附件一起發送。這些文件包含宏,受害者被提示打開附件,并聲稱這些附件包含重要信息(如發票)。在某些情況下,這些電子郵件包含了分發惡意文件的網頁鏈接。
但是,還有另一種感染載體,即惡意的QakBot Payload通過目標主機上的其它惡意軟件傳輸到受害者的機器上。
最初的感染載體可能會有所不同,具體取決于威脅者認為針對目標組織最有可能成功的方式。眾所周知,各種威脅者事先會對目標組織進行偵查(OSINT),以確定最合適的感染載體。

QakBot 感染鏈
近期QakBot版本(2020-2021變體)的感染鏈如下:
- 用戶收到一封帶有ZIP附件的釣魚郵件,該附件包含嵌入宏的Office文檔、文檔本身或下載惡意文檔的鏈接。
- 用戶打開惡意附件/鏈接并被誘騙點擊 "啟用內容"。
- 執行惡意宏。某些變體對請求“PNG”的 URL 執行“GET”請求。然而,該文件實際上是一個二進制文件。
- 加載的Payload(stager)包括另一個包含加密資源模塊的二進制文件。其中一個加密的資源有DLL二進制文件(loader),該二進制文件后來在運行時被解密。
- Stager 將"Loader "加載到內存中,它在運行時解密并運行Payload。從另一個資源中檢索配置設置。
- Payload與C2服務器進行通信。
- 將ProLock 勒索軟件等其它威脅推送到受感染的計算機上。
QakBot的典型功能
在野外觀察到的典型QakBot惡意活動包括:
- 收集有關感染主機的信息;
- 創建計劃任務(提權和持久性);
- 收集憑證:
1.憑證轉儲(Mimikatz,exe access)*;
2.竊取密碼(從瀏覽器數據和cookies);
3.針對網絡銀行鏈接(網絡注入)*;
- 密碼暴力破解;
- 注冊表操作(持久性);
- 創建自身的副本;
- 進程注入以隱藏惡意進程。
C2通信
QakBot包含一個150個IP地址的列表,被硬編碼到加載器二進制資源中。這些地址大多屬于其它被感染的系統,它們被用作代理,將流量轉發給其它代理或真正的C2。
與C2的通信是一個帶有Base64編碼數據的HTTPS POST請求,數據是用RC4算法加密的。靜態字符串 "jHxastDcds)oMc=jvh7wdUhxcsdt2 "和一個隨機的16字節序列被用來加密。數據本身采用JSON格式。

JSON 格式的原始消息

帶有加密JSON 的 HTTPS POST 請求
通常情況下,在感染之后,bot會發送一個 "PING "消息、"SYSTEM INFO "消息和 "ASK forCOMMAND "消息,而C2則會回復"ACK "和 "COMMAND "消息。如果C2推送了其它模塊,則bot會發送一個包含被模塊竊取的數據的“STOLEN INFO”消息。
1.PING消息:bot向C2發送帶有'BOT ID'的請求消息,以檢查C2是否處于活動狀態。

PING消息
2.ACK消息:C2響應消息,字段 "16 "包含受感染系統的外部IP地址,這是唯一有價值的信息。

ACK消息
3.SYSTEMINFO消息:bot向C2發送請求信息,并收集了關于受感染系統的信息。除了操作系統版本和位數、用戶名、計算機名稱、域名、屏幕分辨率、系統時間、系統運行時間和bot運行時間等一般系統信息外,它還包含以下實用程序和WMI查詢的結果。
- 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 QueryROOT\CIMV2:Win32_BIOS
- WMI QueryROOT\CIMV2:Win32_DiskDrive
- WMI QueryROOT\CIMV2:Win32_PhysicalMemory
- WMI QueryROOT\CIMV2:Win32_Product
- WMI QueryROOT\CIMV2:Win32_PnPEntity

SYSTEM INFO 消息
4.ASKfor COMMAND消息:bot的命令請求信息發送到C2。在"SYSTEM INFO "消息發出后,bot開始向C2請求執行命令。其中一個主要字段是 "14" - SALT。這個字段是唯一的,在每個請求中都會發生變化。它是用來防止bot被劫持或接管的。C2收到此請求后,在簽名過程中使用 SALT 并將簽名放置在響應中,以便bot可以檢查簽名數據。只有有效的、經過簽名的命令才會被執行。

ASK forCOMMAND消息
5.COMMAND消息:C2響應消息與執行的命令。當前版本的bot支持24條命令,其中大部分與下載、執行、投放附加模塊和具有不同選項的模塊配置文件,或設置/更新配置值有關。
這種類型的消息包含SALT的簽名值(從機器人的請求字段 "14 "中獲得)、COMMAND ID和MODULE ID,消息的其它值沒有簽名。在以前的版本中,bot 在感染后立即接收模塊和命令并發送“SYSTEM INFO”消息。現在,C2用一個空命令來響應,大約一個小時,之后C2才會在響應中發送命令和模塊。我們認為,這種時間延遲用于在隔離的受控環境中難以接收和分析新的命令和模塊的情況。

COMMAND C2 響應與空命令
如果C2推送了一些模塊,Base64編碼的二進制文件將放入信息的 "20 "字段。

COMMAND C2 響應,帶有要加載的附加模塊
6.STOLEN INFO消息:發送給 C2 的bot消息,其中包含密碼、帳戶、電子郵件等被盜信息。被盜信息采用 RC4 加密和 Base64 編碼。RC4加密的密鑰是以不同的方式生成的,并且基于受感染的系統 ID(又名 Bot ID)值,而不是像流量加密那樣基于靜態字符串。

STOLEN INFO消息
一旦與C2服務器建立了通信,QakBot就會下載并使用其它模塊來執行其惡意操作。
附加模塊因樣本而異,可能包括:”Cookie采集器"、"電子郵件收集器"、"憑證采集器"和 "代理模塊 "等等。
下面是我們在研究中發現的一些模塊。
附加模塊
Cookie采集器:從流行瀏覽器(Edge、Firefox、Chrome、Internet Explorer)收集 cookie。

Cookie Grabber
HiddenVNC:允許威脅者連接到受感染的機器,并在用戶不知情的情況下與其進行交互。

Hidden VNC
電子郵件收集器:嘗試在受感染機器上查找 Microsoft Outlook,然后遍歷文件夾并遞歸收集電子郵件。最后,該模塊將收集到的電子郵件滲出到遠程服務器。

攻擊者在某個時候分發了電子郵件收集器模塊的調試版本
Hooking模塊:掛鉤一組硬編碼的WinAPI,Mozilla DLL Hooking用于執行web注入、嗅探流量和鍵盤數據,甚至阻止某些域的DNS解析。Hooking的工作方式如下:QakBot將Hooking模塊注入適當的進程,該模塊從硬編碼集中查找函數,并修改函數,使它們跳轉到自定義代碼。

該模塊包含一個加密的DLL列表和bot將掛鉤的函數
Passgrabber模塊:從各種來源收集登錄名和密碼:Firefox 和 Chrome 文件、MicrosoftVault 存儲等。該模塊使用自己的算法收集密碼,而不是像以前的版本那樣使用 Mimikatz。

從不同來源收集密碼的程序
代理模塊:嘗試使用 UPnP 端口轉發和二級C2查詢來確定哪些端口可用于偵聽。比較當前和舊的代理加載器版本發現了一些有趣的事情:威脅者從二進制文件中刪除cURL依賴項,并使用自己的代碼執行所有的HTTP通信。除了刪除cURL,他們還刪除了OpenSSL的依賴項,并將所有功能嵌入到單個可執行文件中,不再有代理加載器或代理模塊,它現在是一個單一的文件。

UPnP端口轉發查詢構建
在嘗試確定端口是否開放和機器能否作為C2二級代理后,代理模塊還啟動了一個多線程的SOCKS5代理服務器。SOCKS5協議被封裝成QakBot代理協議,由以下部分組成:QakBot代理命令(1字節)、版本(1字節)、會話ID(4字節)、數據包總長度(dword)、數據(數據包總長度-10)。傳入和傳出的數據包存儲在緩沖區中,可以逐個接收/發送,也可以在單個TCP數據段(流)中的多個數據包中接收/發送。
通常代理模塊的執行流程如下:
1.與C2通信,嘗試用UPnP轉發端口,確定可用的端口并報告給C2。這里通常使用的C2通信協議是HTTP POST RC4-ciphered JSON數據。
2.下載OpenSSL庫。QakBot不會保存下載的文件,而是測量下載速度并刪除收到的文件。
3.設置外部PROXY-C2連接,該連接是通過命令37(更新配置)/模塊274(代理)由Stager接收的。
與外部 PROXY-C2 通信:
1.發送初始代理模塊請求。初始請求包含bot ID、被感染機器的外部IP地址、外部IP地址的反向DNS查詢、網速(先前測量)和代理模塊啟動后的秒數。
2.與PROXY-C2建立連接(代理命令序列1->10->11)。
3.初始化會話,用登錄名/密碼執行socks5授權(使用命令10從PROXY-C2接收)。
4.開始類似SOCKS5的通信,并將其封裝在QakBot代理模塊協議中。
QakBot代理命令如下:

來自 C2 的解析數據包
跟蹤單個代理
Web注入:hooking 模塊的配置文件。
一旦與C2建立通信,下載的附加模塊之一就是web注入模塊。它通過將模塊注入瀏覽器的進程并掛鉤網絡API來攔截受害者的流量。hooking模塊從截獲的API中獲取執行流程,一旦受害者訪問某些與銀行和金融有關的網頁,就會將額外的JavaScript 注入源頁面。

注入Wells Fargo的登錄頁面源代碼的 JavaScript 片段
QakBot統計
我們分析了從卡巴斯基安全網絡(KSN)收集到的關于QakBot攻擊的統計數據,卡巴斯基用戶自愿提供的匿名數據在這里積累和處理。在2021年的前七個月,我們的產品檢測到181,869次下載或運行QakBot的嘗試,這個數字低于2020年1月至7月的檢測數字,但受影響的用戶數量比前一年增長了65%,達到17316人。

2020年和2021年1-7月受QakBot攻擊影響的用戶數
我們觀察到 2021 年第一季度規模最大的活動,當時有12,704名用戶感染了QakBot,其中 1 月有 8,068名卡巴斯基用戶成為目標,2 月有 4,007 名。
結論
QakBot是一個已知的銀行木馬,其技術可能因二進制文件而異(舊版本和新版本)。它已經活躍了十多年,看起來不會很快消失。該惡意軟件不斷得到更新,運營者不斷增加新的功能并更新其模塊,以竊取信息并使收入最大化。
我們知道,QakBot開發團隊會根據安全廠商的策略改變他們進行攻擊的方式,使用復雜的技術來保持不被發現。盡管QakBot使用不同的技術來避免被發現,例如,進程枚舉以便找到正在運行的反惡意軟件解決方案,但我們的產品能夠使用行為分析來檢測威脅。該惡意軟件通常檢測為:
Backdoor.Win32.QBot
Backdoor.Win64.QBot
Trojan.JS.QBot
Trojan.MSOffice.QBot
Trojan.MSOffice.QbotLoader
Trojan.Win32.QBot
Trojan-Banker.Win32.QBot
Trojan-Banker.Win32.QakBot
Trojan-Banker.Win64.QBot
Trojan-Downloader.JS.QBot
Trojan-PSW.Win32.QBot
Trojan-Proxy.Win32.QBot
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:44331.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
149.28.99[.]97:2222 188.27.179[.]172:443 189.222.59[.]177:443
149.28.101[.]90:443 98.192.185[.]86:443 174.104.22[.]30:443
149.28.99[.]97:995 189.210.115[.]207:443 142.117.191[.]18:2222
149.28.101[.]90:8443 68.204.7[.]158:443 189.146.183[.]105:443
92.59.35[.]196:2222 75.137.47[.]174:443 213.60.147[.]140:443
45.63.107[.]192:995 24.229.150[.]54:995 196.221.207[.]137:995
45.63.107[.]192:443 86.220.60[.]247:2222 108.46.145[.]30:443
45.32.211[.]207:8443 193.248.221[.]184:2222 187.250.238[.]164:995
197.45.110[.]165:995 151.205.102[.]42:443 2.7.116[.]188:2222
45.32.211[.]207:2222 71.41.184[.]10:3389 195.43.173[.]70:443
96.253.46[.]210:443 24.55.112[.]61:443 106.250.150[.]98:443
172.78.59[.]180:443 24.139.72[.]117:443 45.67.231[.]247:443
90.65.234[.]26:2222 72.252.201[.]69:443 83.110.103[.]152:443
47.22.148[.]6:443 175.143.92[.]16:443 83.110.9[.]71:2222
149.28.101[.]90:995 100.2.20[.]137:443 78.97.207[.]104:443
207.246.77[.]75:2222 46.149.81[.]250:443 59.90.246[.]200:443
144.202.38[.]185:995 207.246.116[.]237:8443 80.227.5[.]69:443
45.77.115[.]208:995 207.246.116[.]237:995 125.63.101[.]62:443
149.28.101[.]90:2222 207.246.116[.]237:443 86.236.77[.]68:2222
45.32.211[.]207:443 207.246.116[.]237:2222 109.106.69[.]138:2222
149.28.98[.]196:443 45.63.107[.]192:2222 84.72.35[.]226:443
45.77.117[.]108:443 71.163.222[.]223:443 217.133.54[.]140:32100
144.202.38[.]185:2222 98.252.118[.]134:443 197.161.154[.]132:443
45.77.115[.]208:8443 96.37.113[.]36:993 89.137.211[.]239:995
45.77.115[.]208:443 27.223.92[.]142:995 74.222.204[.]82:995
207.246.77[.]75:995 24.152.219[.]253:995 122.148.156[.]131:995
45.77.117[.]108:8443 24.95.61[.]62:443 156.223.110[.]23:443
45.77.117[.]108:995 96.61.23[.]88:995 144.139.166[.]18:443
45.77.115[.]208:2222 92.96.3[.]180:2078 202.185.166[.]181:443
144.202.38[.]185:443 71.187.170[.]235:443 76.94.200[.]148:995
207.246.77[.]75:443 50.244.112[.]106:443 71.63.120[.]101:443
140.82.49[.]12:443 24.122.166[.]173:443 196.151.252[.]84:443
81.214.126[.]173:2222 73.25.124[.]140:2222 202.188.138[.]162:443
216.201.162[.]158:443 47.196.213[.]73:443 74.68.144[.]202:443
136.232.34[.]70:443 186.154.175[.]13:443 69.58.147[.]82:2078
原文鏈接:
https://securelist.com/qakbot-technical-analysis/103931/
文章來源:維他命安全