airserv-ng 徹底解説:無線LANカードをネットワーク越しに共有 📡

セキュリティツール

Aircrack-ngスイートに含まれるツールの一つ、airserv-ng について、その機能や使い方、活用例などを詳しく解説していきます。この記事を読めば、airserv-ng を使って、物理的に接続されていない無線LANカードをあたかもローカルにあるかのように利用する方法がわかります。

注意:この記事で紹介するツールや技術は、自身の管理下にあるネットワークやデバイスに対して、許可を得た上でテストや学習の目的でのみ使用してください。許可なく他者のネットワークにアクセスしたり、不正な目的で使用したりすることは法律で禁止されており、絶対に行ってはいけません。

1. airserv-ngとは? 🤔

airserv-ng は、一言で言うと「無線LANカードサーバー」です。特定のコンピューター(サーバー)に接続された無線LANカードの機能を、TCP/IPネットワークを通じて他のコンピューター(クライアント)から利用できるようにするツールです。

これにより、以下のようなメリットが生まれます。

  • ドライバーの複雑さを解消: 無線LANカードやドライバー固有の複雑な処理はサーバー側が担当します。クライアント側のアプリケーションは、ネットワーク経由でシンプルな指示を送るだけで無線LAN機能を利用できるため、開発が容易になります。
  • OSの混在利用: サーバーとクライアントは異なるOSで動作していても問題ありません。例えば、Linuxマシンに接続された無線LANカードを、WindowsやmacOS上のAircrack-ngツールから利用できます。
  • リソースの有効活用: 性能の低いデバイス(例: Raspberry Pi)に無線LANカードを接続し、airserv-ng を実行。実際の解析処理は高性能なデスクトップPCから行う、といった使い方が可能です。
  • 複数アプリケーションからの同時アクセス: 一部の無線LANカードやドライバーは、複数のアプリケーションから同時にアクセスすることを許可しません。airserv-ng を介することで、この制限を回避し、複数のクライアント(Aircrack-ngツールなど)が同時に一つの無線LANカードを利用できます。
  • リモートセンシング: 遠隔地に設置した小型デバイス(無線LANカードとairserv-ng のみ稼働)を、ネットワーク経由で操作するセンサーとして利用できます。
  • 地理的な制約の排除: TCP/IPネットワーク接続さえあれば、クライアントとサーバーは物理的に離れた場所にあっても動作します。極端な話、世界中のどこからでもアクセス可能です(ただし、ネットワーク遅延やセキュリティには注意が必要です)。

airserv-ng は、Aircrack-ngスイートに含まれる他のツール(airodump-ng, aireplay-ng, aircrack-ng など)と連携して使用されることを想定しています。クライアント側のツールは、通常無線LANインターフェース名(例: wlan0mon)を指定する代わりに、airserv-ng サーバーのIPアドレスとポート番号(例: 192.168.1.10:666)を指定します。

2. airserv-ngの基本的な使い方 💻

airserv-ng の使い方は非常にシンプルで、主にサーバー側での起動と、クライアント側での接続設定の2ステップです。

無線LANカードが接続されているコンピューター(サーバー)で、airserv-ng を起動します。まず、使用したい無線LANインターフェースをモニターモードにする必要があります。これは通常 airmon-ng を使って行います。

# まずモニターモードに対応したインターフェースを確認
sudo airmon-ng

# 例として wlan0 をモニターモードにする (インターフェース名は環境により異なります)
sudo airmon-ng start wlan0

# モニターモードのインターフェース (例: wlan0mon) が作成される

モニターモードのインターフェース(例: wlan0mon)が用意できたら、airserv-ng を起動します。

# 基本的な起動コマンド (デフォルトポート 666 を使用)
# -d オプションでモニターモードのインターフェースを指定
sudo airserv-ng -d wlan0mon

これで、サーバーはこのマシンのすべてのIPアドレス、TCPポート 666 でクライアントからの接続待ち受けを開始します。

特定のポート番号やチャンネルを指定することも可能です。

# ポート 7777、チャンネル 6 で起動する例
sudo airserv-ng -d wlan0mon -p 7777 -c 6

サーバーが起動すると、以下のようなメッセージが表示されます。

Opening card wlan0mon
Setting chan 6
Opening sock port 7777
Serving wlan0mon chan 6 on port 7777

これでサーバー側の準備は完了です。🎉

クライアント側のコンピューター(airserv-ng サーバーと同じネットワークに接続されている必要があります)から、Aircrack-ngスイートのツールを使ってサーバーに接続します。

例えば、airodump-ng を使って無線LANネットワークをスキャンする場合、通常は以下のようにインターフェース名を指定します。

# 通常の airodump-ng の使い方 (ローカルのインターフェースを使用)
sudo airodump-ng wlan0mon

airserv-ng を利用する場合は、インターフェース名の代わりに <サーバーのIPアドレス>:<ポート番号> を指定します。サーバーが同一マシン上で動作している場合は、ループバックアドレス 127.0.0.1 を使用できます。

# airserv-ng サーバー (127.0.0.1:666) に接続して airodump-ng を実行
sudo airodump-ng 127.0.0.1:666

サーバーが別のマシン(例: IPアドレス 192.168.1.100、ポート 7777)で動作している場合は、そのアドレスを指定します。

# リモートの airserv-ng サーバー (192.168.1.100:7777) に接続
sudo airodump-ng 192.168.1.100:7777

同様に、aireplay-ngaircrack-ng など、他のツールでもインターフェース指定部分をサーバーのアドレスとポートに置き換えることで、airserv-ng 経由で無線LANカードを利用できます。

# aireplay-ng でリモートサーバー経由で認証解除パケットを送信する例
sudo aireplay-ng -0 1 -a <APのBSSID> -c <クライアントのMAC> 192.168.1.100:7777

# aircrack-ng でリモートサーバー経由でキャプチャしたファイルからWEPキーを解析する例
# (注意: aircrack-ng自体はキャプチャファイルのみを扱うため、直接airserv-ngを指定することは稀です。
# 通常は airodump-ng で airserv-ng 経由でキャプチャしたファイル (.cap) を解析します)
# sudo aircrack-ng capture-file-from-airserv.cap

これにより、クライアントマシンに物理的な無線LANカードが接続されていなくても、あるいはモニターモードに対応したカードでなくても、ネットワーク上のairserv-ngサーバーが提供するカードを使って無線LANの解析やテストが可能になります。✨

3. airserv-ngのオプション解説 ⚙️

airserv-ng で利用可能なコマンドラインオプションは比較的少ないですが、それぞれ重要な役割を持っています。

オプション引数説明デフォルト値
-hなしヘルプメッセージを表示して終了します。
-p<ポート番号>クライアントからの接続を待ち受けるTCPポート番号を指定します。1から65535までの整数を指定できます。666
-d<インターフェース名>必須オプション。 使用する無線LANインターフェース名を指定します。通常は airmon-ng で作成したモニターモードのインターフェース(例: wlan0mon, mon0)を指定します。Windowsの場合は、commview.dll のような特定のDLLファイル名を指定することもあります。なし
-c<チャンネル番号>サーバー起動時にインターフェースを指定した無線チャンネルに固定します。クライアントからのチャンネル変更要求を受け付けなくなります。指定しない場合は、クライアントが必要に応じてチャンネルを変更できます。なし (クライアント制御)
-v<デバッグレベル>デバッグ情報の詳細度を指定します。レベルは1から3まであり、数字が大きいほど詳細な情報が出力されます。
  • レベル1 (デフォルト): クライアントの接続・切断メッセージのみ表示。
  • レベル2: レベル1に加え、クライアントからのチャンネル変更要求や不正なコマンド要求を表示。
  • レベル3: レベル2に加え、クライアントに送信されるパケットとそのサイズを表示。トラブルシューティング時に役立ちます。
1

例えば、デバッグレベルを最大にして、インターフェース mon0 をチャンネル 11 に固定し、ポート 12345 で起動する場合は以下のようになります。

sudo airserv-ng -d mon0 -p 12345 -c 11 -v 3

4. ユースケース例 💡

airserv-ng は、その柔軟性から様々なシナリオで活用できます。

Raspberry Piのような小型で低消費電力のデバイスは、常時稼働させるのに適しています。モニターモードに対応したUSB無線LANアダプターをRaspberry Piに接続し、airserv-ng を起動しておきます。

# Raspberry Pi 上で実行 (モニターモードインターフェースは wlan1mon と仮定)
sudo airmon-ng start wlan1
sudo airserv-ng -d wlan1mon

これにより、普段使っているラップトップやデスクトップPCから、ネットワーク経由でRaspberry Piに接続された無線LANアダプターを利用して、airodump-ng でのパケットキャプチャや aireplay-ng でのパケットインジェクションが可能になります。Raspberry Pi自体の処理能力は低くても、実際の重い処理(WEP/WPAキーのクラッキングなど)は高性能なクライアントPCで行えるため効率的です。

VirtualBoxやVMwareなどの仮想環境でKali Linuxを実行している場合、仮想マシンからホストOSの物理無線LANカードを直接モニターモードで利用するのは難しいことがあります(USBパススルーがうまく機能しない場合など)。

このような場合、ホストOS(WindowsやLinux、macOS)上で airserv-ng を起動し(ホストOS側でモニターモード設定が必要)、仮想環境上のKali LinuxからホストOSのIPアドレスとポート番号を指定して接続することで、仮想マシンからホストの無線LANカードを利用できます。

# ホストOS (例: Linux) 上で実行
sudo airmon-ng start wlan0
sudo airserv-ng -d wlan0mon

# 仮想環境上のKali Linux から実行 (ホストOSのIPが 192.168.1.50 の場合)
sudo airodump-ng 192.168.1.50:666

モニターモードやパケットインジェクションに対応した高性能な無線LANカードを1台だけ持っている場合、そのカードを接続したPCで airserv-ng を起動すれば、ネットワーク上の他の複数のPCから同時にそのカードを利用できます。チームでペネトレーションテストを行う際などに便利です。各メンバーは自分のPCからサーバーに接続し、それぞれ異なるタスク(一人はスキャン、一人はインジェクションなど)を並行して実行できます。

# 高性能カードを接続したサーバーPCで実行
sudo airserv-ng -d ath0mon # インターフェース名は例

# チームメンバーAのPCから実行
sudo airodump-ng <サーバーIP>:666 --bssid <Target1_BSSID> -c <Ch> -w capture1

# チームメンバーBのPCから実行
sudo aireplay-ng -1 0 -e <Target2_ESSID> -a <Target2_BSSID> <サーバーIP>:666

Windows上で Aircrack-ng スイートを利用する場合、ドライバーの制約からモニターモードやパケットインジェクションが難しいことが多いです。一部のカードでは、CommView for WiFi のような特定のソフトウェアと連携することで限定的に利用できる場合があります。その際、airserv-ng を仲介役として使うことがあります。

# Windowsのコマンドプロンプト (管理者権限) で実行する例 (古い情報に基づく可能性あり)
airserv-ng.exe -d commview.dll -p 666

そして、同じWindowsマシン上の (またはネットワーク上の) Aircrack-ng ツールから 127.0.0.1:666 (またはサーバーIP:666) を指定してアクセスします。ただし、Windows環境での利用はLinux環境に比べて制限が多く、不安定になる可能性がある点に注意が必要です。

5. 注意点とトラブルシューティング ⚠️

airserv-ng は便利なツールですが、利用にあたってはいくつか注意点があります。

  • セキュリティリスク: airserv-ng には認証機能がありません。サーバーが起動しているポートにネットワーク的に到達可能なクライアントは、誰でも無線LANカードの機能を利用できてしまいます。信頼できないネットワーク上でairserv-ng を実行することは非常に危険です。サーバーとクライアント間の通信も暗号化されないため、通信内容が盗聴される可能性があります。重要な情報を扱う場合や、安全でないネットワーク環境で使用する場合は、SSHトンネルなどを利用して通信を保護することを強く推奨します。
  • ファイアウォール設定: サーバーマシン上でファイアウォールが有効になっている場合、airserv-ng が使用するTCPポート(デフォルトは666)への外部からのアクセスを許可する必要があります。許可されていない場合、クライアントはサーバーに接続できません (“Connection refused” エラーなど)。
  • ドライバーの互換性: airserv-ng 自体は多くのOSで動作しますが、実際に無線LANカードの機能(特にモニターモードやパケットインジェクション)を利用できるかは、サーバーOS上の無線LANカードドライバーに依存します。サーバー側でカードが正しく認識され、モニターモードに設定できない場合、airserv-ng を起動してもクライアントから意図した操作は行えません。
  • パフォーマンス: ネットワーク経由で無線LANフレームを送受信するため、ローカルで直接カードを利用する場合に比べて遅延(レイテンシ)が発生します。特に、大量のパケットを扱う場合や、リアルタイム性が要求される操作(例: 高速なパケットインジェクション)では、ネットワークの帯域や遅延がボトルネックとなり、パフォーマンスが低下する可能性があります。
  • エラーメッセージ:
    • “Opening card <iface> failed: No such file or directory”: 指定したインターフェース名が存在しないか、間違っています。ip linkiwconfig, airmon-ng で正しいインターフェース名を確認してください。
    • “bind: Address already in use”: 指定したポート番号が既に他のプロセスで使用されています。-p オプションで別のポート番号を指定するか、既存のプロセスを停止してください。
    • クライアント側での “Connection refused”: サーバーが起動していない、IPアドレスやポート番号が間違っている、またはファイアウォールによって接続がブロックされている可能性があります。
    • クライアント側での操作エラー: サーバー側の無線LANカードやドライバーが、クライアントが要求した操作(例: 特定のチャンネルへの変更、パケットインジェクション)に対応していない可能性があります。サーバー側の airserv-ng のデバッグ出力 (-v オプション) を確認すると、原因の手がかりが得られることがあります。
  • 複数クライアント利用時の注意: 複数のクライアントが同時に同じ airserv-ng サーバーを利用する場合、チャンネル変更などの操作は競合する可能性があります。一人のクライアントがチャンネルを変更すると、他のクライアントもその影響を受けます。必要であれば、サーバー起動時に -c オプションでチャンネルを固定するなどの対策を検討してください。

6. まとめ 📝

airserv-ng は、Aircrack-ngスイートの中でもユニークな機能を提供するツールです。無線LANカードをネットワークリソースとして共有できるため、物理的な制約やOSの壁を越えて、柔軟な無線LAN解析環境を構築できます。

特に、リソースの少ないデバイスの活用、仮想環境からのアクセス、チームでのカード共有といった場面でその真価を発揮します。一方で、認証機能がないことによるセキュリティリスクや、ネットワーク遅延によるパフォーマンスへの影響も考慮する必要があります。

この記事を参考に、airserv-ng のメリットとデメリットを理解した上で、ご自身の環境や目的に合わせて活用してみてください。適切な設定と注意深い運用を行えば、無線LANセキュリティの学習やテストにおいて強力な助けとなるでしょう。💪

繰り返しになりますが、これらのツールは教育・研究目的、または自身が管理するネットワークのセキュリティ評価にのみ使用してください。不正な目的での使用は法律で罰せられます。

参考情報

コメント

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