如何使用ScareCrow框架實現EDR繞過

今天就跟大家聊聊有關如何使用ScareCrow框架實現EDR繞過,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

目前創(chuàng)新互聯公司已為1000多家的企業(yè)提供了網站建設、域名、雅安服務器托管、網站托管、服務器租用、企業(yè)網站設計、茌平網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

ScareCrow

ScareCrow是一款功能強大的Payload創(chuàng)建框架,可以幫助廣大研究人員生成用于向合法Windows金冊灰姑娘中注入內容的加載器,以繞過應用程序白名單控制。當DLL加載器加載進內存中之后,將會使用一種技術來將EDR鉤子從正在進程內存中運行的系統(tǒng)DLL中清理掉,這是因為我們知道EDR的鉤子是在這些進程被生成時設置的。ScareCrow可以通過使用API函數VirtualProtect來在內存中對這些DLL進行操作,該函數可以將進程的內存權限的一部分更改為不同的值,特別是將Execute-Read修改為Read-Write-Execute。

在執(zhí)行過程中,ScareCrow將會復制存儲在C:\Windows\System32\磁盤上的系統(tǒng)DLL的字節(jié)數據。這些DLL存儲在EDR掛鉤的“干凈”磁盤上,因為系統(tǒng)使用它們在生成新進程時會將未更改的副本加載到新進程中。由于EDR只在內存中設置這些進程鉤子,所以這部分數據將保持不變。ScareCrow不會復制整個DLL文件,而是只關注DLL的.text部分。DLL的這一部分包含可執(zhí)行程序集,這樣做有助于降低檢測的可能性,因為重新讀取整個文件會導致EDR檢測到系統(tǒng)資源有修改。然后使用每個函數的偏移量將數據復制到內存的正確區(qū)域。每個函數都有一個偏移量,該偏移量表示它們所在的基址的確切字節(jié)數,提供函數在堆棧上的位置。為了做到這一點,ScareCrow選擇使用VirtualProtect更改內存中.text區(qū)域的權限。盡管這是一個系統(tǒng)DLL,但由于它已加載到我們的進程(由我們控制)中,因此我們可以更改內存權限,而無需提升權限。

一旦這些鉤子被移除,ScareCrow就會利用定制的系統(tǒng)調用在內存中加載和運行shellcode。ScareCrow甚至在移除EDR鉤子之后也會這樣做,以幫助避免被基于非用戶鉤子的遙測收集工具(如Event Tracing for Windows(ETW))或其他事件日志機制檢測到。這些自定義系統(tǒng)調用還用于執(zhí)行VirtualProtect調用,以移除由EDR放置的鉤子(如上所述),從而避免被任何EDR的防篡改控件檢測到。這是通過調用VirtualProtect系統(tǒng)調用的自定義版本NtProtectVirtualMemory來完成的。ScareCrow可以利用Golang來生成這些加載程序,然后對這些定制的系統(tǒng)調用函數進行編譯。

ScareCrow首先會解密shellcode并將其加載進內存中,默認情況下,shellcode會使用AES加密和解密初始化向量密鑰進行加密。一旦解密并加載成功,shellcode將會被執(zhí)行。根據指定的加載程序選項,ScareCrow會為DLL設置不同的導出函數。加載的DLL也不包含所有DLL通常需要操作的標準DLLmain函數,不過我們不需要擔心DLL的執(zhí)行會出現問題。

代碼樣例

如何使用ScareCrow框架實現EDR繞過

如何使用ScareCrow框架實現EDR繞過

在加載器的創(chuàng)建過程中,ScareCrow會使用到一個代碼庫,這個庫會做兩件事情:

代碼對加載器進行簽名:使用代碼簽名證書簽名的文件通常受到較少的審查,這樣就更容易執(zhí)行而不會受到質疑,因為使用受信任名稱簽名的文件通常比其他文件更不可疑。大多數反惡意軟件產品沒有時間去驗證這些證書。ScareCrow通過使用Go版本的工具limelighter來創(chuàng)建一個pfx12文件來創(chuàng)建這些證書。這個包可以使用用戶指定的輸入域名來為該域創(chuàng)建代碼簽名證書。如果需要,還可以通過有效的命令行選項來使用自己的代碼簽名證書。

偽造加載器的屬性:這是通過使用syso文件來完成的,syso文件是嵌入資源文件的一種形式,當與我們的加載程序一起編譯時,它將修改我們編譯代碼的屬性部分。在生成syso文件之前,ScareCrow將生成一個隨機文件名(基于加載程序類型)以供使用。選擇此文件名后,將映射到該文件名的關聯屬性,確保分配了正確的值。

文件屬性樣例

如何使用ScareCrow框架實現EDR繞過

有了這些文件和go代碼,ScareCrow將使用c-shared庫選項將它們交叉編譯成DLL文件。一旦DLL被編譯,它就會被混淆成一個斷開的Base64字符串,這個字符串將被嵌入到一個文件中。這將允許我們遠程獲取、訪問或以編程方式執(zhí)行目標文件。

工具安裝

第一步我們首先要將該項目源碼克隆至本地:

git clone https://github.com/optiv/ScareCrow.git

在編譯ScareCrow之前,我們還需要安裝響應的依賴組件:

go get github.com/fatih/color

go get github.com/yeka/zip

go get github.com/josephspurrier/goversioninfo

確保下列組件已經在你的操作系統(tǒng)上安裝好了:

openssl

osslsigncode

mingw-w64

接下來,運行下列命令完成工具構建:

go build ScareCrow.go

工具幫助信息

./ScareCrow -h

 

  _________                           _________                       

 /   _____/ ____ _____ _______   ____ \_   ___ \_______  ______  _  __

 \_____  \_/ ___\\__  \\_  __ \_/ __ \/    \  \/\_  __ \/  _ \ \/ \/ /

 /        \  \___ / __ \|  | \/\  ___/\     \____|  | \(  <_> )     /

/_______  /\___  >____  /__|    \___  >\______  /|__|   \____/ \/\_/  

        \/     \/     \/            \/        \/                      

                                                        (@Tyl0us)

        “Fear, you must understand is more than a mere obstacle.

        Fear is a TEACHER. the first one you ever had.”

 

Usage of ./ScareCrow:

  -I string

        Path to the raw 64-bit shellcode.

  -Loader string

        Sets the type of process that will sideload the malicious payload:

        [*] binary - Generates a binary based payload. (This type does not benfit from any sideloading)

        [*] control - Loads a hidden control applet - the process name would be rundll32.

        [*] dll - Generates just a DLL file. Can executed with commands such as rundll32 or regsvr32 with DllRegisterServer, DllGetClassObject as export functions.

        [*] excel - Loads into a hidden Excel process.

        [*] wscript - Loads into WScript process.

         (default "dll")

  -O string

        Name of output file (e.g. loader.js or loader.hta). If Loader is set to dll or binary this option is not required.

  -console

        Only for Binary Payloads - Generates verbose console information when the payload is executed. This will disable the hidden window feature.

  -delivery string

        Generates a one-liner command to download and execute the payload remotely:

        [*] bits - Generates a Bitsadmin one liner command to download, execute and remove the loader.

        [*] hta - Generates a blank hta file containing the loader along with a MSHTA command to execute the loader remotely in the background.

        [*] macro - Generates an Office macro that will download and execute the loader remotely.

  -domain string

        The domain name to use for creating a fake code signing cert. (e.g. Acme.com)

  -password string

        The password for code signing cert. Required when -valid is used.

  -sandbox string

        Enables sandbox evasion using IsDomainedJoined calls.

  -url string

        URL associated with the Delivery option to retrieve the payload. (e.g. https://acme.com/)

  -valid string

        The path to a valid code signing cert. Used instead of -domain if a valid code signing cert is desired.

看完上述內容,你們對如何使用ScareCrow框架實現EDR繞過有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯行業(yè)資訊頻道,感謝大家的支持。

新聞名稱:如何使用ScareCrow框架實現EDR繞過
當前鏈接:http://bm7419.com/article4/pceeoe.html

成都網站建設公司_創(chuàng)新互聯,為您提供小程序開發(fā)、微信公眾號網頁設計公司、網站制作面包屑導航、App設計

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

h5響應式網站建設