木馬免殺原理
一、實驗目的
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又跳回來執行.
-
適用范圍:沒有什么條件,是通用的改法,強烈建議大家要掌握這種改法
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/351942.html
標籤:其他
