使用搜索引擎作為傳播惡意程序的數量大幅增加
最近幾個月,卡巴斯基實驗室的研究人員觀察到使用谷歌廣告作為分發和傳播惡意程序的活動數量有所增加。至少有兩個不同的竊取程序,Rhadamanthys和RedLine,濫用搜索引擎自我宣傳,并向受害者的設備發送惡意負載。它們似乎使用了相同的技術,模仿與notepad++和Blender 3D等知名程序相關的網站。
攻擊者創建合法程序網站的副本,同時使用拼寫錯誤(利用拼寫錯誤的流行品牌和公司名稱作為URL)或組合詞(使用流行品牌和企業名稱與任意單詞組合作為URL),以使網站在終端看來像真的一樣,虛假網頁的設計和內容看起來與原始網頁相同。然后,攻擊者通過付費方式在搜索引擎中推廣虛假網站,以便將其推到搜索結果的頂端。
如下圖所示,我們可以看到谷歌廣告宣傳的AMD驅動程序和Blender 3D程序的虛假頁面。如果我們仔細看看url,會發現域名包含了程序名稱,但實際上與真正的AMD或Blender 3D供應商無關。在大多數情況下,頂級域名也與官方網站不同。使用不太常見的頂級域名使攻擊者能夠注冊與真實域名類似的二級域名。這些域名引誘受害者點擊鏈接并訪問虛假網站的次數比在更常見的域名區(如COM)注冊的隨機域名要多,因為它們看起來更像一個合法的網站。

在搜索結果中假冒AMD和Blender 3D網站
為了追蹤研究,研究人員訪問了一些推廣的網站,并獲得了他們正在分發的惡意負載。在本文中,我們將主要分析“Blender 3D”假冒網站。

虛假Blender 3D網頁
下載文件(ZIP存檔)的大小為269 MB,接近原始Blender安裝程序的大小。虛假網頁上的257 MB大小與原始Blender 3D安裝程序的大小匹配,但與虛假下載的大小不匹配。
當用戶點擊“下載”按鈕時,將下載存檔混合器(archive blender)3.4.1-windows-x64.zip(E0BDF36E4A7CF1B32DC42FD8914BA8B)。
從存檔中提取的文件(BBA8AA93FCDDA5A7663E90C0EEFA2E7)的大小為657 MB。啟動時,它會將兩個文件放入臨時目錄:
原始的Blender 3D MSI安裝程序(在下面的屏幕截圖上標記為綠色),其大小也是657MB;
作為惡意PE文件(標記為紅色)的下一階段加載器的PE文件,其大小也與原始安裝程序相同:657MB。

被釋放的文件:原始Blender 3D MSI安裝程序和惡意加載器
被釋放的惡意加載器的大小如此之大,因為在創建PE文件時,它被垃圾字節填滿。壓縮后的惡意加載器大小約為330 KB,其余都是垃圾。

加載器中添加了大量垃圾字節
初始安裝程序(從存檔中提取)釋放這兩個文件后,會使用CMD方法(CMD .exe /c [Filename]命令)運行惡意PE文件,以向用戶隱藏該文件。此外,初始安裝程序還運行原始的Blender 3D MSI,以使受害者相信所需的程序正在運行。
因此,攻擊者通過為合法程序創建“預安裝程序”來安裝另一種軟件產品,將惡意軟件和所需的正版軟件一起釋放在受害者的設備上,從而偽裝其惡意負載。

由“預安裝程序”啟動的Blender 3D安裝程序
上面的屏幕截圖顯示了實際正在運行的安裝程序,但如果我們仔細查看這些進程,就會發現“預安裝程序”運行了一個短暫的子進程(cmd.exe/c->“SetupFileProgram”)。這個短暫的進程就是惡意程序的加載器。
加載器
加載器是受未注冊版本的.NET Reactor保護的.NET文件。它似乎使用了一種反調試技術,以防止調試器執行和動態分析二進制文件。簡而言之,加載器運行一個新的powershell.exe進程,并操縱它執行許多powershell命令,這些命令指示它訪問第三方URL以獲取有效負載。有效負載是一個base64編碼、AES加密的無文件二進制文件。其他命令與解碼和解密二進制文件有關,然后在新創建的aspnet_compiler.exe進程(一種合法的Windows.NET框架編譯工具)內存中運行二進制文件。
在本例中,研究人員在運行時觀察到兩種檢測規避技巧:
1.無文件技術,它涉及從在線源獲取有效負載并將其直接加載到進程的內存中;
2.LOLBAS(living-off-the-land二進制文件和腳本),在本例中,它使用.NET編譯工具來運行惡意二進制文件。
下面,我們將對加載器執行鏈進行更詳細的分析。在通過加載器反調試器之后,我們可以看到它啟動了一個PowerShell進程,因此我們將在CreateProcessW WinAPI調用處放置一個斷點來觀察該活動。

調用CreateProcessW生成一個PowerShell進程
由于在通過CreateProcessW調用初始化PowerShell進程時,我們沒有看到任何命令傳播給它,因此可以得出結論,它將在稍后某個時間傳播,所以我們可以通過在WinAPI WriteFile處放置斷點來觀察PowerShell命令的傳播,以便查看PowerShell.exe進程的命令行。
因此,在讓它運行并到達斷點后,我們將在函數調用的返回中檢查結果,我們可以在堆棧中看到,推送到powershell.exe進程的第一個命令是#Start Sleep-seconds 30;。

觀察推送的命令
我們可以嘗試檢查存儲命令的內存部分,并搜索保存在內存中供加載器稍后使用的其他命令。

推送PowerShell命令的內存地址
從該內存部分獲取所有數據后,我們將看到通過WriteFile WinAPI調用傳播給powershell.exe進程的所有命令。

PowerShell命令
如果我們閱讀這些命令,我們將看到powershell.exe進程將要執行的操作。這些命令指示它執行以下操作:
1.下載字符串數據,它是以下URL的一部分,即文件名:http[:]//45.93201[.]114/docs/[RandomChars].txt。下載的數據是一個Base64編碼的字符串,它被解碼為加密的數據。
2.準備解密方法AES-CBC,如上圖所示。我們還可以很容易地看到和解碼PowerShell命令中用于解密的base64編碼的密鑰和IV(初始化向量)。
3.將數據解密為Gzip壓縮二進制文件。
4.解壓縮二進制文件。
5.調用二進制文件來運行它。

解密二進制文件
提取的二進制文件(RedLine竊取程序)
研究人員獲得的二進制文件是已知惡意程序的滴管——RedLine竊取程序。手邊的竊取者版本使用了一種有趣的技術來隱藏其惡意負載,它被編碼在存儲在滴管資源部分的圖像中最低有效位,以及密鑰和AES解密的IV字節中。

帶有惡意負載的嵌入圖像

有效負載解密例程
解密有效負載后,滴管啟動了一個名為“aspnet_compiler.exe”的合法進程,該進程是Microsoft.NET框架的一部分,并將有效負載注入其中。

注入有效負載例程
基礎設施
為了部署誘餌頁面,惡意攻擊者注冊了欺騙性域名,例如blender3d software[.]net或blender3d oftware[.]org。研究人員已經發現超過50個類似的域名托管在同一個IP地址:91.229.23[.]200。這些域名也模仿了其他程序分發網站,例如afterburner-software[.]org, tradingviews-software[.]org和 unity-download[.]com.。
惡意有效載荷可以存儲在與登錄頁相同的站點(例如,hxxps[://]blahder3dsoft[.]store/Blender[.]rar)上,也可以存儲在可用作文件托管服務的公共服務上(MediaFire或GitHub)。
總結
我們看到通過谷歌廣告活動,特別是通過搜索廣告,惡意軟件家族的傳播有所增加。攻擊者使用虛假網站模仿合法軟件供應商網站來吸引受害者,并付廣告費來推廣這些網站。他們對惡意網站域名使用誤植域名(Typosquatting)和組合搶注 (combosquatting),這在最近幾個月已成為常見技術。在某些情況下,例如本文所述的情況,攻擊者還確保在惡意負載的同時安裝用戶所需的程序。誤植域名(Typosquatting),也稱作URL劫持,假URL等,是一種域名搶注的形式,常常會導致品牌劫持。這種劫持的方式通常有賴于用戶在瀏覽器中輸入網址時,犯下諸如錯誤拼寫等錯誤。Combosquatting 的特點是,通過向知名域名添加其他關鍵詞的方式,構造并注冊新的域名(例如alipay-login.com);這種域名可以用于釣魚、惡意軟件傳播、APT攻擊、品牌濫用等行為。
在最近的活動中,研究人員觀察到主要是竊取類型的惡意程序,如RedLine或臭名昭著的Rhadamanthys,它們也以使用惡意廣告技術來攻擊受害者并從受攻擊設備中竊取數據而聞名。
攻擊的目標是世界各地的受害者,包括個人和公司。