ファンタスティックな4つのMetasploitペイロード:セキュリティ・ダークナイト ライジング(3)(2/2 ページ)
この連載では、効率よく守る方法を考えることを目的に、実際に手を動かし、攻撃がどのように行われるかを知るため、「Metasploit Framework」のインストール方法と実際の攻撃の流れを紹介してきた。今回は、Metasploit Frameworkに用意されているいくつかのペイロードを紹介しよう。
windows/upexec/bind_tcp - OK
こちらは、攻撃を行った後、攻撃側から被攻撃側に特定のファイルを転送して実行できるペイロードである。本当の攻撃であれば、バックドアを送り込むなど、さらなる攻撃に利用するプログラムを転送して実行することになるのだが、今回はポップアップを表示するだけのプログラムを転送し、実行する。
このペイロードを選択し、[show options]を実行した結果が下図の通りである。
被攻撃側に転送して実行するファイルを指定する個所は[Payload Options]の[PEXEC]の部分である。
こちらも[set]を用いて指定することになる。ここには、被攻撃側に転送し、実行したいファイルのPathを指定する(ここで指定するPathは、攻撃側のローカルに存在するファイルのPathである)。
下図では、[C:\]に存在する[dialog.exe]を設定している。このファイルはポップアップウインドウを表示するだけの単純な実行ファイルである(設定値は[C:\\dialog.exe])。
ここで利用しているサンプルファイルは、http://n.pentest.jp/DKR/dialog.exeにアップロードしてあるので、必要な方はダウンロードしてほしい。筆者の用意したファイルが信用できないと思われる方は、各自実行ファイルを用意いただいてもいいだろう。
上記の設定を行い、[exploit]と実行した結果が下図の通りである。
参考までに、VMで用意したWindows 7上のEFSに対し、RHOST以外は同様の設定で攻撃を行った結果のを下図に示す。前述した、ポップアップウインドウを表示するだけのプログラムが起動していることが分かるだろう。
また、[http://n.pentest.jp/DNR/invisible.exe]から[invisible.exe]を用意した[dialog.exe]と異なるのはウインドウが不可視になっているところである。上記方法にならって[PEXEC]の値を変更して実行してみてほしい。すると、被攻撃対象の見た目に変化はないが、[タスクマネージャ]で確認すると[invisible.exe]が[svc.exe]と名前を変えて(アイコンで確認してほしい)、プロセスに存在することが確認できる。
終了するには[タスクマネージャ]から選択し、[プロセスの終了]をクリックしてほしい。
windows/vncinject/bind_tcp - OK
こちらは攻撃を行った後、被攻撃側へのVNC接続を可能にするペイロードである。
VNCとはVirtual Network Computingの略で、あるコンピューターから別のコンピューターを、遠隔でグラフィカルに操作することが可能なソフトウエアである。Windows系OSにはデフォルトで[リモートデスクトップ]というプログラムが付属しているが、これもその一種で、利用されたことがある方もいらっしゃるのではないだろうか。
このペイロードでは攻撃を行うことによって、被攻撃側をグラフィカルに乗っ取ってしまうものである。
この記事では、基本的に皆さんが使っているコンピューター上で脆弱なアプリケーションを動かし、自身で自身を攻撃しているという特性上、このペイロードを利用した攻撃を行うと、自身のデスクトップ上に自身のデスクトップが表示され、それがどんどん入れ子になる。そのため、VNCでの接続を試すには、スマートフォンの「VNC Viewer」(Android、iOS両方存在する)を利用してほしい。
ペイロードの選択とRHOSTの選択方法は今まで通りである。
set PAYLOAD windows/vncinject/bind_tcp set RHOST 自身のIPアドレス
上記の設定を行った後の[show options]の結果は下図の通りである。
今回は下図のような手順で攻撃を行うため、[Payload Options]を設定する。
まずは[AUTOVNC]である。この値は、攻撃後、自動的に被攻撃側にVNC接続を行うかどうかを決める値だが、デフォルトで[true]に設定されている。今回は攻撃を行い、VNCを被攻撃環境で起動した後、別途、後から接続を行うため[false]に設定する(ちなみにMetasploitに付属するWindows版VNCクライアントは、このペイロードで使用されるオプションであるviewonlyをサポートしていないため、[true]のままではエラーが発生する。この値を[true]にしたい場合は、別の設定項目である[ViewOnly]を[false]にするといいだろう)。
次に[VNCHOST]である。この値は、上図の(3)で接続するために用いるIPアドレスを設定するが、デフォルトの[127.0.0.1]のままでは別のアドレスから接続できないため、攻撃側に設定されているIPアドレスを設定することになる。筆者の環境では、前回から引き続きIPアドレスは[172.20.10.14]なので、この値を設定する。こちらに関連する設定項目としては[VNCPORT]があるが、こちらは(3)で接続するためのポートを設定する箇所である。特に理由がなければ変更する必要はないだろう。
プロキシを経由した接続の流れを、このペイロードの[Payload Options]になぞらえて説明すると、以下のようになる。
攻撃を行った後、被攻撃環境[RHOST]の[LPORT]で接続を受け付けるようにする。そして、そこに接続するためには、攻撃側に用意されたプロキシ[VNCHOST]の[VNCPORT]を経由するようVNCクライアントで接続する。
今回は以下のように設定を行った。
set AUTOVNC false set VNCHOST 172.20.10.14 set ViewOnly false
準備が整ったら[exploit]を実行しよう。
見た目上は何も変化が起こっていないが、VNCクライアントの接続を受け付けるようになっているはずである。
それでは、スマートフォンの「VNC Viwer」で接続してみよう。手順は以下のiOS版を利用した図を参考に設定を行ってほしい(iOS版もAndroid版も使い方に大きな差はない)。
「VNC Viewer」を起動する。
[+]をクリックして新しい接続設定を追加する。
保存すると画面が切り替わるので、設定内容に問題がなければ[Connect]をタップする。
接続が暗号化されていないことが警告されるが、そのまま[Connect]をタップする(Android版ではこの警告が表示されない)。
問題なく接続できれば、皆さんがMetasploitを動作させている、つまり攻撃環境と被攻撃環境が共存するコンピューターのデスクトップがスマートフォンの画面に表示されるだろう。筆者も攻撃を行って、Windows 8の環境をiOSに表示してみた。
「フレームワーク」のゆえん
今回は、数あるペイロードの中から4つをピックアップして紹介した。少しの設定変更を行うことで違った結果を生み出すことができる。Metasploit Frameworkという名前のゆえんも体感していただけたのではないだろうか。少しでも楽しんで手を動かしていただいていたら筆者は幸いである。
次回は、また違った切り口のペイロードとその操作方法について解説しようと思う。
筆者紹介
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
▼辻氏のブログ「(n)」: http://n.pentest.ninja/
▼辻氏のTwitter: http://twitter.com/ntsuji
Copyright © ITmedia, Inc. All Rights Reserved.