Nmap と DNS を使った Kali Linux 偵察

Kali LinuxKali LinuxBeginner
今すぐ練習

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

はじめに (Introduction)

この実験 (lab) では、Kali Linux を使用した偵察 (reconnaissance) の基本を学び、ネットワークスキャンと DNS クエリ技術に焦点を当てます。この実践的な経験を通して、強力なネットワークスキャンツールである nmap を使用して、ターゲットシステム上の開いているポートとサービスを特定し、dnsrecon を使用して DNS 情報を収集する方法を学びます。初心者向けに設計されたこの実験 (lab) では、独立したクラウドホスト上で実行されている安全な LabEx VM 環境内で、ステップバイステップの手順を提供します。nmap を使用してポートスキャンを実行し、スクリプトを使用してサービスを列挙し、DNS レコードをクエリし、分析のために調査結果を保存します。ターミナルを開くと、Kali Linux コンテナのシェルに自動的に接続され、コンテナを手動で起動または入力する必要なく、すぐに練習を開始できます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kali(("Kali")) -.-> kali/KaliGroup(["Kali"]) kali/KaliGroup -.-> kali/term_ops("Kali Terminal") kali/KaliGroup -.-> kali/file_ctrl("File Management") kali/KaliGroup -.-> kali/pkg_ops("Package Management") kali/KaliGroup -.-> kali/nmap_ops("Nmap Tool") kali/KaliGroup -.-> kali/bash_code("Bash Scripting") subgraph Lab Skills kali/term_ops -.-> lab-552298{{"Nmap と DNS を使った Kali Linux 偵察"}} kali/file_ctrl -.-> lab-552298{{"Nmap と DNS を使った Kali Linux 偵察"}} kali/pkg_ops -.-> lab-552298{{"Nmap と DNS を使った Kali Linux 偵察"}} kali/nmap_ops -.-> lab-552298{{"Nmap と DNS を使った Kali Linux 偵察"}} kali/bash_code -.-> lab-552298{{"Nmap と DNS を使った Kali Linux 偵察"}} end

基本的な Nmap スキャンのインストールと実行 (Installing and Running a Basic Nmap Scan)

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

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 をインストールして使用する方法を紹介しました。安全なターゲット上の開いているポートを特定することにより、偵察 (reconnaissance) の最初のステップを実行しました。次のステップでは、スキャン結果を保存してさらに分析します。先に進む前に、nmap コマンドの実行に慣れていることを確認してください。

Nmap スキャン結果をファイルに保存する (Saving Nmap Scan Results to a File)

nmap で基本的なスキャンを実行したので、スキャンの出力を将来参照するためにファイルに保存する方法を学びましょう。結果の保存は偵察 (reconnaissance) の重要なスキルであり、スキャンを再実行しなくても、調査結果を文書化して後で分析することができます。このステップは前のステップに直接基づいているため、続行する前に基本的な 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 に正常に保存されたことが確認されます。出力をファイルに保存することは、偵察 (reconnaissance) タスク中に調査結果を追跡するための実用的な方法です。

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

Nmap スクリプトを使用したサービス列挙 (Enumerating Services with Nmap Scripts)

基本的なスキャン技術を基に、このステップでは nmap スクリプトを使用してサービス列挙を行い、開いているポートで実行されているサービスに関する詳細な情報を収集する方法を紹介します。サービス列挙は偵察 (reconnaissance) の重要な部分であり、既知の脆弱性を持つ可能性のある特定のバージョンのサービスを特定するのに役立ちます。このステップでは、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

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

  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 偵察 (DNS reconnaissance) を調査します。次に進む前に、バージョン検出スキャンを実行して出力を保存する方法を理解していることを確認してください。

dnsrecon を使用した DNS のインストールとクエリ (Installing and Querying DNS with dnsrecon)

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

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

次の手順に従って、dnsrecon をインストールして使用します。

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

    apt update

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

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

    apt install -y dnsrecon

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

  3. インストールが完了したら、example.com で基本的な DNS 列挙 (DNS enumeration) を実行します。ターミナルに次のコマンドを入力して、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 列挙 (DNS enumeration) の結果を、/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 列挙 (DNS enumeration) の結果が表示され、ファイルに保存されます。

このステップでは、dnsrecon を使用した DNS 偵察 (DNS reconnaissance) を紹介し、重要なドメイン情報を収集する方法を示しました。次のステップでは、すべての調査結果を 1 つの概要ファイルにまとめます。続行する前に、保存された DNS の結果を確認できることを確認してください。

まとめ (Summary)

この実験 (Lab) では、Kali Linux のツールを使用してターゲットシステムに関する情報を収集するための、不可欠な偵察 (reconnaissance) 技術を学びました。まず、安全なローカルターゲット (localhost) で基本的なポートスキャンを実行するために nmap をインストールして使用し、インストールした Apache Web サーバーのような開いているポートと関連サービスを特定しました。次に、これらの結果をドキュメント化のためにファイルに保存しました。次に、nmap スクリプトを使用したサービス列挙 (service enumeration) を調査して詳細なバージョン情報を明らかにし、続いて dnsrecon を使用した DNS 偵察 (DNS reconnaissance) を実行して example.com のドメインレコードをクエリしました。ネットワークスキャンと情報収集におけるこれらの基礎的なスキルは、ペネトレーションテスト (penetration testing) およびネットワークセキュリティ監査 (network security auditing) にとって非常に重要です。