ネットワークセキュリティの世界で広く知られているツール「Ettercap」。この強力なツールは、中間者攻撃(Man-in-the-Middle attack, MITM)の実行、ネットワークトラフィックの解析、さらにはリアルタイムでのデータ操作まで可能にします。しかし、Ettercapがその多機能性を発揮するためには、いくつかのコンポーネントが連携して動作する必要があります。その中でも、ettercap-commonパッケージは、Ettercapの動作に不可欠な基盤を提供する重要な要素です。
多くの場合、ユーザーはグラフィカルインターフェース版(ettercap-graphical)やテキストベース版(ettercap-text-only)を直接インストールして使用しますが、これらのパッケージはettercap-commonに依存しています。つまり、Ettercap本体をインストールすると、通常はこのettercap-commonも自動的にインストールされることになります。
このブログ記事では、普段あまり意識されることのないettercap-commonパッケージに焦点を当て、その役割、含まれる主要なファイルやディレクトリ、設定の重要性について詳しく解説していきます。Ettercapをより深く理解し、効果的かつ安全に活用するために、この基盤となるパッケージの知識は不可欠です。さあ、Ettercapの心臓部とも言えるettercap-commonの世界を探求しましょう!
ettercap-commonとは何か?
ettercap-commonは、Ettercapスイートの主要な実行可能ファイル(GUI版またはテキスト版)が共通して必要とする、アーキテクチャ非依存のファイル群を含むパッケージです。具体的には、以下のような要素が含まれています。
- 設定ファイル (Configuration Files): Ettercapの動作をカスタマイズするための中心的な設定ファイル(例:
etter.conf)が含まれます。 - プラグイン (Plugins): Ettercapの機能を拡張するための共有ライブラリ形式のプラグインファイルが格納されています。
- フィルター用スクリプト・データ (Filters): トラフィックを操作するためのフィルターのサンプルや関連データが含まれます。
- ドキュメンテーション (Documentation): READMEファイルや変更履歴(Changelog)など、Ettercapの使用に関する文書が含まれます。
- 共有データファイル (Shared Data Files): 例えば、DNSスプーフィングに使用される
etter.dnsファイルなどがこれにあたります。
言い換えれば、ettercap-commonはEttercapというツール群の「共通部品箱」のようなものです。実際にユーザーが操作するインターフェース(GUIやテキストコマンド)を提供するettercap-graphicalやettercap-text-onlyは、この共通部品箱の中身を利用して動作します。そのため、ettercap-commonパッケージなしにはEttercapは正しく機能しません。
ettercap-common自体は実行可能なプログラムではありません。あくまで、他のEttercapパッケージが必要とする設定やデータを提供する役割を担っています。
インストールについて
通常、ユーザーがettercap-commonパッケージを個別にインストールする必要はありません。Debian、Ubuntu、Kali LinuxなどのDebian系ディストリビューションでは、APTパッケージマネージャーを使用してEttercapのGUI版またはテキスト版をインストールする際に、依存関係として自動的にettercap-commonもインストールされます。
例えば、GUI版のEttercapをインストールする場合:
sudo apt update
sudo apt install ettercap-graphical
このコマンドを実行すると、ettercap-graphicalパッケージと共に、依存関係にあるettercap-commonもインストールされます(まだインストールされていない場合)。
テキスト版のみをインストールする場合も同様です:
sudo apt update
sudo apt install ettercap-text-only
もし何らかの理由でettercap-commonがシステムに存在しない、あるいは破損している場合は、個別にインストールすることも可能です。
sudo apt update
sudo apt install ettercap-common
ただし、これは通常、依存関係の問題を解決する際など、特殊な状況でのみ必要となる操作です。基本的には、Ettercap本体(GUI版またはテキスト版)のインストールを通じてettercap-commonも導入されると覚えておけば良いでしょう。
主要なファイルとディレクトリ
ettercap-commonパッケージがインストールされると、システム内にいくつかの重要なファイルとディレクトリが配置されます。これらの場所と内容は、Ettercapの設定やカスタマイズを行う上で非常に重要です。以下に代表的なものを挙げます(パスは一般的なLinuxディストリビューションにおける例です)。
| パス | 概要 | 主な内容・役割 |
|---|---|---|
/etc/ettercap/ |
設定ファイルディレクトリ | Ettercapの主要な設定ファイルであるetter.confが格納されています。また、DNSスプーフィング用のホストリストetter.dnsもこのディレクトリ、あるいは/usr/share/ettercap/に配置されることがあります(環境により異なる場合があります)。 |
/usr/share/ettercap/ |
共有データディレクトリ | プラグイン(*.soまたは*.dll)、フィルターのサンプル(*.ef)、ターゲットリスト、その他のデータファイルが格納されています。 |
/usr/lib/ettercap/ (または類似のパス) |
プラグインライブラリディレクトリ | コンパイルされたプラグインの共有ライブラリファイル(*.so)が実際に配置される場所です。/usr/share/ettercap/にスクリプトがあり、こちらに実体がある構成の場合もあります。 |
/usr/share/doc/ettercap-common/ |
ドキュメンテーションディレクトリ | README、copyright、changelog(変更履歴)などのドキュメントファイルが含まれます。Ettercapのライセンス情報やバージョン間の変更点を確認する際に参照します。 |
/usr/bin/etterfilter |
フィルターコンパイラ | Ettercapのフィルター定義ファイル(*.ecf)を、Ettercapが実行時に使用できるバイナリ形式(*.ef)にコンパイルするためのユーティリティです。これもettercap-commonまたは関連パッケージに含まれることがあります。 |
これらのファイルやディレクトリの場所は、使用しているOSやディストリビューション、インストール方法によって若干異なる場合があります。もし見つからない場合は、findコマンドやlocateコマンド、あるいはパッケージマネージャーのファイルリスト表示機能(例: dpkg -L ettercap-common)を使って確認することができます。
中心的な設定ファイル: etter.conf
ettercap-commonパッケージに含まれるファイルの中でも、特に重要なのが/etc/ettercap/etter.confです。このファイルはEttercap全体の動作を制御するための多数のパラメータを定義しています。以下に、主要な設定項目とその意味をいくつか紹介します。
権限設定 ([privs]セクション)
Ettercapはネットワークインターフェースをプロミスキャスモードに設定したり、rawソケットを使用したりするために、通常はroot権限で起動する必要があります。しかし、初期化が完了した後は、セキュリティリスクを低減するために権限を放棄(ドロップ)することが推奨されます。etter.confの[privs]セクションで、権限放棄後のユーザーID(UID)とグループID(GID)を指定します。
[privs]
ec_uid = 65534 # nobody相当のUID (デフォルト)
ec_gid = 65534 # nogroup相当のGID (デフォルト)
セキュリティ上、可能な限り権限の低いユーザー(例: nobody)を指定することが望ましいです。ただし、ログファイルへの書き込みなど、特定の操作を行うディレクトリへの書き込み権限がそのユーザー/グループに必要になる場合があります。中間者攻撃(特にSSL関連)を行う場合など、特定のシナリオでは権限をドロップせずroot権限(UID=0, GID=0)を維持する必要があるケースもありますが、これはリスクを伴うため慎重に行うべきです。
MITM攻撃関連設定 ([mitm]セクション)
中間者攻撃(ARPポイズニング、ICMPリダイレクト、DHCPスプーフィング、NDPポイズニングなど)に関する詳細なパラメータを設定します。例えば、ARPポイズニングの送信間隔や動作モードなどを調整できます。
[mitm]
# ARPポイズニング関連
arp_storm_delay = 10 # ARPストーム検知時の遅延 (ミリ秒)
arp_poison_smart = 0 # スマートポイズニング (0:無効, 1:有効)
arp_poison_delay = 10 # ARPポイズニングパケット送信間隔 (秒)
arp_poison_icmp = 1 # ARPポイズニング時にICMPを送信するか (0:しない, 1:する)
# ... その他多くのパラメータ ...
# NDPポイズニング関連 (IPv6)
ndp_poison_delay = 5 # NDPポイズニングパケット送信間隔 (秒)
ndp_poison_send_delay = 1500 # NDPポイズニングパケット送信遅延 (マイクロ秒)
# ... その他 ...
これらの設定は、ネットワーク環境や攻撃対象に応じて最適な値が異なります。デフォルト設定で問題が発生する場合や、より隠密な攻撃を行いたい場合に調整します。
SSL MITM 設定
EttercapがSSL/TLS通信のMITM攻撃を行うためには、トラフィックを特定のポートにリダイレクトする必要があります。このリダイレクト処理は、Linux環境では通常iptables(IPv4)やip6tables(IPv6)コマンドを使用して行われます。etter.conf内で、これらのコマンドを自動的に実行するための設定があります。
# Linuxの場合の例 (通常はコメントアウトされている)
#redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
# IPv6の場合
#redir6_command_on = "ip6tables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
#redir6_command_off = "ip6tables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
SSL MITM攻撃を有効にするには、これらの行のコメント(行頭の#)を解除し、必要に応じて[privs]セクションでUID/GIDを0(root)に設定する必要があります(iptablesコマンドの実行にroot権限が必要なため)。
注意: etter.confの変更はEttercapの動作に大きな影響を与えます。変更前には必ずバックアップを取り、各パラメータの意味を理解した上で編集してください。特に、権限設定やSSL MITM関連の設定変更は、セキュリティリスクを伴う可能性があるため注意が必要です。
その他の設定
etter.confには、他にもログの取得方法、表示設定、プロトコル解析(ディセクタ)の有効/無効、チェックサム検証の有無など、多岐にわたる設定項目が含まれています。Ettercapを使いこなすためには、この設定ファイルの内容を一度確認し、必要に応じてカスタマイズすることが重要です。
プラグインとフィルター
Ettercapの強力な機能の一つに、プラグインとフィルターによる拡張性があります。ettercap-commonパッケージは、これらの機能を実現するための基盤となるファイルやディレクトリを提供します。
プラグイン (Plugins)
プラグインは、Ettercapに特定の機能を追加するためのモジュールです。これらは通常、コンパイルされた共有ライブラリ(Linuxでは.soファイル)として提供され、/usr/lib/ettercap/(または類似のパス)に格納されます。ettercap-commonには、標準でいくつかのプラグインが含まれています。
代表的なプラグインの例:
chk_poison:ARPポイズニングの結果を確認する。dns_spoof:DNS応答を偽装する。dos_attack:特定のホストに対してDoS攻撃を試みる。find_conn:特定の条件に一致する接続を探す。repoison_arp:定期的にARPテーブルを再ポイズニングする。
EttercapのGUIまたはテキストインターフェースから、これらのプラグインを有効化・無効化して利用します。
フィルター (Filters)
フィルターは、Ettercapが傍受したネットワークトラフィックの内容をリアルタイムで検査し、条件に基づいてパケットを変更(書き換え)したり、破棄(ドロップ)したりするための強力な機能です。フィルターは専用のスクリプト言語で記述され、etterfilterユーティリティを使ってコンパイルする必要があります。
フィルターのソースファイル(.ecf)はテキスト形式で記述します。ettercap-commonには、/usr/share/ettercap/ディレクトリ内にフィルターの書き方を示すサンプルスクリプト(例: etter.filter.examples)が含まれていることがあります。
フィルターの記述例(特定の文字列を含むTCPパケットを置換する):
if (ip.proto == TCP && tcp.dst == 80) {
if (search(DATA.data, "Example")) {
replace("Example", "Replaced");
msg("Replaced 'Example' in HTTP traffic.\n");
}
}
このソースファイルをmyfilter.ecfとして保存し、etterfilterコマンドでコンパイルします。
etterfilter myfilter.ecf -o myfilter.ef
これにより、Ettercapが読み込めるバイナリ形式のフィルターファイルmyfilter.efが生成されます。Ettercapを起動する際に-Fオプションでこのファイルを指定することで、フィルターが有効になります。
sudo ettercap -Tq -F myfilter.ef -M arp /target1/ /target2/
フィルターは非常に強力な機能ですが、誤った使い方をするとネットワークに深刻な影響を与える可能性があります。使用する際は、フィルターのロジックを十分にテストし、意図したとおりに動作することを確認してから適用することが重要です。
ettercap-commonは、これらプラグインやフィルター機能の基本的なファイルやサンプルを提供することで、Ettercapの拡張性を支えています。
実践的な利用(設定ファイルの活用)
これまで見てきたように、ettercap-commonパッケージ自体は直接実行するものではありません。しかし、このパッケージに含まれる設定ファイル、特に/etc/ettercap/etter.confを理解し、適切に編集することは、Ettercapを効果的かつ安全に利用する上で非常に重要です。
ここでは、etter.confのカスタマイズが役立つ具体的なシナリオをいくつか紹介します。
シナリオ1: ログファイルの保存場所を変更する
デフォルトでは、Ettercapはログファイルをカレントディレクトリ(Ettercapを実行したディレクトリ)に作成しようとします。権限の問題や整理の都合上、ログファイルの保存場所を特定のディレクトリ(例: /var/log/ettercap/)に固定したい場合があります。
etter.confには直接ログファイルのパスを指定する項目は標準ではありませんが、Ettercap実行時の権限(ec_uid, ec_gid)を調整し、指定したユーザーが書き込み可能なディレクトリでEttercapを実行するか、ラッパースクリプト等で対応する方法が考えられます。
あるいは、ログ機能を持つプラグインを利用するか、Ettercapの出力をリダイレクトする方法もあります。
etter.confの設定と運用方法を組み合わせることで、ログ管理を改善できます。
シナリオ2: より隠密なARPスプーフィングを行う
デフォルトのARPスプーフィング設定([mitm]セクションのarp_poison_delayなど)は、比較的頻繁にARPパケットを送信します。これは検知されやすい可能性があります。より隠密に行うために、etter.confでARPパケットの送信間隔を長くするなどの調整が可能です。
[mitm]
# デフォルトは10秒かもしれないが、より長く設定する
arp_poison_delay = 30
ただし、間隔を長くしすぎると、ターゲットのARPキャッシュが元に戻ってしまい、MITM状態が維持できなくなる可能性もあるため、バランスが重要です。
シナリオ3: SSL MITM攻撃を有効にする(注意が必要!)
前述の通り、SSL MITM攻撃を行うにはetter.confの編集が必要です。
[privs]セクションでUIDとGIDを0に変更します。redir_command_onとredir_command_off(必要ならIPv6用も)のコメントを解除します。
[privs]
ec_uid = 0
ec_gid = 0
# Linuxの場合の例
redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dport %port -j REDIRECT --to-port %rport"
警告: SSL MITM攻撃を有効にする設定(特にUID/GIDを0にすること)は、システム全体のセキュリティリスクを高めます。Ettercapが常にroot権限で動作することになるため、Ettercap自体に脆弱性があった場合、システム全体が危険に晒される可能性があります。この設定は、リスクを十分に理解し、管理されたテスト環境でのみ使用するようにしてください。公共のネットワークや許可されていないネットワークでの使用は絶対に避けてください。
これらの例のように、etter.confを編集することで、Ettercapの動作を細かく制御し、特定のニーズに合わせることが可能です。ettercap-commonは、このカスタマイズの基礎となる設定ファイルを提供しているのです。
トラブルシューティングと注意点
ettercap-commonパッケージはEttercapの基盤であるため、ここに関連する問題が発生するとEttercap全体が正常に動作しなくなることがあります。以下によくある問題と対処法、および利用上の注意点を挙げます。
問題1: 設定ファイルが見つからない、または読み込めない
Ettercap起動時にetter.confが見つからない、またはパーミッションエラーで読み込めないというエラーが出ることがあります。
- 対処法:
/etc/ettercap/etter.confが存在するか確認します。- 存在しない場合は、
ettercap-commonパッケージが正しくインストールされているか確認し、必要であれば再インストールします (sudo apt install --reinstall ettercap-common)。 - ファイルが存在する場合は、パーミッションを確認します。通常、rootユーザーまたはEttercapを実行するユーザーが読み取り可能である必要があります (
ls -l /etc/ettercap/etter.conf)。必要に応じてchmodやchownでパーミッションを修正します。
問題2: プラグインやフィルターがロードされない
特定のプラグインを有効にしても機能しない、またはカスタムフィルターが適用されない場合があります。
- 対処法:
- プラグインの場合: プラグインの共有ライブラリファイル(
.so)が正しいディレクトリ(通常/usr/lib/ettercap/)に存在し、適切なパーミッションを持っているか確認します。 - フィルターの場合: フィルターソース(
.ecf)がetterfilterで正しくコンパイルされ、バイナリファイル(.ef)が生成されているか確認します。Ettercap起動時に-Fオプションで正しい.efファイルを指定しているか確認します。 - 依存関係の問題: プラグインやフィルターが必要とするライブラリがシステムにインストールされていない可能性もあります。エラーメッセージをよく確認してください。
- プラグインの場合: プラグインの共有ライブラリファイル(
問題3: etter.dns ファイルが見つからない
DNSスプーフィングプラグインを使用する際に、etter.dnsファイルが見つからないというエラーが出ることがあります。
- 対処法:
/etc/ettercap/etter.dnsまたは/usr/share/ettercap/etter.dnsにファイルが存在するか確認します。- 存在しない場合は、空のファイルを作成するか、
ettercap-commonを再インストールしてみてください。 - ファイルが存在してもエラーが出る場合は、パーミッションを確認してください。
- 環境によっては、
etter.dns.saveのような名前で存在する場合もあります。その場合はリネームやコピーを試してください。
セキュリティと倫理に関する注意点
- 権限管理:
etter.confでの権限設定(ec_uid,ec_gid)はセキュリティ上非常に重要です。不必要にroot権限でEttercapを動作させ続けることは避けてください。 - ツールの悪用禁止: Ettercapは強力なネットワーク解析・操作ツールですが、その能力ゆえに悪用される危険性も伴います。必ず、自身が管理権限を持つネットワーク、または明示的に許可を得たネットワークでのみ、学習やテスト目的で使用してください。 他者の通信を無断で傍受・改ざんすることは、法律で禁止されており、重大な犯罪行為となります。
- 影響範囲の理解: MITM攻撃やフィルターによるトラフィック操作は、ネットワーク全体や接続されている他のデバイスに予期せぬ影響を与える可能性があります。特にフィルターを使用する場合は、そのロジックが意図しない副作用を持たないか十分に検証してください。
ettercap-commonとその設定ファイルを理解することは、トラブルシューティングだけでなく、Ettercapを安全かつ倫理的に使用するための第一歩となります。
まとめ
この記事では、Ettercapの基盤となるettercap-commonパッケージについて掘り下げてきました。ettercap-commonは、ユーザーが直接操作する実行ファイルではありませんが、Ettercapがその強力な機能を発揮するために不可欠な要素を提供しています。
主なポイントを振り返ってみましょう:
ettercap-commonは、EttercapのGUI版およびテキスト版が必要とする共通の設定ファイル、プラグイン、データファイル、ドキュメントを含むパッケージです。- 通常、Ettercap本体をインストールする際に依存関係として自動的にインストールされます。
- 中心的な設定ファイルである
/etc/ettercap/etter.confは、権限管理、MITM攻撃の挙動、SSL MITMの設定など、Ettercapの動作を細かく制御するための重要なパラメータを含んでいます。 - プラグインやフィルター機能の基盤も
ettercap-commonによって提供され、Ettercapの拡張性を高めています。 etter.confの設定を理解しカスタマイズすることで、Ettercapをより効果的に、そして安全に利用することが可能になります。- Ettercapの使用にあたっては、技術的な知識だけでなく、セキュリティと倫理に関する深い理解が不可欠です。
Ettercapを単なる「ツール」として使うだけでなく、その背後にあるettercap-commonのような構成要素や設定ファイルを理解することで、より高度な活用や問題解決が可能になります。ネットワークセキュリティの学習や実践において、ツールの内部構造への理解を深めることは、スキルアップのための重要なステップと言えるでしょう。
この記事が、Ettercapとその基盤であるettercap-commonへの理解を深める一助となれば幸いです。
参考情報
より詳細な情報については、以下の公式リソース等を参照してください。
- Ettercap 公式サイト: https://ettercap.github.io/ettercap/
- Kali Linux Tools – Ettercap: https://www.kali.org/tools/ettercap/ (ettercap-commonに関する説明も含まれます)
- etter.conf Man Page (オンライン): (お使いのシステムで
man etter.confを実行するか、オンラインのマニュアルページを参照してください。例: https://linux.die.net/man/5/etter.conf ※バージョンにより内容が異なる場合があります) - Ettercap GitHub Repository (etter.confの最新版など): https://github.com/Ettercap/ettercap