metasploit の使い方


■metasploit の使い方

これまで、

Windows でセキュリティ

として、

Windows 上でセキュリティ診断を行う環境の構築

について記載してきた。

具体的には、

・仮想マシンソフトとしての Virtualbox の導入
・セキュリティ診断を行うための Kali Linux の導入
・診断される対象となる metasploitable2 の導入

という所について、その具体的な方法について書いた。

ということで、今回はようやく整った環境を使い、

実際のセキュリティ診断の一手法について、

・metasploit の使い方

を中心に記載してみたいと思う。

主な内容は以下の通り。

  1. 事前準備
  2. Metasploit を利用したセキュリティ診断
  3. まとめ

なお、繰り返しになるが、本記事で記載の内容を、

他者の管理するサーバー等に対して、

許可なく実施することは違法行為となるため、

絶対にやらないでいただきたい。

他者に迷惑をかけることなくセキュリティ診断の方法論について学ぶため、

これまで述べてきたような環境構築を実施し、

自分の責任範囲にとどめて実施していただきたい。



・事前準備

metasploit を使って実際に診断していくためには、

いくつか準備しておく必要がある。

そんなに大したものではないが、

手順を正確に追えるようにするためにも、

ひとまず記載しておく。

仮想マシンのネットワーク設定

これまで導入してきた各種仮想マシンを起動する前に、

まずやっておくべきは、ネットワーク設定。

各仮想マシンに対するネットワーク設定方法については、

すでに

Windows 10 への Metasploitable2 の導入

にて記載しているので、設定方法については

そちらをみて頂きたい。

で、上述の記事では、Kali Linux のネットワーク設定を

NAT

としていたが、今回は

Kali Linux と metasploitable2 の両方とも、

NATネットワーク

として構成する。

仮想マシンの起動と IP address の確認

ネットワーク設定を内部ネットワークに変更したら、

各々の仮想マシンを起動する。

初めは、

二つの仮想マシンを同時に立ち上げるなんてできるのか?

と思っていたが、VirtualBox を立ち上げると最初に現れる、

VirtualBox マネージャー

画面に表示されている各仮想マシンをダブルクリックすれば、

普通にそれぞれの仮想マシンが起動されていた。

で、まずは metasploitable2 にログインする。

ID : msfadmin
PW : msfadmin

を各々入力すれば、ログインできる。

そのうえで、

                msfadmin@metasploitable:~$ ifconfig

として ifconfig コマンドを実行すれば、

metasploitable2 の IP address を調べることができる。

今回の場合、IP address は以下の通り、

10.0.2.5

となっていた。

Kali Linux からの解放ポート等調査

metasploitable2 側の IP address がわかれば、

今度は Kali Linux 側に移り、metasploitable2 側の

解放ポートなど、基本的な情報を調べる。

具体的には、nmap を使うのが簡単。

今回の Kali Linux には nmap が初めからインストールされている。

よって、Kali Linux 側で terminal を立ち上げ、

                root@kali:~# nmap -sV 10.0.2.5

を実行する。

その結果、metasploitable2 側で起動しているサービスや

解放ポート、およびそのポートで利用しているソフトウェアの

バージョン等が判明する。

実際に実行してみると、以下の通りとなっている。

これで一通り事前情報が収集できたので、

いよいよ metasploit を利用していく。



・Metasploit を利用したセキュリティ診断

metasploit の起動

事前準備が整ったところで、いよいよ metasploit を使った

セキュリティ診断を実施していく。

まずは metasploit の立ち上げ。

Kali Linux 上で Terminal ソフトを立ち上げ、

                root@kali:~# msfconsol

を実行すれば、しばらくした後

以下のような画面がでてきて、起動が完了する。

なお、画面冒頭にあるアスキーアートは、

起動ごとに変更される模様。

脆弱性の探索

metasploit を起動したら、まずは脆弱性の探索を実施する。

metasploit では、既存の脆弱性に対して、

それを突く為の攻撃用コードである、

exploit code

を利用することができる。

よってここでは、先ほどの事前準備で判明した、

metasploitable2 側で起動している各種サービス

に対する脆弱性を探索してみる。

先ほどの事前準備では、nmap の実行結果から、

vsftpd 2.3.4

が起動していることが判明している。

この vsftpd 自体は FTP server ソフトであり、

version 2.3.4 には、任意コードが実行可能となる

脆弱性が存在することが知られている。
* 他にも、backdoor が仕込まれていることがわかっている。

ということで、今回はこの

vsftpd

に対する exploit code が存在するかどうか、を

確かめてみる。

それには、search コマンドを利用すればよい。

metasploit を起動した状態で、

                msf > search vsftpd

と実行してみると、以下に示す通り、

backdoor を突く exploit code として、

exploit/unix/ftp/vsftpd_234_backdoor

が存在することが示された。

なお、search コマンドの引数には、ほかにも、

CVE

microsoft

など、CVE 番号がついている特定の脆弱性や、

OS ベンダー名などでも検索が可能となっている。

よって、新たに脆弱性などが公表された場合には、

                root@kali:~# apt-get update
                root@kali:~# apt-get upgrade -y

などで metasploit の exploit code データベースを

update した上で metasploit を起動し、

search コマンドで CVE 番号が付いた脆弱性を指定すれば、

該当する脆弱性に対する exploit code が既に

存在するかどうか、を調べることができる。

exploit code が存在するか否かは

実際に脆弱性を突かれるかどうかに大きく影響するため、

セキュリティ診断のためにうまく使うのがよいだろう。

Exploit code の利用

で、話を戻すと、search コマンドを実施した結果、

Matching Module として、

exploit/unix/ftp/vsftpd_234_backdoor

が存在することがわかっていたので、これを使ってみる。

具体的には、metasploit の use コマンドを使い、

                msf > use exploit/unix/ftp/vsftpd_234_backdoor

として実行する。

これで、vsftpd に対する exploit code を

利用できる状態になる。

で、実際に利用する際には、この exploit に対応する

各種引数等を指定する必要があるのだが、

その引数は exploit 毎に異なる。

よって、それを調べるために、show コマンドを

options を引数として、以下の通り実行する。

                msf exploit(unix/ftp/vsftpd_234_backdoor) > show options

すると、以下の通り、Module Option 部分に、

RHOST : ターゲットとなるサーバーの IP address
RPORT : ターゲットとなるサーバーの vsftpd 用ポート

を設定する必要があることが提示される。

ここで、RPORT 部分はすでに初期値として 21 が設定されており、

今回は初期値と同じポート番号で vsftpd が起動しているため、

ここは変更する必要がない。

一方で、RHOST は未設定となっているため、

続いてこちらを設定する。

具体的には、set コマンドを利用し、

以下のようにして RHOST に今回のターゲットである

metasploitable2 の IP address 10.0.2.5 を

設定する。

                msf exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 10.0.2.5

これにより、以下の通り RHOST が設定されたことがわかる。

で、ここまでくれば、あとは exploit code を実行すればよい。

実行自体は簡単で、以下の通り、run コマンドを実行するだけ。

                msf exploit(unix/ftp/vsftpd_234_backdoor) > run

その結果、画面は以下のようになる。

一見、何も起こっていないように思えるが、

この状態ですでに侵入は完了している。

実際、この状態のまま、

現在稼働しているカーネルを調べるコマンドである、

uname -a

を実行してみると、以下のような結果が得られる。

ちゃんと metasploitable2 側のコンソールになっている。

さらに、

whoami

コマンドを実行すると、以下のようになる。

これにより、

vsftpd 2.3.4 の脆弱性を利用することで、

metasploitable2 に対し、root でログインできた

ことが確認できた。



・まとめ

今回は、これまでの準備を踏まえ、実際に

・metasploit を使って脆弱性を突く

という方法について述べてきた。

これにより、metasploitable2 に対し、

・root 権限でログインする

ということが実際にできることが確認できた。

実際にやっていることは、

・metasploit というツールを使う

ということだけである。

まさに、script kiddy 以外の何物でもない。

が、脆弱性およびそれを利用する exploit code さえあれば、

こんなに簡単な手順でサーバーを乗っ取れてしまうのである。

script kiddy レベルでできることが大きく広がっており、

かつその影響も甚大化しているというのが実感できた。

自身がサーバーを立てたりする場合には、

最新版のソフトウェアを利用するのは当然のこと、

どうしても利用せざるを得ないサービスなどに対しては、

こういったツールを使い、設定の誤り等を含む

脆弱性がないか等、うまく診断できればと思う。

ということで、今回のポイントは以下の通り。

Point!・search コマンドで exploit の存在を調査!
・use コマンドで exploit を利用できる状態にする!
・exploit 利用時に必要な情報は、show options で確認!
・必要なオプションは set コマンドで設定!
・あとは run で実行するだけ!

今回やりたかったことは、ひとまずこれで完了。

ただ、折角 kali linux を入れているのに、

metasploit だけで終わらせるのはもったいない。

また、metasploitable2 に vuls や OpenSCAP、

Nicto2 や Lynis などを適用してみたら、

何がどんな形になるのか、などなど、

色々試してみたいと思う。




Copyright (c) 2017 Webmaster of this site All Rights Reserved.
カテゴリー: Windows でセキュリティ タグ: , パーマリンク