Ettercap で ARP スプーフィングを行う

Beginner
今すぐ練習

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

はじめに

この実験では、マン・イン・ザ・ミドル攻撃用の総合ツールである Ettercap を使用して、ARP スプーフィング攻撃を実行する方法を学びます。arp-scannmap を使ったネットワークデバイスの発見を探索し、その後、ARP ポイズニングを通じてターゲット間のトラフィックを傍受する練習を行います。

この演習では、制御された環境で ARP スプーフィング攻撃を実行し、監視する実践的な経験を提供します。各攻撃段階に必要な重要なコマンドを学ぶと同時に、現実世界でのセキュリティ上の影響と軽減技術を理解します。


Skills Graph

Ettercap のインストール

このステップでは、ローカルエリアネットワーク(LAN)に対するマン・イン・ザ・ミドル攻撃に使用される強力なネットワークセキュリティツールである Ettercap をインストールします。始める前に、Ettercap が何をするのか理解しましょう。Ettercap を使用すると、同じネットワーク上のデバイス間のネットワークトラフィックを傍受、分析、および変更することができます。これには、この実験で使用する ARP ポイズニング、ライブ接続のスニッフィング、およびさまざまなネットワーク分析機能が含まれます。

まず、Linux システムのパッケージリストを更新する必要があります。これにより、利用可能な最新バージョンの Ettercap をインストールできます。

sudo apt update

sudo コマンドは管理者権限を付与し、apt update はシステムの利用可能なソフトウェアパッケージのリストを更新します。

次に、以下のコマンドで Ettercap をインストールします。

sudo apt install -y ettercap-text

このコマンドで行われていることは以下の通りです。

  • sudo apt install は Debian/Ubuntu システムでソフトウェアをインストールする標準的な方法です。
  • -y フラグは、インストール中のすべてのプロンプトに自動的に「はい」と答えます。
  • 具体的には ettercap-text(テキスト専用バージョン)をインストールしています。理由は以下の通りです。
    1. コマンドライン環境でより安定しています。
    2. グラフィカルバージョンよりもシステムリソースを少なく使用します。
    3. リモート接続や自動化タスクに適しています。

インストールが完了したら、インストールされたバージョンを確認することで、すべてが正しく動作したことを検証しましょう。

ettercap --version

以下のように、バージョン番号とビルド情報が表示されるはずです。

Ettercap 0.8.3.1 (built on ...)

これにより、Ettercap が正しくインストールされ、使用可能な状態であることが確認されます。この実験全体を通じて、Ettercap のテキストインターフェイスを使用します。理由は以下の通りです。

  • LabEx 仮想マシン環境でより信頼性が高いです。
  • ARP スプーフィングに必要なすべての機能を提供します。
  • コマンドラインのネットワークツールに慣れるのに役立ちます。

ターゲットデバイスの特定

ARP スプーフィング攻撃を開始する前に、まずローカルネットワーク上の潜在的なターゲットを特定する必要があります。ARP スプーフィングは、デバイスにネットワーク上の他の誰かであると思わせることで機能するため、実際に存在するデバイスを把握する必要があります。ここでは、2 つの重要なネットワークスキャンツールを使用します。arp-scan は迅速なデバイス発見に、nmap はより詳細な情報を取得するために使用します。

まず、必要なツールがインストールされていることを確認しましょう。以下のコマンドを実行して、両方のユーティリティをインストールします。

sudo apt install -y arp-scan nmap

次に、ローカルネットワークに接続しているネットワークインターフェイスを特定する必要があります。ほとんどの場合、特に LabEx 仮想マシンでは、これは eth0 です。利用可能なインターフェイスを確認し、正しいものを見つけるには、以下のコマンドを実行します。

ip a

実際に IP アドレスが割り当てられているインターフェイスを探します(ループバックアドレス 127.0.0.1 ではありません)。これがスキャンに使用するインターフェイスです。これで、ローカルネットワークをスキャンして、接続されているすべてのデバイスを発見することができます。

sudo arp-scan --interface=eth0 --localnet

このコマンドは、サブネット上のすべての可能な IP アドレスに ARP 要求を送信し、応答を待ちます。アクティブなすべてのデバイス、それらの IP アドレス、MAC アドレス、場合によってはメーカー情報が一覧表示された出力が表示されます。

192.168.1.1   00:11:22:33:44:55   Router Manufacturer
192.168.1.2   aa:bb:cc:dd:ee:ff   Target Device

特定のターゲットをより詳細に調査するには、nmap を使用することができます。これは、ターゲットデバイスで実行されているサービスを理解するのに特に役立ちます。

sudo nmap -sV 192.168.1.2

-sV フラグは、nmap に開いているポートを調査し、サービス/バージョン情報を特定するよう指示します。スキャン結果から 1 つのデバイスを選択し、ARP スプーフィング攻撃のターゲットとします(学習演習中は、ルーターやゲートウェイなどのネットワークインフラストラクチャをターゲットにしないことがベストプラクティスです)。

ARP スプーフィングの開始

このステップでは、Ettercap を使用して、ターゲットデバイスとルーターの間で ARP スプーフィングを実行します。ARP スプーフィングは、攻撃者が偽の ARP メッセージを送信して、自分の MAC アドレスを他のデバイスの IP アドレスに関連付ける手法です。この攻撃により、ターゲットとルーターの間のネットワークトラフィックを、自分のマシンを介して通信させることで傍受することができます。

開始する前に、3 つの重要な情報を特定する必要があります。

  1. ネットワークインターフェイス名(LabEx 仮想マシンでは通常 eth0
  2. ルーター/ゲートウェイの IP アドレス(例:192.168.1.1)
  3. ターゲットデバイスの IP アドレス(例:192.168.1.2)

攻撃を開始するには、ターミナルを開き、以下のコマンドで Ettercap をテキストモードで実行します。

sudo ettercap -T -i eth0 -M arp:remote /192.168.1.1// /192.168.1.2//

このコマンドの各部分が何をするのか解説します。

  • sudo: コマンドをルート権限で実行します(ネットワーク操作に必要)
  • -T: テキストモードのインターフェイスを有効にします(グラフィカルではなく)
  • -i eth0: 使用するネットワークインターフェイスを指定します
  • -M arp:remote: ARP ポイズニングモジュールをアクティブにします
  • 最後の 2 つの引数は、/IP// 形式でルーターとターゲットの IP アドレスを指定します(実際の IP アドレスに置き換えてください)

攻撃が正常に開始すると、Ettercap はポイズニングされたデバイスとその MAC アドレスを示す出力を表示します。

ARP poisoning victims:
 GROUP 1 : 192.168.1.1 00:11:22:33:44:55
 GROUP 2 : 192.168.1.2 AA:BB:CC:DD:EE:FF

攻撃が機能していることを確認するには、以下のコマンドで自分のマシンの ARP テーブルを確認できます。

arp -a

成功した場合、ルーターとターゲットデバイスの両方が、実際の MAC アドレスではなく自分のマシンの MAC アドレスを表示するようになります。これは、両者間のすべてのトラフィックが自分のシステムを介してルーティングされていることを意味します。

スプーフィングされたトラフィックのキャプチャ

このステップでは、Wireshark と tcpdump を使用して、ターゲットデバイスとルーターの間を流れるネットワークトラフィックをキャプチャし、分析します。これにより、ARP スプーフィング攻撃の有効性を実証することができます。ARP スプーフィングが成功すると、ターゲットとルーターの間のすべてのトラフィックが自分のマシンを通過するため、それを検査することができます。

まず、コマンドラインモードで Wireshark をインストールしましょう。Wireshark は強力なネットワークプロトコルアナライザーで、tshark はそのコマンドライン版です。

sudo apt install -y wireshark-common tshark

トラフィックをキャプチャする前に、キャプチャファイル用の専用ディレクトリを作成するのが良い習慣です。これにより、プロジェクトが整理され、後でファイルを見つけやすくなります。

mkdir -p ~/project/captures

これで、tcpdump を使用して実際のネットワークトラフィックをキャプチャします。このコマンドは停止するまで継続して実行されるため、新しいターミナルウィンドウを開いて実行します。-i eth0 フラグはネットワークインターフェイスを指定し、-w は出力をファイルに保存します。

sudo tcpdump -i eth0 -w ~/project/captures/spoofed_traffic.pcap

意味のあるトラフィックをキャプチャするために、数分間これを実行しましょう。この間、ターゲットとルーターの間の通常のネットワークアクティビティが記録されます。準備ができたら、Ctrl+C を押してキャプチャを停止します。

キャプチャしたトラフィックを分析するには、tshark を使用します。このコマンドはキャプチャファイルを読み取り、キャプチャされたすべてのパケットの概要を表示します。

tshark -r ~/project/captures/spoofed_traffic.pcap

より焦点を絞った分析を行うために、HTTP トラフィックを具体的にフィルタリングすることができます。これは、Web リクエストとレスポンスを調査するのに役立ちます。

tshark -r ~/project/captures/spoofed_traffic.pcap -Y "http"

特に重要なのは、POST リクエストを調査することです。これらのリクエストには、ログイン資格情報などの機密データが含まれていることが多いからです。このコマンドは、それらのリクエストのみをフィルタリングします。

tshark -r ~/project/captures/spoofed_traffic.pcap -Y "http.request.method == POST"

攻撃の終了

このステップでは、ARP スプーフィング攻撃を適切に終了し、通常のネットワーク操作を復元します。これは、セキュリティテスト後にネットワークの整合性を確保するための重要なステップです。ARP スプーフィングによりネットワークの状態が変化するため、これらの変更を慎重に元に戻す必要があります。

まず、Ettercap プロセスを停止します。Ettercap のターミナルウィンドウがまだ開いている場合は、q を押して正常に終了します。これにより、Ettercap に適切な終了信号が送信されます。ターミナルを閉じてしまった場合は、手動でプロセスを見つけて終了させる必要があります。

sudo pkill -f ettercap

次に、マシンの ARP キャッシュをクリアして、ポイズニングされたエントリを削除します。ARP キャッシュは IP アドレスと MAC アドレスのマッピングを保存しており、攻撃中にこれらは変更されています。以下のコマンドで、すべてのネイバー/ARP エントリを完全にクリーンアップします。

sudo ip -s -s neigh flush all

ARP キャッシュが適切にクリアされたことを確認しましょう。このコマンドで現在の ARP テーブルのエントリを表示します。

arp -a

出力には、ネットワーク上のデバイスの正しい MAC アドレスが表示され、実際のハードウェアアドレスと一致するはずです。完全にクリーンアップするために、ネットワークインターフェイスを再起動します。これにより、すべてのネットワーク設定がリセットされます。

sudo ifconfig eth0 down && sudo ifconfig eth0 up

最後に、ゲートウェイに ping を送信して、ネットワーク接続が完全に復元されたことを確認します。これにより、通常のネットワーク操作が再開されたことが確認できます。

ping -c 4 192.168.1.1

パケット損失なしで正常な ping 応答が表示されるはずです。これは、ネットワークが再び正常に機能していることを示しています。問題が発生した場合は、ネットワークサービスを再起動するか、影響を受けたデバイスを再起動する必要があるかもしれません。

まとめ

この実験では、Ettercap のコマンドラインインターフェイスを使用して ARP スプーフィング攻撃を実行する方法を学びました。この演習では、Ettercap-text のインストール、arp-scan と nmap を使用したネットワークターゲットの特定、および ARP キャッシュのポイズニングによる MITM (中間者攻撃) の実行を行いました。

また、スプーフィングされたデバイス間のネットワークトラフィックの傍受と、通常の操作を復元するための攻撃の適切な終了方法を練習しました。この実験では、重要な ARP ポイズニング技術を実証するとともに、サイバーセキュリティ評価におけるネットワーク調査の重要性を強調しました。