1.簡介
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比通江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式通江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋通江地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。在安全廠商日趨成熟的背景下,編寫免殺馬的難度和成本日益增長。好用新興的開源項(xiàng)目在短時(shí)間內(nèi)就被分析并加入特征庫。筆者調(diào)研了部分開源項(xiàng)目,其中也有項(xiàng)目做了類似的分析?[1],目前能夠免殺的項(xiàng)目初步統(tǒng)計(jì),其特征一是star數(shù)不過千,二是發(fā)布時(shí)間不會很長。盡管以上開源測試項(xiàng)目已經(jīng)無法免殺,也有兩種可以發(fā)展的方向,一個(gè)是學(xué)習(xí)其思想,自己實(shí)現(xiàn)并去特征免殺;二是改造原有項(xiàng)目,自己查特征、去特征,經(jīng)過測試也能達(dá)到免殺。
免殺方法和思路很多,但據(jù)筆者觀察,目前免殺分為兩大流派。一是二進(jìn)制流,利用匯編配合上C++,調(diào)用系統(tǒng)底層函數(shù)進(jìn)內(nèi)核的方式免殺。殺軟如果直接在用戶態(tài)檢測其行為特征會比較困難。二是新工具新項(xiàng)目、小眾工具流,其主要思想是尋找反病毒廠商未覆蓋的方法和工具,一個(gè)是尋找新的語言工具和項(xiàng)目,跟廠商比速度。另一個(gè)是偏僻語言,用戶量小,廠商一直并未發(fā)現(xiàn)或者工作重心不在上面。舉個(gè)例子,可以用各種語言二次編譯,配合上一些語言特性如python反序列化達(dá)成免殺。通過現(xiàn)有工具的組合有效提高復(fù)雜度,在反病毒人員的盲區(qū)里進(jìn)行。兩種各有優(yōu)劣,后續(xù)若有文章會測試更多的免殺用例。這里推薦一個(gè)靜態(tài)免殺學(xué)習(xí)項(xiàng)目[2]和52pojie上的免殺項(xiàng)目,利用了大部分后文中提到的免殺技術(shù)[3]。
2.殺毒軟件檢測方法
以下的內(nèi)容多為前人總結(jié)。因?yàn)樵撇闅⒈举|(zhì)上也是基于特征查殺,顧不單獨(dú)列出。
2.1特征碼檢測
對文件或內(nèi)存中存在的特征做檢測,一般的方法是做模糊哈?;蛘邫C(jī)器學(xué)習(xí)跑模型,優(yōu)點(diǎn)是準(zhǔn)確度高,缺點(diǎn)是對未知木馬缺乏檢測能力。所以目前依賴廠商的更新,廠商做的更新及時(shí)能有效提高殺軟的防護(hù)水平。目前一些殺軟對相似的病毒有一定的檢測能力,猜測是基于模糊哈希做的。部分殺軟同樣對于加殼也有檢測能力,對于不同的廠家有不同的策略,有些會對文件進(jìn)行標(biāo)記,而某數(shù)字會直接告警。
2.1.1關(guān)聯(lián)檢測
檢測的特征不僅僅是惡意payload的特征,也可能是一組關(guān)聯(lián)的代碼,把一組關(guān)聯(lián)信息作為特征。比如在使用加載器加載shellcode時(shí),需要開辟內(nèi)存,將shellcode加載進(jìn)內(nèi)存,最后執(zhí)行內(nèi)存區(qū)域shellcode。這些步驟就被反病毒人員提取出來作為特征,在調(diào)用了一組開辟內(nèi)存的函數(shù)比如virtualAlloc之后對該內(nèi)存使用virtualProtect來更改標(biāo)示位為可執(zhí)行并且對該內(nèi)存進(jìn)行調(diào)用就會觸發(fā)報(bào)毒。以上只是一個(gè)簡單的例子,具體情況具體分析,部分廠商對其進(jìn)行了擴(kuò)展,所以現(xiàn)在使用另外幾個(gè)函數(shù)進(jìn)行調(diào)用也無法免殺。不過其本質(zhì)還是黑名單,還存在沒有被覆蓋到的漏網(wǎng)之魚。
2.2行為檢測
行為檢測通過hook關(guān)鍵api,以及對各個(gè)高危的文件、組件做監(jiān)控防止惡意程序?qū)ο到y(tǒng)修改。只要惡意程序?qū)ψ员?、啟動?xiàng)、系統(tǒng)文件等做操作就會觸發(fā)告警。最后,行為檢測也被應(yīng)用到了沙箱做為動態(tài)檢測,對于避免沙箱檢測的辦法有如下幾個(gè):
延時(shí),部分沙箱存在運(yùn)行時(shí)間限制
沙箱檢測,對諸如硬盤容量、內(nèi)存、虛擬機(jī)特征做檢測
部分沙箱會對文件重命名,可以檢測自身文件名是否被更改
2.3小結(jié)
以上是對殺軟檢測做的一個(gè)小結(jié),目前學(xué)術(shù)界對惡意代碼的檢測集中在機(jī)器學(xué)習(xí)上,已經(jīng)有部分殺軟已經(jīng)應(yīng)用落地了,如微軟。對殺軟檢測手法更多的了解有助于我們寫免殺馬。
3.繞過技術(shù)
目前,隨著cs的流行,越來越多的人使用cs的shellcode,而放棄了自己開發(fā)編寫的木馬,或者使用改造的msf馬。本篇文章也會以shellcode加載器作為例子。后續(xù)文章將會涉及更深入的內(nèi)容。
3.1經(jīng)典技術(shù)
經(jīng)典免殺技術(shù)如下,由于篇幅所限,本篇只含部分免殺技術(shù)。
特征碼修改
花指令免殺
加殼免殺
內(nèi)存免殺
二次編譯
分離免殺
資源修改
白名單免殺
3.2修改特征
一個(gè)加載器存在兩個(gè)明顯的特征,一個(gè)是shellcode和硬編碼字符串。我們需要消除這些特征,比較方便的方案,使用base64等對上述特征進(jìn)行編碼,最好使用多種編碼手段。對于shellcode,使用base64并不安全,所以更安全的方案是加密,一個(gè)簡單的異或加密就能消除shellcode的特征。第二個(gè)是加載器的關(guān)聯(lián)特征也需要消除,對于代碼中出現(xiàn)連續(xù)調(diào)用的virtualAlloc,virtualProtect進(jìn)行插入花指令,通過加入無意義的代碼干擾反病毒引擎。
筆者的一點(diǎn)想法,進(jìn)一步混淆源代碼,在不加殼的情況下稍微增加靜態(tài)分析難度。也有論文提出可以使用ROP來提高代碼的分析難度,因?yàn)楝F(xiàn)存的代碼分析引擎對間接跳轉(zhuǎn)和調(diào)用的支持存在瑕疵,復(fù)雜邏輯的代碼更需要人工分析[12]。
3.3內(nèi)存免殺
shellcode直接加載進(jìn)內(nèi)存,避免文件落地,可以繞過文件掃描。但是針對內(nèi)存的掃描還需對shellcode特征做隱藏處理。對windows來說,新下載的文件和從外部來的文件,都會被windows打上標(biāo)記,會被優(yōu)先重點(diǎn)掃描。而無文件落地可以規(guī)避這一策略。同時(shí)申請內(nèi)存的時(shí)候采用漸進(jìn)式申請,申請一塊可讀寫內(nèi)存,再在運(yùn)行改為可執(zhí)行。最后,在執(zhí)行時(shí)也要執(zhí)行分離免殺的策略。
3.4修改資源
殺軟在檢測程序的時(shí)候會對諸如文件的描述、版本號、創(chuàng)建日期作為特征檢測[7]??捎胷estorator對目標(biāo)修改資源文件。
3.5隱藏IAT
每調(diào)用一個(gè)系統(tǒng)函數(shù)就會在導(dǎo)入表中存在,這對于反病毒人員是個(gè)很好的特征,直接通過檢測導(dǎo)入表中有沒有調(diào)用可疑函數(shù)。這里就需要隱藏我們的導(dǎo)入函數(shù)。一個(gè)比較通用的辦法是直接通過getProcessAddress函數(shù)獲取所需要函數(shù)的地址。知道地址也就能直接調(diào)用,這樣整個(gè)程序內(nèi)除了getProcessAddress其他函數(shù)都不會出現(xiàn)在IAT表中。盡管這樣已經(jīng)能繞過上面的檢測,但還有種更保險(xiǎn)的做法,用匯編從Teb里找到kernel32.dll的地址,再從其導(dǎo)出表中獲取所需系統(tǒng)函數(shù)。
出自(https://www.52pojie.cn/thread-1360548-1-1.html)
3.6分離免殺
整個(gè)shellcode加載器分為兩個(gè)部分,分離下載shellcode和執(zhí)行。加載器處在stage0階段,其作用除了加載大馬外并無其他作用。但是直接執(zhí)行大馬會被檢測到,所以需要用到分離免殺。
出自(https://www.anquanke.com/post/id/190354)
通常殺軟只檢測一個(gè)進(jìn)程的行為,所以如果存在兩個(gè)惡意進(jìn)程通過進(jìn)程間通信就能逃過檢測、達(dá)到免殺。
分離免殺的方法多種多樣,既可以用windows的管道[4][6],也可以用socket通信[5]。
3.7二次編譯免殺
像msf或者cs的shellcode在各個(gè)廠商里都盯的比較嚴(yán),對于這些shellcode已經(jīng)提取好特征只要使用就會被檢測出。所以會使用各種編碼器進(jìn)行免殺。編碼器有很多種,這里僅推薦msf的shikata_ga_nai,是一種多態(tài)編碼器,每次生成的payload都不一樣。
3.7.1其他語言編譯免殺
因?yàn)楦鞣N語言特性不同,對于不同語言編寫的加載器廠商不一定第一時(shí)間跟進(jìn),導(dǎo)致了一段時(shí)間內(nèi)可以繞過。在2020年初的時(shí)候,使用python作為加載器[11]免殺一陣,現(xiàn)在針對這類加載器逐漸嚴(yán)格,導(dǎo)致直接加載報(bào)毒,需要更多的混淆還改進(jìn)。在2020年5月,奇安信紅隊(duì)出過一篇文章,利用python反序列化來加載python加載器[8],目前截止本文測試2021年1月已經(jīng)無法使用了,是個(gè)比較好的思路。
3.8系統(tǒng)函數(shù)白名單免殺-uuid方式
Gamma實(shí)驗(yàn)室在2021年2月3號發(fā)布了一篇微信公眾號的文章[9],分析了Check Point Research研究的apt攻擊的文章。其中的亮點(diǎn)在內(nèi)存中shellcode的編碼方式和調(diào)用都沒有使用傳統(tǒng)編碼和調(diào)用的方式,利用了系統(tǒng)函數(shù)的特性,這次的例子是uuid。使用的是系統(tǒng)給UuidFromStringA函數(shù)將payload的uuid數(shù)組轉(zhuǎn)化為shellcode加載進(jìn)內(nèi)存,其特點(diǎn)就是程序中存在大量硬編碼的uuid。另一個(gè),調(diào)用使用的是EnumSystemLocalesA函數(shù),它的第一個(gè)參數(shù)是回調(diào)函數(shù)指針,也就意味著參數(shù)一只要傳入shellcode首地址就會執(zhí)行惡意命令?,F(xiàn)已被殺,但是這里給出一個(gè)比較重要的思路,還有其他可以利用的Windows系統(tǒng)函數(shù)可以利用。另外現(xiàn)已經(jīng)有項(xiàng)目實(shí)現(xiàn)了使用調(diào)用guid來進(jìn)行免殺。
3.9某數(shù)字公布的stage uri檢測
因?yàn)閏s密鑰都是硬編碼的,被逆向出來后,只要使用stage分階段的方式加載cs,其流量都會被解密并能檢測其特征[10]。對抗的方式,二次打包改密鑰,或更改cs的配置文件使得關(guān)閉stage。同時(shí)使用stageless,也得更換自己的dll,cs的beacon.dll同樣在檢測列表中。其實(shí)用改造過的msf馬也不錯,這也就是上文提到的過的開源項(xiàng)目,目前這個(gè)項(xiàng)目已經(jīng)被某數(shù)字檢測了,所以需要對項(xiàng)目進(jìn)行改造。
4.總結(jié)
以上總結(jié)了主流的免殺方式,后文的免殺就是以上技術(shù)的混合使用。本文還未涉及到諸如加殼,dll以及使用powershell免殺等,這些會在之后的文章中提出。
5.參考文獻(xiàn)
[1]?????https://github.com/TideSec/BypassAntiVirus
[2]?????https://github.com/Rvn0xsy/BadCode
[3]?????https://www.52pojie.cn/thread-1360548-1-1.html
[4]?????https://payloads.online/archivers/2019-11-10/4
[5]?????https://payloads.online/archivers/2019-11-10/5
[6]?????https://www.anquanke.com/post/id/190354
[7]?????https://cloud.tencent.com/developer/article/1512006
[8]?????https://mp.weixin.qq.com/s/gZ28MvCPTQbTAVtQjO7T8w
[9]?????https://mp.weixin.qq.com/s/1DvYNDiZc2iV1pXEn7GZEA
[10]???https://mp.weixin.qq.com/s/fhcTTWV4Ddz4h9KxHVRcnw
[11]???https://www.secpulse.com/archives/151899.html
[12]???https://arxiv.org/pdf/2012.06658.pdf
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁標(biāo)題:Windows下免殺思路總結(jié)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.rwnh.cn/article12/pchgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、服務(wù)器托管、網(wǎng)站排名、網(wǎng)站改版、網(wǎng)站導(dǎo)航、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容