Nmap と DNS を使用した Kali での偵察

Kali LinuxBeginner
オンラインで実践に進む

はじめに

この実験では、Kali Linux を使用した偵察(レコンネサンス)の基礎を、ネットワークスキャンと DNS クエリの手法を中心に学びます。この実践的な体験を通じて、強力なネットワークスキャンツールである nmap を使用してターゲットシステム上のオープンポートとサービスを特定し、dnsrecon を使用して DNS 情報を収集する方法を習得します。

初心者向けに設計されたこの実験では、独立したクラウドホスト上で動作する安全な LabEx VM 環境内で、ステップバイステップの指示を提供します。nmap によるポートスキャン、スクリプトを使用したサービスの列挙、DNS レコードの照会を行い、分析のために調査結果を保存します。ターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されるため、手動でコンテナを起動したり入ったりすることなく、すぐに練習を開始できます。

Nmap のインストールと基本的なスキャンの実行

最初のステップでは、ネットワークスキャンのための強力なツールである nmap をインストールして使用し、ターゲットシステム上のオープンポートを特定する方法を学びます。ポートスキャンは偵察における基本的なスキルであり、マシンでどのサービスが実行されているかを発見し、潜在的な脆弱性を見つけ出すのに役立ちます。このステップは初心者向けに設計されており、詳細な手順を追って説明します。

LabEx VM 環境でターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されます。手動でコンテナを起動したりシェルに入ったりする必要はありません。環境はすでに準備されています。

始める前に、nmap が何をするのかを理解しましょう。nmap(Network Mapper の略)は、パケットを送信してその応答を分析することで、ネットワーク上のホストやサービスを発見するために使用されるツールです。オープンポートは通常、Web サーバーや SSH などの実行中のサービスを示しており、これらはさらなる分析の入り口となる可能性があります。

それでは、nmap をインストールして基本的なスキャンを実行してみましょう。以下の指示に従ってください。

  1. まず、パッケージリストを更新して、最新バージョンの nmap をインストールできるようにします。ターミナルに次のコマンドを入力して Enter キーを押します。

    apt update

    このコマンドは、利用可能なパッケージのリストを更新します。完了までに数秒かかる場合があり、更新プロセスを示す出力が表示されます。

  2. 次に、以下のコマンドを入力して Enter キーを押し、nmap をインストールします。

    apt install -y nmap

    -y フラグは、確認を求められることなく自動的にインストールを承認します。インストールが完了するまでお待ちください。通常は短時間で終わります。インストールの進行状況を示す出力が表示されます。

  3. nmap がインストールされたら、練習用の安全なターゲットである localhost(自分自身のコンテナ、IP アドレス 127.0.0.1)に対して基本的なスキャンを実行してみましょう。次のコマンドを入力して Enter キーを押します。

    nmap localhost

    このコマンドは、localhost 上の最も一般的なポートをスキャンします。数秒後、以下のような出力が表示されます(実際の出力は異なる場合があります)。

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    この出力において、Host is up はターゲットに到達可能であることを示しています。表には、オープンポート、その状態(open はアクセス可能であることを意味します)、および関連するサービス(ポート 80http など)がリストされています。この情報は、システムでどのようなサービスが実行されているかを理解するのに役立ちます。

このステップでは、基本的なポートスキャンのための nmap のインストールと使用方法を紹介しました。安全なターゲットでオープンポートを特定することで、偵察の第一歩を踏み出しました。次のステップでは、スキャン結果を保存して後で分析できるようにする方法を学びます。次に進む前に、nmap コマンドの実行に慣れておいてください。

Nmap スキャン結果のファイルへの保存

nmap を使用した基本的なスキャンが完了したので、次はスキャン結果をファイルに保存して、後で参照できるようにする方法を学びましょう。結果の保存は偵察において不可欠なスキルであり、スキャンを再実行することなく、発見した内容を文書化して後で分析することができます。このステップは前のステップの内容に基づいているため、先に進む前に基本的な nmap スキャンが完了していることを確認してください。

Linux の出力リダイレクト機能を使用すると、コマンドの結果をターミナルに表示する代わりにファイルに保存できます。これは > 記号を使用して行います。この記号は出力を指定されたファイルに書き込み、ファイルが既に存在する場合は上書きします。結果は、デフォルトの作業領域である Kali Linux コンテナ内の /root ディレクトリに保存します。

以下の手順に従って、nmap スキャン結果を保存してください。

  1. localhost に対して別の nmap スキャンを実行し、その出力を /root ディレクトリにある nmap_scan.txt という名前のファイルにリダイレクトします。ターミナルに次のコマンドを入力して Enter キーを押します。

    nmap localhost > /root/nmap_scan.txt

    > 記号は、nmap localhost コマンドの出力を /root/nmap_scan.txt ファイルに転送します。出力はファイルに保存されるため、ターミナルにはスキャン結果が表示されません。スキャンが完了するまで数秒待ちます。

  2. 出力が正常に保存されたことを確認するために、次のコマンドを入力して Enter キーを押し、ファイルの内容を表示します。

    cat /root/nmap_scan.txt

    以下のような出力が表示されるはずです(実際の出力は異なる場合があります)。

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE
    80/tcp   open  http
    ...
    Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

    これにより、スキャン結果が /root/nmap_scan.txt に正常に保存されたことが確認できました。出力をファイルに保存することは、偵察作業中に発見した情報を追跡するための実用的な方法です。

このステップでは、ドキュメント作成のために nmap の出力をファイルにリダイレクトする方法を学びました。このスキルは、次のステップでより高度なスキャン手法に進む際に役立ちます。次に進む前に、保存された結果がファイル内で確認できることを確かめてください。

Nmap スクリプトによるサービスの列挙

基本的なスキャンスキルを習得したところで、このステップでは nmap スクリプトを使用したサービスの列挙(エニュメレーション)を導入し、オープンポートで実行されているサービスに関する詳細な情報を収集します。サービスの列挙は、既知の脆弱性を持つ可能性のある特定のサービスバージョンを特定するのに役立つため、偵察の重要な部分です。このステップでは、nmap がインストールされており、以前のスキャンが完了していることを前提としています。

サービスの列挙は、単にオープンポートを見つけるだけではありません。それらのポートで実行されている正確なソフトウェアとそのバージョンを特定することを目指します。nmap は NSE(Nmap Scripting Engine)と呼ばれるスクリプトエンジンを提供しており、これにはサービスの詳細や潜在的な問題を検出するための事前構築済みスクリプトが含まれています。このステップでは、バージョン検出のために -sV フラグを使用します。

以下の手順に従って、localhost 上のサービスを列挙してみましょう。

  1. localhost に対してバージョン検出を有効にした nmap スキャンを実行します。ターミナルに次のコマンドを入力して Enter キーを押します。

    nmap -sV localhost

    -sV フラグは、オープンポートを調査して詳細なサービスおよびバージョン情報を取得するよう nmap に指示します。スキャンが完了するまで待ちます。基本的なスキャンよりも数秒長くかかる場合があります。以下のような出力が表示されるはずです(実際の出力は異なる場合があります)。

    Starting Nmap 7.91 ( https://nmap.org ) at ...
    Nmap scan report for localhost (127.0.0.1)
    Host is up (0.00010s latency).
    Not shown: 997 closed ports
    PORT     STATE SERVICE VERSION
    80/tcp   open  http    Apache httpd 2.4.41 ((Ubuntu))
    ...
    Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
    Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds

    この出力では、ポート 80 で実行されているサービスのバージョン(Apache httpd 2.4.41 など)を確認できます。特定のバージョンには既知の脆弱性が存在する可能性があるため、この情報は非常に価値があります。

  2. このバージョン検出スキャンの結果を、/root ディレクトリの service_scan.txt という名前のファイルに保存します。次のコマンドを入力して Enter キーを押します。

    nmap -sV localhost > /root/service_scan.txt

    以前と同様に、> 記号は出力を指定されたファイルにリダイレクトします。結果は /root/service_scan.txt に直接保存されるため、ターミナルには表示されません。

  3. ファイルの内容を表示して、出力が保存されたことを確認します。次のコマンドを入力して Enter キーを押します。

    cat /root/service_scan.txt

    先ほどと同じ詳細な出力がファイルに保存されていることが確認できるはずです。

このステップでは、nmap を使用してサービスの列挙を行い、ターゲットで実行されているサービスについてより深い洞察を得る方法を学びました。次のステップでは、別のツールを使用して DNS 偵察について学習します。次に進む前に、バージョン検出スキャンの実行方法と出力の保存方法を理解していることを確認してください。

dnsrecon のインストールと DNS クエリの実行

このステップでは、ドメインに関する DNS 情報を収集するためのツールである dnsrecon を使用した DNS 偵察に焦点を移します。DNS の列挙は、サブドメイン、メールサーバー、その他のインフラの詳細を特定するのに役立ち、ターゲットのオンライン上の存在を理解するために不可欠です。このステップは初心者向けに設計されており、Kali Linux コンテナのシェル内で作業していることを前提としています。

DNS(Domain Name System)は、example.com のようなドメイン名を、コンピュータが通信に使用する IP アドレスに変換します。DNS レコードには、ホストの IP アドレス(A レコード)、メールサーバー(MX レコード)などの情報が含まれています。dnsrecon は、これらのレコードを照会してドメインの設定に関する詳細を明らかにするツールです。この実験では、練習用の安全なターゲットとして example.com を使用します。

以下の手順に従って、dnsrecon をインストールして使用してください。

  1. パッケージリストを更新して、最新バージョンの dnsrecon をインストールできるようにします。ターミナルに次のコマンドを入力して Enter キーを押します。

    apt update

    これによりパッケージリストが更新されます。プロセスが完了するまで待ちます。更新の進行状況を示す出力が表示されます。

  2. 次のコマンドを入力して Enter キーを押し、dnsrecon をインストールします。

    apt install -y dnsrecon

    -y フラグはインストールを自動的に承認します。インストールが完了するまで数秒待ちます。インストールの進行状況を示す出力が表示されます。

  3. インストールが完了したら、example.com に対して基本的な DNS 列挙を実行します。次のコマンドを入力して Enter キーを押します。

    dnsrecon -d example.com

    -d オプションは、照会するドメインを指定します。コマンドを実行すると、以下のような出力が表示されます(実際の出力は異なる場合があります)。

    [*] Performing General Enumeration of Domain: example.com
    [*] DNSSEC is not configured for example.com
    [*] SOA ns.icann.org 199.4.138.53
    [*] NS ns.icann.org 199.4.138.53
    [*] A example.com 93.184.216.34
    [*] AAAA example.com 2606:2800:220:1:248:1893:25c8:1946
    [*] MX example.com 0 .
    [*] TXT example.com "v=spf1 -all"
    [*] Enumeration Complete.

    この出力は example.com のさまざまな DNS レコードを示しており、その構成に関する洞察を提供します。

    • SOA (Start of Authority): ゾーンに関する管理情報が含まれます。
    • NS (Name Server): ドメインに対して権限を持つサーバーをリストします。
    • A (Address): ドメイン名を IPv4 アドレスにマッピングします。
    • AAAA (IPv6 Address): ドメイン名を IPv6 アドレスにマッピングします。
    • MX (Mail Exchanger): ドメインのメール受信を担当するメールサーバーを指定します。
    • TXT (Text): 任意のテキストを保持します。ここでは SPF(Sender Policy Framework)などの検証目的で使用されています(v=spf1 -all)。
  4. DNS 列挙の結果を、/root ディレクトリの dns_results.txt という名前のファイルに保存します。次のコマンドを入力して Enter キーを押します。

    dnsrecon -d example.com > /root/dns_results.txt

    > 記号は出力を指定されたファイルにリダイレクトします。結果は /root/dns_results.txt に直接保存されるため、ターミナルには表示されません。

  5. ファイルの内容を表示して、出力が保存されたことを確認します。次のコマンドを入力して Enter キーを押します。

    cat /root/dns_results.txt

    先ほどと同じ DNS 列挙の結果がファイルに保存されていることが確認できるはずです。

このステップでは、dnsrecon を使用した DNS 偵察を紹介し、重要なドメイン情報を収集する方法を学びました。次のステップでは、これまでのすべての調査結果を 1 つのサマリーファイルにまとめます。次に進む前に、保存された DNS 結果が確認できることを確かめてください。

まとめ

この実験では、Kali Linux のツールを使用してターゲットシステムに関する情報を収集するための、不可欠な偵察(レコンネサンス)手法を学びました。まず、nmap をインストールして安全なローカルターゲット(localhost)に対して基本的なポートスキャンを実行し、オープンポートと、インストールした Apache Web サーバーなどの関連サービスを特定しました。次に、これらの結果をドキュメント化のためにファイルに保存しました。その後、nmap スクリプトを使用して詳細なバージョン情報を明らかにするサービスの列挙を行い、最後に dnsrecon を使用して example.com のドメインレコードを照会する DNS 偵察を実施しました。ネットワークスキャンと情報収集におけるこれらの基礎スキルは、ペネトレーションテストやネットワークセキュリティ監査において非常に重要です。