20222424 2024-2025-1 《網路與系統攻防技術》實驗三實驗報告
1.實驗內容
(1)正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧
- 正確使用msf編碼器,使用msfvenom生成如jar之類的其他檔案
- veil,加殼工具
- 使用C + shellcode程式設計
(2)透過組合應用各種技術實現惡意程式碼免殺
如果成功實現了免殺的,簡單語言描述原理,不要截圖。與殺軟共生的結果驗證要截圖。
(3)用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本
2.實驗過程
2.1正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧
2.1.1使用msf編碼器,對後門進行多次編碼
檢視虛機ip:
無編碼:
掃描結果如下:(使用virscan和virustotal,下同)
大部分都可以查殺出來。
1次編碼:
掃描結果如下:
24次編碼:
掃描結果如下:
可以看出多次編碼對免殺沒有幫助。
2.1.2使用msf編碼器,生成不同檔案格式
檔案格式jar:
掃描結果如下:
檔案格式apk:
掃描結果如下:
檔案格式php:
掃描結果如下:
檔案格式py:
掃描結果如下:
透過不同格式分別測試,總體來說對於免殺有一定幫助,其中py、php、apk格式的效果較好,有相當一部分沒有查殺到。
2.1.3使用veil工具
(此處直接開始使用安裝好的veil,安裝過程詳見問題及解決方案)
檢視虛機ip:
進入veil:
選擇使用evasion模組:
輸入list檢視可以使用的payload:
選擇一個可用的playload,首先嚐試c/meterpreter/rev_tcp.py:
設定反彈連線IP及埠:
檢視設定情況:
輸入generate生成檔案,然後輸入你想要playload的名字:
掃描結果如下:
然後嘗試一下go/meterpreter/rev_tcp.py:
設定反彈連線IP及埠:
檢視設定情況:
輸入generate生成檔案,然後輸入你想要playload的名字:
掃描結果如下:
再嘗試一下python/meterpreter/rev_tcp.py:
設定反彈連線IP及埠:
檢視設定情況:
輸入generate生成檔案,然後輸入你想要playload的名字:
掃描結果如下:
最後嘗試一下ruby/meterpreter/rev_tcp:
設定反彈連線IP及埠:
檢視設定情況:
輸入generate生成檔案,然後輸入你想要playload的名字:
掃描結果如下:
2.1.4使用C + shellcode程式設計
檢視虛機ip:
首先,用msf生成一段shellcode,輸入命令:
使用vim編輯器新建20222424.c檔案並編寫儲存:
編譯器在64位系統上構建32位應用程式,生成exe檔案:
掃描結果如下:
2.1.5使用加殼工具(使用上一步生成的20222424.exe檔案)
首先嚐試壓縮殼upx:
掃描結果如下:
然後嘗試加密殼Hyperion,將exe檔案複製到工作目錄:
使用hyperion.exe加密:
掃描結果如下:
2.2透過組合應用各種技術實現惡意程式碼免殺
免殺原理:msfvenom生成shellcode+異或操作+upx壓縮殼
使用金山毒霸查殺:
用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功:
殺軟:
3.問題及解決方案
- 問題1:安裝veil的過程時遇到的問題及解決方案
安裝veil:
安裝後輸入命令veil,還會繼續安裝,過程中會出現如下報錯:
不能解析主機名,因為veil預設主機名為kali,於是我又把主機名改為了kali,安裝過程中出現安裝Python的介面:
連續點選next後會卡死,強制退出後再次執行veil :
按照提示執行命令/usr/share/veil/config/setup.sh--force --silent後,再次開始安裝,又報了一個錯誤:
再按照提示執行命令apt-get install wine32:i386:
又報錯了,到這不知該怎麼辦了,網際網路上查詢資料後,解決步驟如下:
apt-get install libncurses5*
apt-get install libavutil55*
apt-get install gcc-mingw-w64*
dpkg --add-architecture i386
apt-get update
apt-get install wine32
最後兩步可能需要等待的時間比較長,此時再次執行/usr/share/veil/config/setup.sh--force --silent,即可安裝成功! - 問題2:使用veil工具時未能生成exe檔案
- 問題2解決方案:
4.學習感悟、思考等
4.1 問題回答
(1)殺軟是如何檢測出惡意程式碼的?
-
特徵碼掃描:殺軟透過比對檔案中的程式碼與已知惡意軟體資料庫中的特徵碼來檢測威脅。這種方法依賴於不斷更新的病毒資料庫。
-
啟發式分析:透過分析檔案的結構、行為或程式碼模式預測潛在的惡意活動,藉此檢測未知威脅。
-
行為監控:實時監控程式行為,如檔案操作、網路通訊或系統呼叫,識別異常活動。
-
雲查殺:利用雲端資料庫進行檢測,透過網際網路快速更新和分析龐大資料庫來識別威脅。
-
沙箱技術:在虛擬環境中執行可疑檔案,觀測其行為以判斷是否惡意。
(2)免殺是做什麼?
- 免殺指的是透過各種技術手段,使惡意程式碼躲避防毒軟體的檢測。目的是使惡意軟體在目標系統上成功執行,不被安全工具識別和阻止。這通常是惡意軟體開發者的工作。
(3)免殺的基本方法有哪些?
-
程式碼混淆:透過對惡意程式碼的結構進行修改,使其特徵不易被識別。例如,插入無用程式碼、重新命名變數和函式等。
-
加殼和編碼:使用加殼工具透過編碼和加密技術改變惡意軟體的二進位制結構,使其原始特徵不可識別。
-
多型技術:每一次生成惡意程式碼的變種,自動修改程式碼結構和特徵。
4.2實驗感悟
在這次實驗中,我深入探索瞭如何使用多種技術來實現惡意程式碼的免殺,在對不同惡意程式碼進行檢測後,直觀地看到了不同技術對於免殺的效果,並對這些技術有了更深入的理解和實踐。
在實驗過程中,我發現免殺技術的核心在於避開防毒軟體的特徵碼檢測和行為分析。透過使用多層次的加密與混淆手段,例如編碼器轉換格式和自定義shellcode,能夠有效提高免殺效果。同時,使用Veil等工具提供的加殼技術,進一步對惡意程式碼進行偽裝,從而提升其對殺軟檢測的抵抗力。
這次實驗不僅提高了我對攻擊技術的理解,還讓我對如何增強防禦有了反思和更深刻的認識。網路安全攻防更是一個兩面技術不斷變化進步的過程。