黑客組織TA505利用LoLbin和新型後門攻擊金融行業
常年混跡網路安全圈,你可能對網路犯罪分子的一些攻擊手法早已不陌生,比如他們為了拓展惡意軟體的功能或是使其更難以被檢測到,而將之與合法軟體相結合使用。而最近Cyberreason的研究人員發現,許多Windows系統進程也會被攻擊者們惡意劫持以用於達成他們的目標。
在本文中,我們將介紹黑客團伙TA505於2019年4月對某金融機構進行的一場精心策劃的攻擊事件,它是一起具有強針對性的網路釣魚。惡意軟體的持久性可根據環境選擇是否創建,攻擊還利用到了一個稱為ServHelper的複雜後門。
TA505的關鍵特徵
·目標明確——只針對企業內部少數特定賬戶的進行網路釣魚。
·惡意代碼經過簽名驗證——這是為了避免被發現而採取的額外預防措施。
·精心策劃——從攻擊的時間點和惡意代碼的簽名可看出。
·可選擇的持久性機制——基於自動偵查選擇是否自毀。
·去除痕迹——使用自毀命令和銷毀腳本來刪除證據。
·多個C2域——以防被列入黑名單或無法連接。
·集成了四個不同的LOLBin——表明攻擊者仍在研究逃避檢測手段。
TA505是一個臭名昭著的黑客組織,曾利用多個勒索軟體,如Dridex、Locky等進行大規模的敲詐勒索活動。最近,TA505又在北美、亞洲、非洲和南美等多個國家開展了有針對性的攻擊行動,主要針對的是大型金融機構,目的是獲取有價值的數據,以便日後加以利用。
2019年以來,可以很明顯地發現,惡意軟體使用最廣泛、最有效的攻擊載體仍然是電子郵件,此次行動也不例外。但這次目標機構只有少數賬戶收到了TA505的釣魚郵件,說明攻擊者有可能在行動的早期就進行了偵察工作來選擇最佳目標。
惡意軟體由Sectigo RSA Code Signing CA簽名驗證,這是為逃避檢測而採取的額外預防措施。此外,惡意軟體僅在攻擊前幾個小時才進行了簽署。
但最不尋常一點是,在大多數情況下,惡意軟體幾乎都會試圖獲得持久性,而此次行動中的一些工具可依據其環境決定是否創建持久性。這些工具將收集關於目標機器的信息,並將其發送到遠程C2伺服器,再由C2決定是否設置持久性,這也是一種在較高等級的攻擊行動中常用的技術。
攻擊者顯然非常重視如何掩蓋他們的蹤跡,惡意軟體除了收集信息之外,還能決定是否需要從受感染的電腦上刪除證據,這說明攻擊者的潛在目標是設置一個儘可能長時間不被發現的後門,以便後續更有效地竊取數據。
惡意軟體廣泛而多樣地使用LOLbin和合法的本地Windows OS進程來執行惡意活動,比如payload的傳遞和ServHelper後門的實現。ServHelper後門是一個相對較新的惡意軟體家族,於2018年底被發現。Cybereason研究人員在過去幾個月就注意到了廣泛使用LOLbin進行攻擊的趨勢。
在此次行動中,檢測到的ServHelper後門又發生了新的變化,我們將在接下來對其做分析。
分析過程
圖1.攻擊流程圖
第一階段:獲取訪問許可權
在此階段,攻擊者向目標發送釣魚郵件。在大約一個小時的時間內,超過80個文件被發送到企業郵箱的40個帳戶中。郵件包含帶有惡意宏的Microsoft Excel附件。文件打開時會被載入到Microsoft Excel中,並敦促用戶啟用宏。
圖2.包含宏的惡意.xls文件
當受害者單擊Enable Content按鈕後,宏命令將被執行並調用Windows OS進程msiexec.exe.。msiexec.exe是windows installer,即一個用於安裝、維護和刪除軟體的Microsoft Windows的軟體組件和應用程序編程介面。宏命令將調用msiexec.exe連接到遠程C2伺服器並下載第一階段payload,並創建第二個msiexec.exe進程來執行payload,之後進入攻擊鏈的第二階段。
圖3.調用msiexec.exe與C2伺服器通信。
與C2伺服器建立TCP連接後,下載的payload名為Alg,它是第二階段使用的幾個文件的dropper。
圖4.從C2伺服器下載的惡意軟體。
圖5.惡意軟體的滲透過程
第二階段:部署後門
下載Alg後,它將作為帶有.tmp擴展名的二進位文件載入到msiexec.exe,此臨時文件充當惡意軟體的主dropper,並在目標計算機上部署惡意軟體。
.tmp文件中有三個文件夾,分別包含兩個模塊pegas.dll、nsExec.dll以及.nsi腳本。
NSIS(Nullsoft 腳本安裝系統)是為Windows創建安裝程序的合法工具。這說明後綴為.nsi的腳本負責惡意軟體安裝分相關內容,由於其名稱合法,能逃避檢測。
圖7..tmp臨時文件中的內容
.nsi腳本包含.tmp文件要執行的命令,能指示.tmp文件使用nsExec.dll模塊中的函數kest()來操作和執行pegas.dll模塊。
圖8.NSIS腳本
在由msiexec.exe載入執行後,.tmp臨時文件會創建幾個附加文件,其中一個也是臨時文件,將載入初始臨時文件的內存映射中,但更重要的是它創建的兩個模塊pegas.dll和nsExec.dll。
圖9.惡意軟體創建文件nsexecl .dll
圖10.惡意軟體創建文件pegas.dll
此外,它還使用Windows命令行創建一個rundll32.exe進程,以載入植入的pegas .dll模塊並用函數kest()執行它。
圖11.rundll32.exe載入pegas.dll的執行命令
圖12.惡意軟體部署流程
模塊的功能
·NSEXEC.DLL
nsExec.dll模塊是用Nullsoft創建的。nsExec.dll將執行基於命令行的程序,在無需開啟DOSBox的情況下捕獲輸出。這樣攻擊者在執行命令行並運行rundll32.exe進程時不會顯示在受害者桌面上。從Windows命令行處執行命令能增加惡意軟體的隱秘性。
·PEGAS.DLL
pegas.dll是負責執行所有後門功能的核心模塊,內容包括在目標計算機中執行偵察、信息竊取和其他後門功能。此外,該模塊還負責與另一個C2伺服器通信。(在第三階段中講述)
有趣的是,pegas.dll實際上是由認證公司Sectigo RSA Code Signing CA簽署並驗證的。這並不常見,我們認為這也是高級威脅行為者的標誌之一。該認證公司也因出現在上個月的Norsk Hydro LockerGoga 勒索軟體攻擊事件而聞名。
使用此證書可使惡意軟體具備大多數所沒有的優勢:合法性。「已確認」和「已驗證」的惡意軟體可能會縮小安全專家專家的調查範圍。這表明開發此惡意軟體的攻擊者要比大多數惡意軟體創作者要更先進。
圖13.被濫用的證書
pegas.dll利用了數種防禦機制,它被加殼了兩次,以確保難以逆向,此外,該模塊僅在攻擊發生前的幾個小時才進行編譯。儘管如此,Cybereason防禦平台還是收集了與該模塊相關的所有數據。
rundll32.exe從函數kest()處執行模塊pegas.dll。此函數是惡意軟體導出表中負責初始執行惡意代碼的幾個函數之一,導出表中的其他函數分別是loer()和tempora()。
圖15.三個導出函數
這些函數代碼和功能方面類似,kest()包含的所有變數也出現在tempora()中。此外,kest()和loer()共享函數FUN_12345f08(),這實際上是loer()擁有的惟一功能。
圖16.在Ghidra中導出函數偽代碼
FUN_12345f08()是惡意軟體最重要的函數之一,作者通過kest()來執行pegas.dll,以儘快利用FUN_12345f08()。在FUN_12345f08()中有一個新的威脅指標——域名為joisff333.icu的第二個C2,可以從rundll32.exe進程中訪問此域,此外還有一個名為「enu.ps1」的字元串,表示此惡意軟體會用到PowerShell。最後還會出現字元串asfasga33fafafaaf,這似乎與互斥體BaseNamedObjects Global asfasga33fafafaaf的創建有關。
圖17.Ghidra中的FUN_13246F08偽代碼
使用靜態分析,可以從額外的指示字元串中看出惡意軟體的一些特性,包括:網路功能、C2命令、其他域和PowerShell執行活動。
圖18.惡意軟體的附加指示字元串
檢索和信息收集
執行rundll32.exe後,將執行PowerShell腳本enu.ps1,此腳本使用Base64編碼,以避免被防病毒產品檢測到。
圖19.enu.ps1使用Base64進行模糊處理
在解碼腳本時,可以很明顯看到該腳本負責收集目標機器上的偵察工作,比如使用WMI查詢來收集信息以確定用戶是否是管理員。
圖20.通過WMI查詢進行內部偵察
ServHelper後門會在目標機器上收集另外一些信息,其中就包括包括用戶SID。SID為S-1-5-32-544則是內置管理員組的標識符,包括本地管理員以及所有本地和域管理員用戶組。 收集這些信息表明了兩件事:惡意軟體作者針對的是組織而不是普通的家庭計算機用戶,並且在組織中他們針對的是最高優先順序的機器。
圖21.搜索管理員用戶
一旦惡意軟體確認目標計算機是管理員組用戶,它將用WindowsIdentity GetCurrent()方法來收集信息。
圖22.繼續搜索管理員用戶並收集他們的信息
在惡意軟體能夠驗證此用戶是管理員之後,它會收集有關目標計算機的其他信息,並檢索所有文件系統驅動器上的數據,包括虛擬驅動器。
圖23.收集系統驅動器數據
腳本收集的最後一點信息是伺服器的名稱和計算機上本地組的名稱,它使用net.exe(一個合法的Windows操作系統進程)來收集此信息。
圖24.對本地組管理員進行偵察
惡意軟體部署的完整流程樹顯示了攻擊周期四種不同的LOLBin。從大量使用LOLBin的行為和經過簽名和驗證的模塊pegas.dll中我們可以看出,惡意軟體作者在竭盡全力逃避檢測。
圖25.進程樹
第三階段:動態C2伺服器
部署之後,惡意軟體從rundll32.exe連接到第二個C2域,通過多個C2域能確保至少有一個C2伺服器可用來攻擊,在於pegas.dll通信後,C2伺服器決定惡意軟體執行的下一步驟。
第二個C2伺服器根據在目標機器上收集的信息進行響應,從這也能看出惡意軟體的複雜性,大多數惡意軟體收集並發送數據到一個固定的C2伺服器,無論信息如何,它的響應都是相同的,而這裡採用了一種更動態的方法。
圖26.惡意軟體與其第二個C2伺服器通信
與第二個C2伺服器的交互
在與C2域通信的過程中,惡意軟體能執行幾個關鍵命令和活動,其中一些活動是我們在之前版本中觀察到的。
濫用認證
以下從msiexec.exe中觀察到的網路活動說明了惡意軟體是如何利用Sectigo RSA Code Signing CA的簽名和驗證證書進行傳播的。
圖27.濫用認證流量
執行偵察
shell命令負責在目標機器上執行net user /domain命令。這個命令是一個遠程控制命令,允許攻擊者執行額外的偵察活動。
圖28.執行net user /domain命令。
持久性機制
C2伺服器決定是否創建持久性,持久性由persist命令負責創建。這是惡意軟體複雜度的另一個主要標誌,因為惡意軟體不會在每台目標計算機上創建持久性,而只會在特定的幾台上創建持久性。
圖29.持久性機制
在C2伺服器發送persist命令後,惡意軟體使用註冊表創建持久性。它在Run下創建一個註冊表項Intel Protect,並將pegas.dll存儲為值。
圖30.持久性機制
內部偵察
惡意軟體根據它從用戶機器上收集的信息來改變自己的行為。此信息存儲在數據包中,傳遞到C2域HTTP Payload,/ URL:/jquery/jquery.php。
該信息分為四個硬編碼參數:
·Key:在惡意軟體的每次迭代中保持相同的硬編碼參數。
·Sysid:有關操作系統,Service Pack和計算機名稱的信息。
·Resp:有關用戶是否在Active Directory中具有管理員組許可權的信息。
·Misc:有關PowerShell文件的其他信息。這是最新的參數,僅在此版本的ServHelper中觀察到,包括新加的偵察機制。
圖31.用於向C2伺服器交付信息的四個硬編碼字元串
惡意軟體對C2域響應的行為變化取決於受感染的機器是否是高優先順序目標。當機器不是有價值的目標時,Resp參數將填入「指定的域不存在或無法聯繫」。
圖32.惡意軟體將結果通知C2伺服器(沒有AD admin)
如果惡意軟體識別出目標計算機是有價值的,它將在Resp參數中填上相關信息,其中包含計算機所具有的組和帳戶的名稱,例如「Administrator」以及用戶名稱。
圖33.惡意軟體將結果通知C2伺服器(有AD admin)
與許多後門惡意軟體類似,ServHelper能夠在休眠狀態下靜靜的潛伏。這是一種眾所周知的後門特性,可以讓惡意軟體在檢測之下存活,並按攻擊者規定時間進行攻擊。ServHelper使用GetSystemTime()函數獲取關於目標機器日期和時間。
圖34.惡意軟體的休眠功能
我們已知惡意軟體包含幾個與ServHelper相關聯的命令,包括:
·loaddl:負責使用rundll32.exe進程下載和執行其他模塊的命令。
·selfkill:負責自行終止和刪除計算機中的惡意軟體的命令。
連接C2伺服器的流程下圖所示。
圖35.連接C2伺服器的流程
結論
我們在對該惡意軟體的分析過程中,發現了最新版本的ServHelper後門,以及用於部署後門的逃避檢測技術,還重點介紹了惡意軟體是如何使用合法的本機Windows OS進程來執行惡意活動、以在不被檢測的情況下交付payload的過程,接著介紹了ServHelper後門是如何在不被注意的情況下操作和部署自身的,同時,我們還展示了這個後門的複雜程度,以及它是如何針對高價值機器的。
受感染的客戶能夠在造成任何損害之前遏制攻擊的發生。前提是能控制ServHelper後門,終止msiexe .exe和rundll32.exe,刪除所有下載的文件,還要斷掉到惡意C2域的連接,攻擊才能停止。
識別此攻擊的部分困難在於它的逃避機制。LOLBin是具有欺騙性的,此外使用帶有認證的簽名和驗證文件也會增加惡意軟體逃避被檢測到的可能性。
而對此次攻擊中使用的工具和技術的分析表明,LOLBin在逃避防病毒產品的檢測上是多麼有效,這也進一步證實了我們自2018年以來看到LOLBin越來越常被用於攻擊的趨勢,隨著2019年的到來,LOLbin的使用頻率只會有增無減。
IoC
※使用AutoHotkey和Excel中嵌入的惡意腳本來繞過檢測
※你看到的癌症分析結果可能是一份被惡意軟體「修改」過的
TAG:嘶吼RoarTalk |