技術分析 | 淺析無文件攻擊
寫在前面的話
在信息安全領域中,“無文件攻擊”屬于一種影響力非常大的安全威脅。攻擊者在利用這種技術實施攻擊時,不會在目標主機的磁盤上寫入任何的惡意文件,因此而得名“無文件攻擊”。然而,為了更好地應對“無文件攻擊”,我們必須深刻理解這種攻擊方式的底層實現技術,這樣才能幫助我們在特定的環境下部署更好的防御策略。
雖然有的網絡系統部署了類似反病毒產品和應用程序白名單之類的安全控制措施,但是無文件攻擊仍然可以結合多種其他的攻擊策略來入侵你的網絡。接下來,我們一起分析一下無文件攻擊所采用的攻擊方法以及策略,我們會對無文件攻擊所涉及到的特定技術進行介紹,并解釋為什么這種攻擊方式在大多數情況下不會被安全防御系統發現。
技術一:惡意文檔
其實一開始,很多安全研究專家所稱之為的“無文件攻擊”實際上是會涉及到文檔文件的。在這種場景下,攻擊者需要使用到惡意文檔(例如電子郵件附件),目的有以下幾種:
- 文檔作為攜帶其他文件的容器,靈活性更好。比如說,攻擊者可以在Microsoft Office文檔中嵌入惡意JavaScript文件,喜歡社工技術的攻擊者還可以誘導目標用戶雙擊文件后執行嵌入的腳本等等。其他類型的文檔還可以攜帶PDF和RTF等類型的文件,這種功能屬于應用程序的一種特性,所以反病毒技術一般不會干擾其使用。
- 文檔還可以攜帶漏洞利用代碼或Payload。如今,文檔的復雜程度越來越高,因此提供的攻擊面也就越來越廣。在這種場景下,漏洞利用代碼可以直接在目標設備的內存中運行綁定的Shellcode,并給攻擊者提供文件系統的完整讀寫權限。
- 文檔還可以執行惡意攻擊流程并實現初始感染。現代文檔提供了強大的腳本功能支持,比如說Microsoft Office能夠執行VBA宏文件,這種功能將允許攻擊者在不需要編譯惡意可執行程序的情況下在目標主機上實現惡意邏輯,而這種技術利用的就是反病毒工具無法區分腳本代碼惡意性的缺陷。除此之外,腳本還可以啟動程序或下載惡意代碼。
只要攻擊者制作的文檔存儲在了目標系統中,攻擊者就已經不需要再通過傳統方式(在目標主機中運行惡意可執行文件)來進行攻擊了。在很多情況下,惡意文檔可以直接在內存中執行惡意代碼,從某種角度來看,這也算是一種“無文件攻擊”了。
參考資料:
技術二:惡意腳本
為了不將惡意代碼編譯成傳統的可執行文件,攻擊者會在攻擊過程中使用具有“無文件”性質的“腳本文件”。除了文檔支持腳本之外,像上面提到的Microsoft Office產品同樣支持腳本功能,這就給攻擊者提供了以下幾個優勢:
- 他們可以在不受某些應用程序限制的情況下與操作系統進行交互。
- 和惡意可執行程序想必,腳本可以增強反惡意軟件產品檢測和控制的難度。
- 腳本可以更加方便攻擊者將攻擊邏輯分散到多個攻擊步驟中實現,以躲避某些基于行為分析的安全檢測機制。
- 可以通過代碼混淆來增加安全分析的難度,并繞過反病毒技術。
MicrosoftWindows提供了針對PowerShell、VBScript、Batch和JavaScript等腳本的支持,這些腳本可以直接在powershell.exe、cscript.exe、cmd.exe和mshta.exe中運行。除此之外,攻擊者還可以使用開源框架來對腳本代碼進行混淆處理。
參考資料:
【參考資料一】【參考資料二】【參考資料三】【 參考資料四】【參考資料五】
技術三:無需任何依賴組件
每次談到無文件攻擊,或多或少都會涉及到濫用Microsoft Windows實用工具的情況。這些工具允許攻擊者在不需要編譯惡意可執行文件的情況下實現攻擊步驟的推進。
只要攻擊者的惡意代碼能夠與目標主機的本地程序交互,他們就可以利用操作系統的內置工具來下載額外的惡意組件,啟動腳本、竊取數據、實現橫向滲透以及實現持續感染。這些工具包括但不僅限于regsvr32.exe、rundll32.exe、certutil.exe和schtask.exe等等。
值得注意的是,在操作系統的內置工具中,WMI則是重災區,WMI內置于操作系統中,并允許攻擊者通過wmic.exe并配合PowerShell腳本直接跟終端進行交互。
參考資料
技術四:內存中的惡意代碼
毫無疑問,掃描磁盤文件肯定是反病毒產品必備的“技能”了,但是檢測內存中的惡意代碼可就不一定了。內存是動態變化的,這也給惡意軟件提供了可乘之機。
內存滲透技術允許攻擊者繞過大多數反病毒控制策略,包括應用程序白名單。雖然反病毒工具會嘗試捕捉內存注入行為,但是攻擊者的持續感染能力仍然會限制反病毒工具的效果。
參考資料
總結
無文件攻擊的實現得益于某些應用程序和操作系統所特有的性質,它利用了反惡意軟件工具在檢測和防御方面的缺陷。雖然在現代網絡攻擊活動中,無文件攻擊只是其中的一種攻擊技術,但很多惡意軟件一般都會引入一些“無文件攻擊”技術來嘗試躲避安全產品的檢測。對于攻擊者來說,與其去思考某種技術是否無懈可擊,還不如思考怎么樣使用這些技術才能繞過企業的防御策略,這樣效率還會更高。