Kali Linux で Nmap を使用したペネトレーションテストの実行

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

はじめに

この実験では、セキュリティ監査とペネトレーションテスト用に設計された人気の Linux ディストリビューションである Kali Linux を使用してペネトレーションテストを実行する方法を学びます。様々なセキュリティ脆弱性が意図的に設定された Metasploitable2 仮想マシンが提供されます。この実験の目的は、Kali Linux 環境に慣れ、ペネトレーションテストの概念を理解し、Metasploitable2 ターゲットの脆弱性を悪用する練習をすることです。

Kali Linux と Metasploitable2 環境をセットアップする

このステップでは、実験環境で提供される Kali Linux と Metasploitable2 の仮想マシンをセットアップする方法を学びます。

  1. まず、Kali Linux イメージの ID を取得する必要があります。以下のコマンドを実行することで表示できます。
docker images

以下のコマンドを実行して Kali Linux コンテナを起動します。image-id は実際の Kali Linux イメージの ID に置き換えてください。

docker run -ti --network host image-id bash
  1. 以下のコマンドを実行して、Metasploitable2 ターゲットが /etc/hosts ファイルに記載されていることを確認します。
cat /etc/hosts

192.168.122.102 target の行が存在しない場合は、以下のコマンドを使用して追加します。

echo "192.168.122.102 target" >> /etc/hosts
  1. 新しいターミナルを開き、ホストマシン上で以下のコマンドを実行して Metasploitable2 仮想マシンを起動します。
sudo virsh start Metasploitable2

ターゲットマシンが起動するのを待ちます。起動には 1 - 3 分かかる場合があります。

  1. Kali Linux 仮想マシン内で)ターゲットに ping を送信することで、Kali Linux と Metasploitable2 間のネットワーク接続をテストします。
ping 192.168.122.102

または:

ping target

ping の応答が表示されれば、ネットワーク接続が成功していることを示します。応答が返ってくるまでに時間がかかる場合があり、Ctrl+C を押すと終了できます。

TCP ポートスキャンを実行する

Kali Linux には、Nmap(ネットワークマッパー)、John the Ripper(パスワードクラッカー)、Metasploit Framework(リモートエクスプロイトフレームワーク)など、多数のセキュリティツールが事前にインストールされています。

このタスクでは、Nmap を使用して TCP ポートスキャンを実行します。以下は、Nmap を使用した簡単な TCP ポートスキャンを示すコードスニペットの例です。前のステップでセットアップした Kali Linux 仮想マシンで以下のコマンドを実行してください。

nmap -sT -p1-1000 192.168.122.102

このコマンドは、ターゲットホストの 1 から 1000 番までのポートに対して TCP コネクトスキャンを実行します。

基本的な脆弱性スキャンを実行する

このステップでは、Nmap を使用して Metasploitable2 ターゲットに対して基本的な脆弱性スキャンを実行する方法を学びます。

  1. Kali Linux コンテナ内で、以下のコマンドを実行して Metasploitable2 ターゲットの開いているポートをスキャンします。
nmap -sV -p- 192.168.122.102

このコマンドは、ターゲットホストのすべてのポートに対して TCP コネクトスキャンを実行し、開いているポートのサービス/バージョン情報を特定しようとします。

  1. 出力を確認します。出力には、Metasploitable2 ターゲットで実行されている開いているポートと関連するサービスのリストが表示されます。

以下は、あなたが見るかもしれない出力の例です。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-06-01 12:34:56 EDT
Nmap scan report for target (192.168.122.102)
Host is up (0.00024s latency).
Not shown: 65533 closed ports
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 2.3.4
22/tcp   open  ssh     OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet  Linux telnetd
25/tcp   open  smtp    Postfix smtpd
80/tcp   open  http    Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.24 with Suhosin-Patch)
111/tcp  open  rpcbind 2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec?
513/tcp  open  login?
514/tcp  open  shell?
1099/tcp open  rmiregistry GNU Classpath grmiregistry
1524/tcp open  ingreslock?
2121/tcp open  ccproxy-ftp Citrix CacheServer
2123/tcp open  gtp-user Citrix Gateway
3306/tcp open  mysql    MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql PostgreSQL DB 8.3.0 - 8.3.7

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

この出力は、Metasploitable2 ターゲットで実行されている様々な開いているポートとサービス、たとえば FTP、SSH、Telnet、HTTP、MySQL、PostgreSQL などを示しています。

まとめ

この実験では、人気のペネトレーションテストとセキュリティ監査用のディストリビューションである Kali Linux と、攻撃技術の練習用に設計された脆弱性のある仮想マシンである Metasploitable2 について学びました。Kali Linux コンテナと Metasploitable2 ターゲットを含む実験環境をセットアップし、Nmap を使用して基本的な脆弱性スキャンを実行し、ターゲットで実行されている開いているポートとサービスを特定しました。この実践的な経験は、ペネトレーションテストの基本を理解するのに役立ち、将来の実験でのより高度な技術に備えることができます。