91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-12-18 15:31:29 來源:億速云 閱讀:170 作者:柒染 欄目:數據安全

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

ScareCrow

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

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

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

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

代碼樣例

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

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

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

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

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

文件屬性樣例

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

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

工具安裝

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

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

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

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繞過有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

措美县| 修水县| 防城港市| 裕民县| 滨州市| 东安县| 汝南县| 高青县| 福州市| 曲阳县| 思茅市| 如东县| 叶城县| 射阳县| 澄城县| 彭泽县| 连山| 石城县| 泸西县| 利辛县| 仁化县| 山东| 泰兴市| 栖霞市| 鹤庆县| 玉龙| 广平县| 洞头县| 二连浩特市| 鸡西市| 同江市| 如东县| 奎屯市| 精河县| 九寨沟县| 汕尾市| 武穴市| 丹阳市| 洪洞县| 秦安县| 玉林市|