aircrack-ngのパフォーマンスを最適化する
はじめに:buddy-ngとは?
buddy-ng は、有名な無線LANセキュリティ監査ツールスイートである aircrack-ng に含まれるヘルパーアプリケーションです。その主な目的は、aircrack-ng 本体の処理負荷、特にESSID(ネットワーク名)とBSSID(アクセスポイントのMACアドレス)の管理に関連するタスクを肩代わりし、aircrack-ng のパフォーマンスと効率を向上させることです。
多くのアクセスポイントが存在する環境でキャプチャされた大規模なファイル(.capファイル)を処理する場合、aircrack-ng は大量のESSID/BSSID情報をメモリ上に保持し、管理する必要があります。これにより、特にメモリリソースが限られているシステムでは、パフォーマンスが低下したり、処理が不安定になったりすることがあります。
buddy-ng は、このESSID/BSSID管理タスクを別プロセスとして実行するバックエンド(サーバー)として機能します。aircrack-ng はクライアントとして buddy-ng サーバーに接続し、ESSID/BSSID関連の処理を委任します。これにより、aircrack-ng 本体のメモリ使用量とCPU負荷が軽減され、特に多数のネットワークを対象とするクラッキング作業において、より高速で安定した動作が期待できます。
buddy-ng は単独で使用するツールではなく、aircrack-ng と連携してそのパフォーマンスを向上させるための補助的な役割を担います。 利用可能環境とインストール
buddy-ng は aircrack-ng スイートの一部として提供されています。したがって、aircrack-ng がインストールされていれば、通常 buddy-ng も利用可能です。
多くのペネトレーションテスト用Linuxディストリビューション、特に Kali Linux には、aircrack-ng スイートがデフォルトで含まれているか、簡単にインストールできます。
Debianベースのシステム(Ubuntu、Kali Linuxなど)で aircrack-ng をインストールするには、ターミナルで以下のコマンドを実行します。
sudo apt update
sudo apt install aircrack-ng 他のディストリビューションでも、パッケージマネージャ(例:yum, dnf, pacman)を通じてインストールできる場合がほとんどです。
インストール後、ターミナルで buddy-ng --help や man buddy-ng を実行することで、コマンドの存在と利用可能なオプションを確認できます。
基本的な使い方と仕組み
buddy-ng はサーバーとして動作し、aircrack-ng からの接続を待ち受けます。基本的な流れは以下の通りです。
buddy-ngサーバーの起動: まず、buddy-ngプロセスをバックグラウンドまたは別のターミナルで起動します。aircrack-ngの起動と接続: 次に、aircrack-ngを起動する際に、特定のオプションを使ってbuddy-ngサーバーに接続するよう指示します。- 処理の委任:
aircrack-ngは、ESSID/BSSIDの管理タスクを接続先のbuddy-ngサーバーに委任します。
buddy-ng サーバーの起動
最もシンプルな起動方法は、オプションなしでコマンドを実行することです。
buddy-ng これにより、buddy-ng はデフォルトのホスト(通常はローカルホスト 127.0.0.1)とデフォルトのポート(通常は 666)で接続を待ち受けます。
起動すると、以下のようなメッセージが表示されることがあります(バージョンや環境によって異なります)。
Opening buddy-ng server on 127.0.0.1:666 この状態で buddy-ng は動作し続け、aircrack-ng からの接続を待機します。
aircrack-ng からの接続
aircrack-ng を buddy-ng と連携させるには、aircrack-ng の起動時に、処理対象のESSIDやBSSIDを指定する代わりに、buddy-ng サーバーの情報を指定します。
具体的には、-e (ESSID) または -b (BSSID) オプションの引数として、buddy-ng サーバーの <host>:<port> を指定します。
例えば、ローカルホスト(127.0.0.1)のポート666で動作している buddy-ng に接続し、キャプチャファイル capture-01.cap を処理する場合、以下のように aircrack-ng を起動します。
aircrack-ng -e 127.0.0.1:666 capture-01.capまたは、BSSIDを指定する場合:
aircrack-ng -b 127.0.0.1:666 capture-01.cap このように指定すると、aircrack-ng はESSID/BSSIDのリスト管理を直接行わず、buddy-ng サーバーに問い合わせて処理を進めます。
-e または -b のどちらか一方に buddy-ng のアドレスを指定します。両方に指定する必要はありません(通常は -e を使うことが多いようです)。aircrack-ng は、指定されたアドレスを検出すると、自動的に buddy-ng プロトコルでの通信を試みます。 buddy-ng の主要オプション
buddy-ng はいくつかのコマンドラインオプションを持ち、動作をカスタマイズできます。buddy-ng --help で確認できる主なオプションは以下の通りです。
| オプション | 説明 | デフォルト値 |
|---|---|---|
-H <hosts> | 接続を許可するクライアント(aircrack-ng が動作するマシン)のIPアドレスを指定します。カンマ区切りで複数指定可能です。セキュリティのために、信頼できるホストのみを許可することが推奨されます。 | 127.0.0.1 (ローカルホストのみ許可) |
-p <port> | buddy-ng サーバーが待ち受けるTCPポート番号を指定します。 | 666 |
-h または --help | ヘルプメッセージを表示して終了します。 | – |
オプションの使用例
- 特定のポート(例:1234)で起動する:
この場合、buddy-ng -p 1234aircrack-ng側では-e 127.0.0.1:1234のように指定します。 - ローカルネットワーク上の別のマシン(例:192.168.1.100)からの接続を許可する:
これにより、buddy-ng -H 127.0.0.1,192.168.1.100buddy-ngが動作しているマシン自身と、192.168.1.100からのaircrack-ng接続が受け付けられます。ファイアウォールの設定も必要になる場合があります。
実践的な連携例:aircrack-ng と buddy-ng
ここでは、実際に buddy-ng と aircrack-ng を連携させてWPA/WPA2のパスワードクラッキングを行うシナリオをステップバイステップで見ていきましょう。
ステップ1:buddy-ng サーバーの起動
まず、ターミナルを開き、buddy-ng を起動します。ここではデフォルト設定(localhost:666)で起動します。
buddy-ng このターミナルは buddy-ng が動作し続けるため、開いたままにしておくか、バックグラウンドで実行します(例:buddy-ng &)。
ステップ2:aircrack-ng の起動と接続
別のターミナルを開き、aircrack-ng を起動します。ここでは、キャプチャファイル large_capture.cap とパスワードリスト wordlist.txt を使用し、buddy-ng にESSID/BSSID管理を委任します。
aircrack-ng -w wordlist.txt -e 127.0.0.1:666 large_capture.capこのコマンドの意味は以下の通りです。
-w wordlist.txt: 使用するパスワードリストファイルを指定します。-e 127.0.0.1:666: ESSID/BSSIDの管理を、127.0.0.1のポート666で待機しているbuddy-ngサーバーに委任します。large_capture.cap: 解析対象のキャプチャファイルを指定します。
連携中の動作
aircrack-ngは起動すると、まず127.0.0.1:666に接続を試みます。- 接続が成功すると、
buddy-ngを起動していたターミナルに接続があった旨のメッセージが表示されることがあります。 aircrack-ngはキャプチャファイル内のネットワーク情報を解析し、ESSIDやBSSIDのリストをbuddy-ngに送信して管理させます。aircrack-ngは、クラッキング処理に必要なネットワーク情報をbuddy-ngから取得しながら、パスワードの試行を続けます。- これにより、
aircrack-ng本体のメモリ使用量が抑えられ、特にネットワーク数が多い場合にパフォーマンスが向上します。
もし buddy-ng を異なるホストやポートで起動している場合は、aircrack-ng の -e (または -b) オプションの値を適切に変更してください。
# 例:buddy-ng が 192.168.1.50 のポート 777 で動作している場合
aircrack-ng -w wordlist.txt -e 192.168.1.50:777 large_capture.capこの連携により、リソースを効率的に利用し、大規模なキャプチャファイルの解析をスムーズに行うことが可能になります。
buddy-ng が役立つシナリオ
buddy-ng は常に必要というわけではありませんが、特定の状況下で大きなメリットを発揮します。
- 多数のネットワークを含む大規模キャプチャファイルの処理: これが
buddy-ngの最も典型的なユースケースです。数百、数千のユニークなESSID/BSSIDが含まれるファイルをaircrack-ng単体で処理すると、大量のメモリを消費し、動作が遅くなったり不安定になったりする可能性があります。buddy-ngを使うことで、このメモリ負荷を軽減できます。 - メモリリソースが限られたシステムでの利用: Raspberry Piのようなシングルボードコンピュータや、古いPCなど、利用可能なメモリが少ない環境で
aircrack-ngを実行する場合、buddy-ngを使うことでメモリ不足による問題を回避しやすくなります。 - 分散処理(応用):
buddy-ngをネットワーク上の別の(より強力な)マシンで実行し、aircrack-ngを実行するマシンから接続することで、ESSID/BSSID管理の負荷を完全に別のマシンにオフロードすることも可能です。これにより、aircrack-ngを実行するマシンのリソースをクラッキング処理そのものに集中させることができます。ただし、ネットワーク遅延の影響を受ける可能性はあります。 - 長時間のクラッキングセッション: 非常に大規模なパスワードリストを使用し、長時間にわたるクラッキングを行う場合、
buddy-ngによる安定性の向上はメリットとなり得ます。
逆に、対象とするネットワークが少数(数個〜数十個程度)で、キャプチャファイルのサイズも比較的小さい場合は、buddy-ng を使用するメリットはあまり感じられないかもしれません。そのような場合は、aircrack-ng を単体で使用する方がシンプルです。
注意点とトラブルシューティング
- ファイアウォール設定:
buddy-ngをリモートホストから利用する場合(-HオプションでリモートIPを指定した場合)、buddy-ngが動作しているマシンのファイアウォールが、指定したポート(デフォルトはTCP 666)での着信接続を許可していることを確認してください。許可されていない場合、aircrack-ngは接続できません。 buddy-ngプロセスの確認:aircrack-ngがbuddy-ngに接続できない場合、まずbuddy-ngプロセスが正しく起動しており、指定したホストとポートで待機しているかを確認してください。ps aux | grep buddy-ngやnetstat -tulnp | grep 666(ポート666の場合) などのコマンドが役立ちます。aircrack-ngのオプション指定:aircrack-ng側で指定するホストとポート番号が、buddy-ngが実際に待機しているホストとポート番号と一致しているか再確認してください。タイプミスがないか注意しましょう。- バージョン互換性: 基本的に
aircrack-ngスイート内のツールなので問題になることは稀ですが、極端に古いバージョンのaircrack-ngと新しいbuddy-ng(またはその逆) を組み合わせた場合に、予期せぬ問題が発生する可能性はゼロではありません。通常は同じバージョンのスイートを使用することが推奨されます。
まとめ
buddy-ng は、aircrack-ng のパワーユーザーにとって非常に便利なツールです。特に、多数のネットワーク情報を含む大規模なキャプチャファイルを扱う際や、メモリリソースが限られた環境で作業する場合に、その真価を発揮します。
ESSID/BSSID管理という特定のタスクを aircrack-ng 本体から切り離し、別プロセスに委任することで、aircrack-ng のメモリ使用量を削減し、パフォーマンスと安定性を向上させることができます。
基本的な使い方は、buddy-ng をサーバーとして起動し、aircrack-ng の -e または -b オプションでそのサーバーアドレスを指定するだけと、比較的シンプルです。
もしあなたが aircrack-ng を使っていて、パフォーマンスの問題に直面したことがあるなら、ぜひ buddy-ng の利用を検討してみてください。きっとあなたの無線LANセキュリティ監査作業をより快適にしてくれるはずです!
参考情報
より詳細な情報については、aircrack-ng の公式ドキュメントを参照してください。
- Aircrack-ng Official Website – buddy-ng documentation: https://www.aircrack-ng.org/doku.php?id=buddy-ng
- Kali Linux Tools – aircrack-ng (buddy-ngを含むスイート全体の説明): https://www.kali.org/tools/aircrack-ng/
また、ターミナルで man buddy-ng や man aircrack-ng を実行することでも、詳細なマニュアルを確認できます。