<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    免殺入門之靜態免殺

    一顆小胡椒2022-04-30 06:53:30

    本文只是介紹如何對程序進行靜態免殺,以下方法僅供學習交流使用。雖然市面上殺軟的病毒查殺功能越來越完善,靜態免殺仍然是比較經典的免殺思路通過一次完整的免殺流程我們也可以簡單地了解殺軟查殺的原理

    殺毒軟件工作原理

    市面上的殺毒軟件基本由掃描器、病毒特征庫和虛擬機組成,它會把文件放在虛擬機內運行,掃描該文件的特征,包括靜態特征、內存特征、行為特征等,通過和病毒特征庫對比來判斷一個文件是否為惡意文件。安全廠商一直在收集市面上出現的惡意文件添加進他們病毒庫中,所以病毒文件要做到免殺的話就必須清除它本身的特征,殺軟特征庫匹配不上,就會把它當作正常文件,自然也就免殺了。

    殺毒軟件查殺原理

    殺軟查殺包括以下幾個方面:

    • 靜態查殺:查殺靜態的文件,一個病毒文件在編譯生成之后,該文件本身就會有特征,比如文件的某個部分是由特定字符組成,殺軟匹配到特定字符則判斷該文件為惡意文件。
    • 內存查殺:病毒文件在運行后會將自身釋放到內存中,釋放后的文件在內存中也會存在特定字符,根據這些特定字符也可查殺。
    • 行為查殺:程序的一些特定行為也會被殺軟判定為惡意程序,如自刪除、加入啟動項、釋放文件到特定目錄、調用敏感的dll或程序、獲取主機殺軟運行狀態等。
    • 云查殺:相當于所有用戶的機器為Agent,然后有一個服務端,殺軟會把文件自動傳到云沙想使用各種殺毒引擎查殺并同步病毒特征到所有Agent。

    靜態查殺

    這篇文件主要詳細講靜態免殺,會通過對比源碼來更好展現靜態免殺的原理。靜態免殺的原理便是查殺特征碼,殺軟會把文件分片,然后根據模糊hash獲取所有分片的hash值,然后把這些hash值和病毒特征庫做對比,以此來判斷文件是否為惡意文件。

    mimikatz介紹

    本次我們嘗試對mimikatz做免殺處理。首先從github下載最新版的mimikatz程序和源碼,mimikatz是一款知名的內網滲透中常用的工具,功能有密碼讀取、hash傳遞等。

    該工具已經被市面上殺軟加入病毒特征庫,我們的目標就是修改該程序特征碼并且不能影響其正常使用。

    先輸入以下代碼測試mimikatz的功能,發現可以正常使用。

    privilege::debug
    sekurlsa::logonpasswords

    同時也發現會被某殺軟查殺,本文均以該殺軟為例。

    VirTest介紹

    VirTest是一款shellcode定位工具,可以在殺軟查殺文件是定位文件特征碼。

    1、定位原理:

    我們可以這樣假設報毒過程,如果檢測文件是PE,如果在CODE位置存在 標志A,在DATA位置存在標志B,在資源位置存在標志C,同時滿足這個3個條件,那么殺軟就會報毒,VIRTEST工作原理就是要找到引起報毒最后一個標志,也就是假設中的標志C。

    因此VIRTEST采用2分排除法,測試標志C所在文件中的位置,由于被殺的文件可能存在多個 類似于ABC這樣的連鎖條件,所以我們必須要通過一種排除機制,先要找最靠近文件前部的連鎖條件,排除掉文件尾部數據,當找到第一個連鎖條件后,抹掉引標志C,再恢復尾部數據, 然后繼續測試另外的連鎖條件,直到找到最后一個連鎖條件,抹掉后,整個文件免殺了,則說明特征代碼被定為完畢了,所以VIRTEST絕對可以精確的定位出所有的復合特征。這比文件分塊定位法先進得多,更為科學。

    2、使用方法:

    1、在無毒環境制作測試文件

    2、在有殺軟的環境載入測試文件

    3、定位特征代碼,選6秒,定位出來的就是靜態查殺的特征了

    定位mimikatz的特征碼

    根據上述方法把mimikatz.exe制作成測試文件并加載,接下來等待定位完成就OK了,發現定位到12個特征。

    和源碼對比可知其中大部分特征是源碼里的注釋,畢竟每個項目注釋獨特性比較高;還有部分特征是源碼里的自定義字符串和調用敏感文件。

    源碼編譯注意事項

    此項目是用C語言寫的,使用Visual Studio 2019直接編譯時比較麻煩,需要注意以下幾點。

    1、生成-->配置管理器 這里需要設置成release x64

    2、項目-->屬性-->常規-->平臺工作集 需要設置為v142

    3、項目-->屬性-->C/C++常規-->將錯誤視為警告 這里需要設置為否(WX-),否則編譯會失敗

    4、工具-->獲取工具和功能 需要安裝最新的MFC庫,否則報錯MSB8041,編譯失敗

    通過修改源碼達到免殺效果

    通過觀察特征碼,可以發現特征碼有以下幾個類別組成,注釋、自定義字符串、調用敏感的程序,有的還會有方法名,項目名稱等,下面將對比源碼來分析。

    1、注釋

    這里很明顯就是注釋。特征碼是注釋里的benjamin@gentilkiwi.com,這是作者郵箱肯定可以當作特征碼

    解決辦法:很簡單,直接CTRL Shift H,將注釋替換或者刪除。

    替換完成之后編譯,重新測試免殺發現特征碼已經少了很多了。

    2、自定義字符串

    另外兩處特征碼是without DisableRegistryTools和DisableRegistryTools,DisableRegistryTools是和注冊表相關的代碼。

    在項目中通過搜索DisableRegistryTools,找到代碼位置,這里估計是使用regedit.exe執行了注冊表相關操作。感覺注冊表相關操作并不一定需要,這里我們嘗試直接修改為任意字符,如果有問題我們再通過構造代碼來修改這個值。修改完編譯成功的話就說明修改該字符是不影響功能的。

    還有其他類似的自定義變量也是特征碼的話,也直接修改就好了,修改完免殺效果如下。

    其他自定義字符串特征碼如下圖,為Domain %wZ,但是直接找發現找不到,我們結合上下文代碼,使用上面的代碼Username :來查找才能找到,查看源碼發現Domain %wZ中間空格有好幾個。

    在定位源碼中的特征碼的時候經常會有這種情況。

    發現特征碼Domain %wZ都在printf里,打印出來的字符當然可以隨便修改了,修改完效果如下,只剩下一個了。

    3、調用敏感的程序

    最后一個特征如下圖為lsass.exe,還是使用全局搜索,發現一共四處使用了lsass.exe。

    lsass.exe這個文件在熟悉不過了,是和windows存儲密碼相關的進程,mimikatz讀取windows是一定要使用lsass.exe的,從任務管理器也可以看到這個進程。

    那這里肯定是不能直接修改名字,需要構造代碼在不影響功能的情況下修改。

    這里我們使用以下代碼把lsass.exe拼接后使用,代碼如下。

    需要留意這里是寬字節,要使用MAX_PATH,否則會影響功能。

    wchar_t str[MAX_PATH] = L"lsass";
    lstrcatW(str, L".exe");
    if (kull_m_process_getProcessIdForName(str, &processId))

    修改后代碼如圖所示,注意一共四處都要修改。

    修改完成發現特征碼都已經沒了,已經可以繞過某殺軟了,其他殺軟方法類似。

    最后測試mimikatz功能也是正常的,至此免殺完成。

    總結

    靜態免殺其實很多年前就有了,但是現在部分殺軟還能使用修改特征碼來繞過,本篇文章只是講了免殺最簡單的一部分,像內存查殺,行為查殺,云查殺其實都要復雜很多。

    有部分殺軟已經做到了特征碼反定位,這種只能重構整個項目源碼比如修改方法類名、去除注釋圖標、重寫方法內容避開殺軟黑名單。或者自己開發工具,畢竟公網上公開的工具已經被加了太多特征了。

    源碼

    鏈接:https://github.com/q1ya/mimikatz-byPass-Huorong

    后續

    1、修改版本信息

    去微步測了下,發現居然連版本信息都沒改,特征太明顯了

    修改項目的mimikatz.rc文件,rc文件是一個資源文件,里面包括了引入的位圖文件,窗口,圖標,光標等等。

    免殺特征碼
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    殺入門之靜態
    2022-04-30 06:53:30
    該工具已經被市面上軟加入病毒特征庫,我們的目標就是修改該程序特征并且不能影響其正常使用。最后測試mimikatz功能也是正常的,至此完成。
    CS姿勢
    2022-08-02 16:42:30
    花指令,在程序 shellcode 或特征代碼區域增添垃圾指令,增加的垃圾指令不會影響文件執行,在動態查殺或者文件hash對比是校驗會不一致。加殼,比如upx加殼等,一般文件落地后對比哈希值也可繞過軟。二次編譯,一般用于對shellcode進行二次編譯bypass軟。安裝火絨,查殺CS上線加殼另外再加殼測試。賽門鐵克也未報毒,其它軟不放圖了。
    軟及原理
    2021-12-02 06:21:50
    將內存、文件掃描出的特征信息與病毒特征數據庫進行對比。(存在黑白名單)
    前言在系統被入侵后,需要迅速梳理出黑客的攻擊路徑,本文總結windows系統攻擊溯源過程中必要的排查范圍。排查項目用戶查看當前登錄用戶query user
    因前段時間退出了內網的學習,現在開始復習web方面的漏洞了,于是乎,開始了挖洞之旅,當我像往常一樣上傳冰蝎的webhsell時,發現冰蝎的子居然被了.......于是便有了該文章.....
    因前段時間退出了內網的學習,現在開始復習web方面的漏洞了,于是乎,開始了挖洞之旅,當我像往常一樣上傳冰蝎的webhsell時,發現冰蝎的子居然被了.......于是便有了該文章.....
    特征
    2023-01-16 10:39:39
    特征又稱電腦病毒特征,它主要由反病毒公司制作,一般都是被反病毒軟件公司確定為只有該病毒才可能會有的一串二進制字符串,而這字符串通常是文件里對應程式碼或匯編指令的地址。殺毒軟件會將這一串二進制字符串用某種方法與目標文件或處理程序作對比,從而判定該文件或進程是否感染病毒。
    前言提到webshell,方法無外乎對靜態特征的變形,編碼,或利用語言特性繞過。計算機中有很多符號,它們在編程語言中占據一席之地,這些符號作為運算符號,標識符號或起到特殊含義。本文以PHP為例介紹一些利用符號方法。WAF檢測通過對安全狗、護衛神、D盾等常見軟WAF的測試,發現WAF查殺主要依賴兩種檢測方法1.靜態檢測:通過匹配特征來查找webshell。如危險函數,文件特征等。例如 ${$my_var[8]}與${$my_var}[8]的區分${xxx} 括起來的要當成變量處理。
    Bypass_AV msf,ShellCode加載器 ,shellcode執行程序 ,360&火絨&Windows Defender代碼夠簡單,估計要不了多久就進特征庫了,被了再去改幾個特征照樣又可以,作者的github保持更新,可以去瞅瞅。測試可以國內軟?注意:ShellCode 需要是64位的加載器將生成的ShellCode 填至 Bypass_AV.py 里的 ShellCode = '''ShellCode''' 處注意:保留原始ShellCode 里的雙引號 "示例:最終格式:打包成可執行程序編譯Python 3.8.6pyinstaller 4.7pip install pyinstaller
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类