2010年9月8日 星期三

Metasploit

簡介

  • 使用Ruby撰寫而成
  • 支援所有的主要作業系統
  • 選項設定與攻擊執行的一致性介面
  • 將安全漏洞與payload分開
  • 整合的編碼與規避功能
  • 具有容易更新之機制的統一攻擊資料庫



Metasploit介面

控制台
$ ./msfconsole
msf>          #系統自行顯示
命令列模式
$ ./msfcli exploitname option1=value option2=value.....mode
$ ./msfcli windows/dcerpc/ms03_026_dcom RHOST=yakima \
     PAYLOAD=windows/shell_bind_tcp TARGET=0 E        #範例
$ ./msfcli                           #系統會印出輔助資訊與攻擊清單
1.攻擊程式的名稱與選項與控制台相同
2.mode為CLI獨有,支援以下模式值
  • H:顯示輔助說明
  • S:顯示資訊摘要,與控制台的info相同
  • O:為所選取的攻擊程式顯示一個可用清單,與控制台的show option相同
  • A:顯示攻擊程式的進階選項(如果有的話)
  • I:顯示IDS規避清單
  • P:為所選取的攻擊程式,顯示可用payload清單,與控制台的show payload相同
  • T:為所選取的攻擊程式,顯示可用目標清單,與控制台的show targets相同
  • C:檢查目標主機是否有安全漏洞而容易受到攻擊(並非所有攻擊程式都提供檢查)
  • E:發動攻擊,與控制台的exploit相同
網頁介面
$ ./msfweb
$ /msfweb -a address -p port   #可複寫掉預設值

攻擊細節

Exploit(攻擊)
  • 負責觸發你所選擇的安全漏洞的特殊程式碼模組
  • shell、進階編碼(encoding)、NOP sled由其他插件式模組提供
Payload(酬載)
  • 決定攻擊成功後產生的效應
  • 在較低的層次上,payload被編碼成"shellcode",伴隨攻擊被傳送
Option(選項)
  • 用來組態exploit與payload之類的Metasploit模組具有的選項
  • 規避選項(Evasion option)可試圖規避IDS或IPS的偵測
Encoder(編碼器)
  • 為了越過"過濾器"而替攻擊的payload進行編碼的工具
  • 常見的過濾器限制為必須避免空字元,或者必須只用文數字的字元

基本工作流程

1.使用安全漏洞掃描器或Port掃描器 2.選擇攻擊程式
3.payload
4.設定必要選項
5.exploit

Metasploit控制台

常用指令(可透過help取得完整的命令清單)
msf> show (Metasploit認可模組)
msf> show payload        #範例
Metasploit認可模組
  • exploit
  • payload
  • encoder
  • NOP
  • auxiliary
  • option (須先選擇exploit)
msf> use exploit
msf use windows/smb/ms06_040_netapi         #範例
msf exploit(ms06_040_netapi)>              #系統自行顯示
任何時間只有一個攻擊程式可以被選用
msf> set variable value
msf> set RHOST www.target.com               #範例 設定RHOST選項
RHOST => www.target.com                     #系統自行顯示
設定各個Option(選項)的值
msf> exploit
發動攻擊,攻擊成功可看到payload結果,失敗則回傳錯誤訊息
msf> info
msf> info x86/opty2     #範例  顯示x866/opt2 NOP產生器攻擊程式的資訊
顯示關於當前選取之攻擊程式的資訊


資料出處:O'REILLY 防駭超級工具

沒有留言:

張貼留言