ChromeLoader:新出現劫持用戶瀏覽器搜索和展示廣告的惡意軟件活動(下)
信息竊取程序和廣告軟件
為了與惡意擴展程序進行通信,開發者使用了命令和控制服務器(C2),這與之前用于安裝擴展程序的安裝服務器不同。該惡意軟件使用各種擴展功能,使其在用戶瀏覽器中占有一席之地。

惡意軟件安裝的警報示例
安裝擴展程序時,它會添加兩個Chrome警報,警報允許開發者安裝一個回調/定時任務,將定期觸發。當這些警報被觸發時,會調用兩個相應的函數:
當觸發廣告警報時,擴展程序會向C2請求廣告并將其顯示在新選項卡中。
hb回調觸發與C2通信的函數,通知它當前的執行狀態。

惡意軟件在警報被觸發時的反應
在下圖顯示的代碼中可以看到另一個有趣的活動。擴展安裝了一個偵聽器,這允許它攔截每一個傳出的請求,并使用它來檢查請求是否被發送到搜索引擎,谷歌,雅虎或必應。如果是這樣,擴展程序會將搜索詳細信息發送到C2,泄露受害者的想法和興趣。

瀏覽器劫持功能示例
此外,擴展使用不同的機制來驗證它是否正確執行。例如:
每個發送到C2的數據包都有一個名為dd的硬編碼標頭。C2可以使用它來識別不同的分銷渠道/附屬公司。

添加的dd標頭示例
取消搜索建議,可能是為了確保搜索查詢是用戶想要的。
從瀏覽器中卸載現有的Chrome擴展程序。它還將擴展名發送到C2并返回一個allowlistjson,以排除被刪除的選定擴展。
禁用所有訪問chrome://extensions并打開chrome://settings的嘗試,以防止用戶卸載此惡意擴展程序。
版本控制
大多數惡意擴展包含一個名為conf.js的文件以及存儲在background.json中的主要Javascript代碼。此conf.js(或manifest.json,或background.js文件,如果缺少conf.json)文件存儲擴展的相關配置:C2的主機名(例如,krestinaful[.]com和tobepartou[.]com),驗證標頭的dd值、擴展名及其版本。似乎版本信息是準確的,研究人員看到的版本(2.0、3.0和4(.0,.3,.4))之間存在一些差異。
2.0版(2022年1月4日首次發布):
缺少的功能:
1.沒有針對受害者的廣告。
2.僅從谷歌收集搜索引擎查詢。
3.不刪除現有的瀏覽器擴展。
3.0版(2022年1月6日):
新增功能:
1.新增從Yahoo和Bing收集搜索引擎查詢。
2.SetWithExpiry()和GetWithExpiry()函數分別添加并用于存儲變量(即查詢URL)和刪除現有擴展。
3.現有的擴展刪除機制。
4.0版本(2022年1月7日):
新增功能:
1.整個腳本中有更多混淆。
2.添加了Chrome廣告機制。
3.更改了硬編碼的C2URL。
4.Chrome警報機制。
MacOS變體
2022年3月,出現了一個針對MacOS用戶的新變體。此變體仍然處于活動狀態,并使用類似的技術來安裝其有效負載并隱藏其操作。它使用相同的感染方法,引導受害者到付費下載網站安裝dropper。
在本例中,dropper是一個磁盤映像(DMG)文件:ISO文件的MacOS實現——包含多個文件,包括一個bash腳本。bash腳本以多種方式類似于預定的PowerShell腳本:
下載有效負載——來自遠程安裝服務器的瀏覽器擴展。
將有效負載加載到目標的瀏覽器中——GoogleChrome和內置的Safari瀏覽器。

MacOS安裝腳本的早期版本示例
在更高級的情況下,開發者不是在bash腳本中硬編碼下載執行部分,而是將這些命令編碼在一個單獨的文件中,然后由bash腳本使用OpenSSL解碼和執行。

稍后的MacOS安裝腳本示例
下載的擴展功能與Windows操作系統版本中使用的類似。MacOS變體使用相同的混淆方法來執行相同的重要組件——收集搜索引擎查詢并展示廣告。此外,該版本還使用了新的C2地址。
根據該變體提供的惡意擴展的版本號,MacOS變體晚于Windows變體,這符合該活動的攻擊時間線。在研究人員的研究中,使用該變體發現的擴展被標記為該惡意軟件的6.0版本。
第二個Windows變體(變體2)
2022年3月,在最后一次已知的變體1攻擊幾周后,研究人員發現了一個與第一個有多個相似之處的新活動,這使研究人員相信研究人員實際上正面臨本文中提到的相同ChromeLoader惡意軟件的另一個變體作為變體2。
此變體2的攻擊媒介與變體1相同。通過按安裝付費網站和社交媒體上的惡意廣告活動,誘使用戶下載torrent或破解視頻游戲。
用于變體2的ISO映像包含新的可執行文件。受害者只會看到一個Windows快捷方式,他們可以雙擊該快捷方式來安裝所需的軟件或觀看電影。

惡意掛載ISO的示例
但是,ISO映像包含在受害者啟動Windows快捷方式(.lnk文件)時執行的其他隱藏文件。.lnk文件只運行一個名為resources.bat的批處理腳本。反過來,該腳本將app.zip的內容提取到%APPDATA%中。zip壓縮文件包含一個名為Tone.exe的可執行文件,該可執行文件最終由批處理腳本存儲到注冊表運行密鑰中,從而使攻擊持續存在。

LNK文件配置示例

resources.bat內容示例
與變體1一樣,變體2安裝了相同類型的Chrome擴展程序。該惡意軟件啟動了一個cmd.exe進程,該進程又執行了powershell.exe。PowerShell進程執行WMI查詢,用于安裝名為chrome*的新計劃任務,啟動另一個編碼的PowerShell命令。

惡意軟件安裝計劃任務時的因果關系鏈示例
在分析上述混淆的PowerShell腳本時,研究人員遇到了一個用作dropper的腳本。該腳本不直接安裝新的Chrome擴展,因此它與變體1的PowerShell腳本模式不完全匹配。但是,變量的結構和使用類似于變體1的行為。

解碼后安裝的計劃任務腳本內容示例
使用XQL查詢,當安裝服務器可用時,PowerShell腳本會創建并加載熟悉的惡意Chrome擴展程序(6.0版本,用于最新的MacOS變體)。

編碼PowerShell下載的文件示例
2021年12月出現第一個真正的Windows變體(變體0)
由于其多次攻擊事件,該惡意軟件家族在網絡安全界引起了全世界的關注。
如前所述,研究人員在調查期間檢測到此惡意軟件的不同版本。每個版本不僅被研究人員貼上了標簽,還被惡意軟件開發者自己貼上了標簽。研究人員檢測到的最早的標記版本是2.0。因此,研究人員相信這不是這些攻擊者的第一次攻擊,研究人員決心揭露這個惡意軟件的第一個版本。
由于攻擊者頻繁更新有效載荷的歷史,研究人員確信第一例發生在相對接近于2022年1月目前報告的感染病例。
通過對Variant 1 PowerShell dropper使用的安裝服務器域進行分析,發現另一個惡意軟件在2021年12月使用了其中一些域作為其安裝服務器。
這個惡意軟件是一個使用AutoHotKey(AHK)編寫的可執行文件——一個用于腳本自動化的框架。
使用此工具,程序員可以使用AHK語法編寫簡短、易于理解的腳本。然后,根據程序員的定義,框架會創建匹配的鉤子來執行這些腳本。
將AHK腳本轉換為Windows可執行文件時,原始腳本源代碼被粘貼到可執行文件的末尾,與使用重度混淆的其他變體相比,研究人員的調查過程更加輕松。在這種情況下,硬編碼腳本包含以下源代碼,看起來與研究人員已經分析過的PowerShell釋放程序非常相似:

AutoHotKey腳本內容的示例
簡而言之,這個dropper從它的安裝服務器下載一個有效負載。研究人員可以通過用于下載的有效負載(Extension_Name)的變量名稱假設此有效負載是另一個瀏覽器擴展。
經過更徹底的調查,研究人員找到了下載的擴展程序。不出所料,它還包含與ChromeLoader惡意軟件家族相關的功能,但更重要的是,它被標記為1.0版(!)
這些擴展與與該家族相關的其他擴展非常相似,但有一個主要區別,這一次,擴展沒有被混淆。它甚至包含開發者對不同代碼部分的一些評論。

此變體下載的擴展示例,研究人員這邊沒有任何更改
總結
本文詳細解釋了使用惡意廣告傳播的新惡意軟件家族——ChromeLoader的不同版本。在短時間內,ChromeLoader的開發者發布了多個不同的代碼版本,使用了多個編程框架、增強功能、高級混淆器、修復了問題,甚至添加了跨操作系統支持目標Windows和MacOS。
該惡意軟件用于劫持受害者的瀏覽器搜索和展示廣告,雖然這兩種行為不會造成嚴重損害或泄露高度敏感的數據,然而,基于攻擊者在如此短的時間內的廣泛傳播,研究人員認為他們能夠造成比Chrome擴展程序的兩個主要功能更大的損害。
此外,開發者的開發過程非常有條理,標記了他們不同的惡意軟件版本,并在整個攻擊例程中使用了類似的技術。這可能使他們在開發攻擊框架和維護攻擊鏈時更輕松,但無意中,這也使調查過程變得更加容易。最后,開發者使用了ISO(DMG)文件和瀏覽器擴展,這點值得警惕。
參考及來源:https://unit42.paloaltonetworks.com/chromeloader-malware/