木馬免殺原理


木馬免殺原理

一、實驗目的

1.了解殺毒軟件特征碼查殺病毒的基本原理

2.掌握木馬特征碼免殺的原理和方法

二、實驗環境

1.系統環境:Windows環境, XP環境

2.軟件工具:灰鴿子,MYCCL,OC_cntrump,AVG殺毒軟件,ollydbg

三、實驗原理

殺毒軟件特征碼查殺病毒的工作原理
首先讓我們簡單了解一下殺毒軟件特征碼查殺病毒的原理,特征碼就是能識別一個程序是病毒的一段不大於64字節的特征串。特征碼定位法分為文件從查殺和內存查殺,殺毒軟件公司拿到病毒的樣本以后,定義一段病毒特征碼到病毒庫中,然后與掃描的文件比對,如果一致則認為是病毒。內存查殺則是載入內存后再比對,行為檢測法是新出現的一種定義病毒的方法它利用的原理是某些特定的病毒會有某些特定的行為來做出是否為病毒的判斷

四、實驗步驟

打開Windows7虛擬機,打開工具軟件安裝包安裝AVG殺毒軟件,如下圖所示:

打開灰鴿子遠程控制軟件,點擊配置服務程序,輸入本機的IP地址,生成服務器,如下圖所示:

將生成的Server.exe程序復制到桌面,在其右鍵菜單中選擇“Scan with AVG Anti-Spyware”用殺毒軟件對其進行掃描,發現殺毒軟件報毒,這里選擇不采取任何操作,關閉殺毒軟件,如圖所示:

對Server.exe做免殺處理,首先需要定位其特征碼,MYCCL工具是一款復合特征碼定位系統,主要定位木馬病毒的特征碼工具。打開MYCCL工具,點擊文件,打開Server.exe程序,如下圖所示:

將開始位置為00000400,分塊個數設置為100,點擊生成按鈕,在桌面上生成了OUTPUT文件夾,如下圖所示:

桌面生成了OUTPUT文件夾,此文件夾可以看到由木馬源程序衍生處的100個程序,如下圖所示:

右鍵點擊OUTPUT文件夾,用殺毒軟件對其掃描,掃描完成之后點擊Apply all actions按鈕處理所有可疑文件,如下圖所示:

處理完所有可疑文件之后,再次打開OUTPUT文件夾,可以發現可疑文件都被刪除了只剩下83個程序,如下圖所示:

在MYCCL工具點擊二次處理,提示找到一處特征碼,程序提示為文件0009A509_00001DB3中發現特征碼,如下圖所示:

繼續掃描OUTPUT文件夾,沒有發現可疑文件,表示其他位置已沒有特征碼

在MYCCL工具中,點擊特征碼區間按鈕打開區間設定界面,右鍵點擊打開右鍵菜單,選擇復合定位此處特征碼,如下圖所示:

將分塊個設置為100,點擊生成,如下圖所示:

處理完成之后,點擊二次處理,提示已經找到特征碼,選擇yes繼續尋找其他特征碼,掃描OUTPUT文件夾,沒有發現可疑文件,表示已經沒有其他特征碼,如下圖所示:

完成上述操作之后,點擊二次處理,顯示特征碼分布示意圖,並精確定位特征碼於0009B9C3處,如下圖所示:

打開OC_cntrump.exe,將Server.exe文件拖入OC_cntrump.exe軟件中,輸入文件偏移地址0009B9C3(剛剛通過MYCCL定位的地址),將地址轉換為內存地址,如下圖所示:

用ollydbg工具對Server.exe進行處理,按下快捷鍵ctrl+g,輸入上一步獲取的內存地址,跳轉至0049C5C3處,向上滑動滾輪,自動歸位到指令首址,內容為MOV EAX,DWORD PTR SS:[EBP-101C](特征碼包含在該指令中),如下圖所示:

在程序的最下發找到一段“00”空白區,例如004A21E4雙擊這一行,在彈出窗口填入特征碼段內容MOV EAX,DWORD PTR SS:[EBP-101C],點擊“匯編”保存設置。此時會自動跳至下一地址進行編輯,輸入JMP 0049C5C7跳轉到代碼“MOV EAX,DWORD PTR SS:[EBP-101C]”的下一個地址,如下圖所示:

返回到0049C5C1處,右鍵點擊代碼,選擇匯編,寫入跳轉指令JMP 004A21E4,如下圖所示:

右鍵點擊空白處,依此選擇“復制到可執行文件”-“所有修改”-“全部復制”,在彈出界面空白處點擊右鍵,選擇“保存文件”,文件名稱為“Server2.exe”,退出ollydbg程序,如下圖所示:

在桌面右鍵Server2.exe進行掃描,發現殺毒軟件沒有報毒,說明特征碼免殺成功,如下圖所示:

在Windows7虛擬機啟動灰鴿子控制軟件,將免殺之后的Server2.exe掛馬到網頁上,在從XP虛擬機訪問http://192.168.70.133,訪問成功后,返回到Windows7虛擬機發現上線主機出現,說明免殺木馬安裝成功並能正常運行,如下圖所示:

五、修改特征碼的方法

方法一:直接修改特征碼的十六進制法

  • 修改方法:把特征碼所對應的十六進制改成數字差1或差不多的十六進制

  • 適用范圍:一定要精確定位特征碼所對應的十六進制,修改后一定要測試一下能否正常使用

方法二:修改字符串大小寫法

  • 修改方法:把特征碼所對應的內容是字符串的,只要把大小字互換一下就可以了

  • 適用范圍:特征碼所對應的內容必需是字符串,否則不能成功.

方法三:等價替換法

  • 修改方法:把特征碼所對應的匯編指令命令中替換成功能類擬的指令

  • 適用范圍:特征碼中必需有可以替換的匯編指令.比如JN,JNE 換成JMP等

方法四:指令順序調換法

  • 修改方法:把具有特征碼的代碼順序互換一下.

  • 適用范圍:具有一定的局限性,代碼互換后要不能影響程序的正常執行

方法五:通用跳轉法

  • 修改方法:把特征碼移到零區域(指代碼的空隙處),然后一個JMP又跳回來執行.

  • 適用范圍:沒有什么條件,是通用的改法,強烈建議大家要掌握這種改法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM