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

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 はアクセス可能を意味します)、および関連するサービス(ポート80の http など)がリストアップされます。この情報は、システム上でどのようなサービスが実行されているかを理解するのに役立ちます。

このステップでは、基本的なポートスキャンのために 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 2>&1
    

    > 記号は出力を指定したファイルにリダイレクトし、2>&1 は標準エラー出力を同じファイルにキャプチャします。dnsrecon はスキャン詳細を標準エラーに出力する場合があるため、両方の出力ストリームを保存することで、/root/dns_results.txt に空のファイルではなく完全な結果が含まれるようにします。

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

    cat /root/dns_results.txt
    

    上記と同じDNS列挙結果がファイルに保存されているはずです。

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

まとめ

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