攻防演練中無檔案攻擊PowerShell的破解之道

在近兩年的網路安全攻防演練中,無檔案PowerShell被攻擊者越來越多的利用到攻防實戰中。攻擊者可以利用PowerShell在記憶體中執行命令,從而繞過傳統防護工具對惡意軟體的雜湊分析和檢測,而且透過這種方法,惡意攻擊者可以降低被發現的風險、增加成功實現目標的機會。

01

為什麼攻擊者選用PowerShell?

攻擊者使用PowerShell更容易將系統暴露于勒索軟體、無檔案惡意軟體和惡意程式碼注入記憶體的威脅中,使得安全風險大大提高。此外,PowerShell還有以下特點:

1、規模和範圍

PowerShell是Windows XP及更高版本Windows作業系統的內建功能。同時,它還是可以在Linux上執行的開源、跨平臺框架。

2、合法使用性

PowerShell本身並不是惡意的,它實際上是一個合法的工具。但它的使用和濫用會模糊被用來惡意攻擊或感染系統、或用來完成IT/系統管理任務之間的界限。

3、編寫、執行容易

對於許多IT/系統管理員、資訊保安專業人員、滲透測試人員和黑帽駭客來說,編寫和執行PowerShell指令碼相對容易。

4、簡單混淆

PowerShell指令碼不僅易於編寫,PowerShell的靈活性以及第三方模組的可用性使得混淆它們相對簡單。

5、功能特性

PowerShell可以虛擬地訪問大量的應用程式介面(api)來執行重要的功能,如VirtualAlloc、VirtualProtect和CreateThread,所有這些都可能被攻擊者濫用。

攻防演練中無檔案攻擊PowerShell的破解之道

圖 PowerShell攻擊鏈路

通常情況下,PowerShell在預設情況下受到限制,以減少其濫用。但我們仍然可以看到一些攜帶PowerShell指令碼的惡意軟體使用技術繞過PowerShell的預設執行策略,例如將惡意程式碼作為命令列引數執行。正是由於以上的特性,攻擊者越來越喜歡使用PowerShell進行無檔案攻擊,以完成威脅目的。

02

無檔案攻擊注入形式

一般來講,注入攻擊不僅可以用於在不知道使用者名稱和密碼的情況下登入應用程式,還可以暴露私人、機密或敏感資訊,甚至可以劫持整個伺服器。而無檔案攻擊的注入是在記憶體層進行的,包括如下四種形式:

1、反射性自我注入

反射載入是指從記憶體而不是從磁碟載入可移植的可執行檔案(PE)。一個精心製作的函式/指令碼可以反射地載入可移植的可執行檔案,而無需在流程中註冊為已載入的模組,因此可以執行操作而不會留下痕跡。PowerShell是用於執行這些精心編寫的指令碼的最廣泛使用的應用程式之一。此事件表示一種無檔案攻擊,其中PowerShell指令碼試圖將PE注入到PowerShell程序本身。

2、反射EXE自我注入

反射載入是指從記憶體而不是磁碟載入PE。一個精心製作的函式/指令碼可以反射式地載入可執行檔案(EXE),而無需在程序中註冊為已載入的模組,因此可以執行操作而不留下痕跡。PowerShell是用於執行這些精心編寫的指令碼的最廣泛使用的應用程式之一。此事件表示一種無檔案攻擊,其中PowerShell指令碼試圖將一個EXE注入到PowerShell程序本身。

3、反射DLL遠端注入

反射載入是指從記憶體而不是磁碟載入PE。一個精心製作的函式/指令碼可以反射地載入一個DLL,而無需在程序中註冊為已載入的模組,因此可以執行操作而不留下痕跡。PowerShell是用於執行這些精心編寫的指令碼的最廣泛使用的應用程式之一。此事件表示PowerShell指令碼試圖向遠端程序注入DLL的無檔案攻擊。

4、使用DotNetToJScript技術的惡意程式碼執行

此事件表示嘗試使用DotNetToJScript技術執行惡意Shellcode,該技術被流行的無檔案攻擊使用,如CACTUSTORCH。DotNetToJScript攻擊向量允許載入和執行惡意的。net程式集(DLL,EXE等)直接從記憶體透過COM暴露net庫的幫助。就像任何其他典型的無檔案攻擊技術一樣,DotNetToJScript不會在計算機的硬碟驅動器中編寫惡意的。net DLL或EXE的任何部分。

03

無檔案攻擊的危害

無檔案攻擊這類新型威脅攻擊很多時候在磁碟上不會存放檔案,基於檔案的檢測、監測和防禦自然就失去了作用,但這些攻擊在攻擊期間會有一些危險動作,這是可以被行為分析模組檢測識別的。

另外傳統的病毒木馬威脅數量也還在不斷的增長,基於行為分析的識別技術也是當前最重要的檢測識別技術(這種技術被稱為下一代防毒技術NGAV),這種技術的實現除了依賴作業系統提供的介面外,還得在作業系統上掛大量的鉤子,這樣才能監控到足夠多的行為,有了足夠多樣的行為資料後,基於行為分析的檢測識別技術才能識別更多的威脅攻擊,而且誤報率才能足夠低,但是目前作業系統越來越封閉(比如64位的Windows作業系統)已經不允許掛鉤子了,這勢必會大大削弱這種方法的檢測效果,而這又是當前十分重要、主流的一種病毒木馬威脅檢測方法。

因此,無檔案攻擊成功的機率會變大,對眾多企事業單位帶來的威脅也就會增多,後果難以估量。

04

記憶體保護的破解之道

PowerShell框架提供的便利使系統管理任務更加容易,但是它也為網路犯罪分子和駭客組織提供了較大的攻擊面。不過,儘管使用PowerShell進行的無檔案威脅可能不如傳統的惡意軟體和攻擊那樣明顯,但並非無法阻止。基於記憶體保護技術研發設計的智慧內容保護系統,目前被認為是一種有效的應對方式。

智慧記憶體保護系統透過硬體虛擬化可以監控CPU執行的指令集,透過對部分敏感指令的監控,並結合作業系統上下文就可以知道作業系統中執行程序到底執行了什麼動作,從而破解作業系統的一些限制,採集到更多的程式行為,這樣可以大大提升威脅識別率,並大幅降低誤報率。智慧記憶體保護系統基於硬體虛擬化技術的端點安全技術可以很好的突破作業系統的限制,實現對程式行為的細粒度監控,並能很好的解決以往無法解決的大難題:對記憶體的讀、寫、執行行為的監控。

隨著新興技術的發展,諸如無檔案攻擊之類的威脅和複雜威脅逐漸興起並被利用,應對瞬息萬變的環境並防範是眾多企業面臨的挑戰。針對性的選擇解決方案,可以很好的解決此類威脅問題。