Nmap を使用した情報収集を行う

CybersecurityCybersecurityBeginner
今すぐ練習

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

はじめに

ペネトレーションテストのプロセスにおいて、情報収集段階は最も重要なフェーズの一つです。この実験では、情報を取得するためのツールの使い方を紹介することに焦点を当てています。ターゲットホストに関する情報を収集するほど、ペネトレーションテストの成功率は高くなります。Kali システムには、いくつかのペネトレーションツールが事前にインストールされています。これらのツールを使用することで、情報収集の基本的な手順に徐々に慣れていくことができます。

このコースは実践的な実験チュートリアルです。実験内のいくつかの操作を理解するのを助けるために、いくつかの情報セキュリティの理論内容が追加され、実践中に最も価値のある記事があなたに読むために推薦されます。

ターゲットホストのオープンポートをスキャンする

このステップでは、ツールを使ってターゲットホストのオープンポートをスキャンする方法を紹介します。

ペネトレーションテストのプロセスにおいて、ターゲットホストのオープンポートを把握することは必要不可欠です。Kali Linux には、2 つのデフォルトのポートスキャンツールが用意されています。Nmap と Zenmap です。これら 2 つのツールの使い方を主に紹介します。

まず、実験環境を起動しましょう。ホストマシンは Ubuntu(現在接続しているデスクトップ)で、Docker と QEMU の仮想環境がインストールされています。それぞれ、Kali Linux コンテナと Metasploitable2 ターゲットマシンのプラットフォームサポートを提供します。

LabEx ホストマシンで、デスクトップ上の xfce ターミナルをダブルクリックして開き、以下のコマンドをターミナルに入力して Metasploitable2 を起動します。

sudo virsh start Metasploitable2

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

ターゲットマシンが動作していることを確認するために ping を実行します(ping を終了するには Ctrl - C を押します)。

ping 192.168.122.102

次に、Kali コンテナを起動して bash インターフェイスに入り、ping 操作を実行してネットワーク接続を確認します。

docker run -ti --network host b5b709a49cd5 bash

ここで、ping 操作を実行してネットワーク接続を確認します(ping を終了するには Ctrl - C を押します)。

ping 192.168.122.102

これで両方の実験環境が起動したので、ペネトレーションテストを開始することができます。

注意: 誤って現在の bash を終了した場合、Kali コンテナは自動的に停止します。ホストマシンで再度 docker run -ti --network host b5b709a49cd5 bash コマンドを実行することで、新しい Kali コンテナを起動して bash に入り、実験操作を続けることができます。

TCP ポートスキャンツール:Nmap

Nmap はネットワーク探索およびセキュリティスキャンプログラムです。システム管理者や個人はこのソフトウェアを使って大規模なネットワークをスキャンし、どのホストが稼働していて、どのようなサービスを提供しているかの情報を取得することができます。

Nmap は多くのスキャン手法をサポートしています。例えば、UDP、TCP Connect()、TCP SYN(ハーフオープンスキャン)、FTP プロキシ(バウンス攻撃)、アイドルスキャン、ICMP、FIN、ACK スキャン、クリスマスツリースキャン、SYN スキャン、ヌルスキャンなどです。

Nmap には 4 つの基本機能があります。

  • ホスト発見
  • ポートスキャン
  • バージョン検出
  • オペレーティングシステム検出

nmap ツールを使って、以下のコマンドを入力してポートスキャンを実行し、ターゲットマシンのオープンポートに関する情報を取得します。

nmap 192.168.122.102

Zenmap: Nmap のグラフィカルユーザーインターフェイス

Zenmap は Nmap プロジェクトによって開発された、Nmap をベースとした公式のグラフィカルユーザーインターフェイスです。Zenmap は Python で書かれたオープンソースで無料のグラフィカルインターフェイスで、さまざまなオペレーティングシステムプラットフォーム(Windows/Linux/Unix/Mac OS など)で動作します。Zenmap の目的は、Nmap により簡単な操作方法を提供することです。一般的な操作はプロファイルとして保存することができ、ユーザーはスキャン時にプロファイルを選択することができ、異なるスキャン結果を比較するのが便利です。また、ネットワークトポロジーのグラフィカル表示も提供します。

注意: LabEx 環境では Kali コンテナを使用しているため、現時点ではグラフィカルインターフェイスを使用することはできません。

ターゲットホストの基本情報を取得する

このステップでは、ツールを使ってターゲットホストのオペレーティングシステムなどの基本情報を取得する方法を実践します。

この段階では、ターゲットホストのオペレーティングシステムに関する基本情報をできるだけ多く収集する必要があります。これにより、ペネトレーションテストの成功率が向上します。情報収集とは、フィンガープリンティングのことで、nmap の -O-sV パラメータのようなアクティブなフィンガープリンティングツールを指します。フィンガープリンティングは、高度に聞こえますが、単にターゲットホストのオペレーティングシステムのバージョンとアプリケーションのバージョンを特定することで、オペレーティングシステムとアプリケーションレベルの脆弱性をさらに検出するのに役立ちます。

アクティブなフィンガープリンティングツール

ターゲットホストのオペレーティングシステムを取得するには、以下のコマンドを使用します。

nmap -O 192.168.122.102

Kali ターミナルでこのコマンドを実行して、ターゲットマシンの情報を表示します。ターゲットマシンの IP アドレスは 192.168.122.102 です。

ターゲットホストのポートサービス情報を取得するには、以下のコマンドを使用します。

nmap -sV 192.168.122.102

パッシブなフィンガープリンティングツール

p0f のようなパッシブなフィンガープリンティングツールは、ターゲットに特定のプローブデータを送信せず、データを受動的に受信して分析します。一般的に検出されにくいです。

p0f はネットワーク分析に強力で、NAT、ロードバランシング、アプリケーションプロキシなどの分析に使用できます。

p0f が特定する主な情報には以下のものがあります。

  • オペレーティングシステムの種類、ポート
  • NAT モードで動作しているかどうか
  • ファイアウォールの背後で動作しているかどうか
  • ロードバランシングモードで動作しているかどうか

Kali ターミナルで、p0f を使ってターゲットホストを表示するコマンドを実行します。

p0f 192.168.122.102

ステルススキャン(TCP ハーフオープンスキャン)

Kali ターミナルで、ステルススキャンを実行するコマンドを実行します。

nmap -sS 192.168.122.102

この方法の利点は、検出が困難で、高いステルス性を持っていることです。一般的にターゲットコンピュータに記録を残しません。

TCP コネクトスキャン

Kali ターミナルで、TCP コネクトスキャンを実行するコマンドを実行します。

nmap -sT 192.168.122.102

この種のスキャンは、ほとんどのシステムに記録されますが、ステルススキャンよりも多くの情報を提供することができます。

ターゲットサイトのネットワークサービス情報を取得する

このステップでは、ターゲットサイトが提供するネットワークサービス情報を取得します。

ネットワークサービス情報を取得する

ターゲットホストのネットワークサービスに関する情報をより多く収集することで、ペネトレーションテストの成功率を上げるのに役立ちます。

Firefox ブラウザを開き、アドレスバーに http://192.168.122.102 を入力します。うまくいけば、以下のような画面が表示されます。

LabEx ターゲットサイトのホームページ

amap でターゲットホストの特定のポートをスキャンする

amap はホストの特定のポートをスキャンするために使用されます。LabEx の Kali ターミナルで、ターゲットホストのポート 21 をスキャンするコマンドを入力します。

amap -bqv 192.168.122.102 21

smtp - user - enum でユーザー列挙を行う

smtp - user - enum ツールは主に SMTP ユーザーの列挙に使用されます。LabEx の Kali ターミナルで、SMTP ユーザーを列挙するコマンドを入力します。

smtp-user-enum -M VRFY -u root -t 192.168.122.102

まとめ

この実験では、様々な一般的なセキュリティツールを使ってターゲットホストの情報を収集する方法を実践しました。以下の知識ポイントをカバーしています。

  • ツールを使ってターゲットホストのオープンポートをスキャンする
  • ターゲットホストのオペレーティングシステムなどの基本情報を取得する
  • ターゲットサイトが提供するネットワークサービス情報を取得する
  • 収集した情報を分析して潜在的な攻撃経路を特定する

実験全体を通して、情報収集のために異なるツールを使う方法を学びました。これはペネトレーションテストのプロセスにおいて重要なステップです。これらのツールと技術を習得することで、ターゲットホストに関するより価値のある情報を収集し、ペネトレーションテストの成功率を上げることができます。