aircrack-ng メモ
無線LANクラッキングツール、aircrack-ng関係のメモ。
公式サイトはwww.aircrack-ng.org。
aircrack-ngのtutorialを読めば全てがわかる。
特に、newbie-guideは必読。概要
解析手順
WEPの解析は、流れているパケット(フレーム)から、初期ベクタ(IV; Initialization Vector)を収集し、集めたIVからキーを解析する。
なので、ユニークなIVをどれだけ収集できるかが勝負になる。ツール概要
aircrack-ngにはいくつかのツールが含まれる。
- airodump-ng
- 無線LANからパケットをキャプチャし(monitorし)、ファイルにダンプする。無線LANアダプタをmonitorモードにする必要がある。
- aircrack-ng
- airodump-ngでダンプしたパケットから、キーを解析する。ダンプファイルから読み取って解析するので、無線LANアダプタは関係ない。
- aireplay-ng
- 流れているトラフィックが少なくて、IVの集まりが悪いとき、攻撃者自らがトラフィックを生成(パケットインジェクション)して、IVを発生させる。
パケット インジェクション(packet injection)とは、ソフトウェアが自由に生成した内容のパケット(イーサネットフレーム)を無線LANに送信すること。うまいことやると、アクセスポイントから大量のパケットを取得することができて、結果として短期間に大量のIVを取得できる。
アクティブアタックになるので、他に無線LANをモニタしてる人がいると、攻撃中であることがわかる。無線LANアダプタがinjectionに対応している必要がある。
aireplay-ngでのパケットインジェクションOSの選択
Linuxを選ぶべき。
Windowsでも動作するが、aireplay-ngが動作しない。
aircrack-ngによると、WEP64の解析には200,000、WEP128の解析には800,000のIVが必要らしい。
よっぽどトラフィックがある無線LANなら良いけど、通常それだけ集めるのは時間がかかるので、aireplay-ngでパケットを投げ込んだ方が効率が良い。無線LANアダプタの選択
http://www.aircrack-ng.org/doku.php?id=compatibili... のCompatibilityで、「Supported by airodump for Linux」と「Supported by aireplay for Linux」が両方Yesのものが良い。
Atherosチップ搭載のPCカード型で鉄板。NETGEARのWG511Tあたりが入手性が良い。店頭でのAtherosチップの見分け方は、「Super XX」(Super G、Super BG、Super ABGなど)と書かれているもの。Super XXはAtherosのオリジナルなので、これがついていればAtheros (Super XXのロゴの下にAtherosの文字がある)。
Centrinoでもmonitor(airodump-ng)だけならできる。
古すぎる第1世代(Intel PRO/Wireless 2100、bのみ)や、新しすぎる第4世代(Intel PRO/Wireless 4965agn、a/g/b/n)
は駄目っぽい。4965agnは対応待ち。
USBタイプだと、RalinkチップかZyDASチップのもの。検索でわかる範囲だとBaffaloのWLI-U2-KG54がRalink rt2500。PLANEX GW-US54GXSがZyDAS 1211B。
MiniPCIだと、Broadcomが入手しやすい。玄人志向の802.11G-MPCIとか。Linuxの無線LANシステム
カーネルモジュール
Linuxでは無線LANチップメーカーごとに、異なるカーネルモジュールを使用する。さらにaircrack-ngで使うには、正確には、aireplay-ngでpacket injectionを行うには、ほとんどの場合パッチを当てる必要がある。
チップとドライバの詳しい対応表、パッチの必要性の有無は、http://www.aircrack-ng.org/doku.php?id=compatibili... のDetermine the driverにある。
2008年3月の時点では、大抵のチップで、パッチ無しでもmonitorはできるようになっている。
ドライバのインストール手順は、http://www.aircrack-ng.org/doku.php?id=install_dri...。
Atherosチップだと、madwifi(madwifi-ng)。
madwifi-ngは標準のままで、パケットインジェクションができる。fedoraやubuntuでyumやaptで入れると、madwifi-ng ではなく、madwifi(old)のモジュールかもしれない。その場合は、madwifi-ngをダウンロード、ビルドしてインストールする。
Centrinoは、ipw2200かipw3945。
Ralinkは、rt2500/rt2570/rt61/rt73。チップごとに違う。
ZyDAS 1211Bは、zd1211rw。
Broadcomは、bcm43xxかb43だけど、b43の方が新しくていろんな機能追加もこれからはb43だと思われる。bcm43xx、b43はBroadcomの提供するドライバからファームウェアを切り出して使う。b43でのファームウェアインストール。大雑把に言うと、b43-fwcutterというツールで、wl_apsta.oというファイルからファームウェアを切り出す(将来ファイル名は変わるかも)。それを/lib/firmware以下にインストールしておくと、modprobe b43でモジュールを読み込むときに、ファームウェアも読み込まれる。madwifiの無線LAN操作
madwifiでは、「wifi?」 (wifi0など)という「device」の上に、「ath?」(ath0, ath1, ...)という「VAP(Virtual Access Point)」を作って接続する。Access Pointといっても、いわゆる無線LANアクセスポイントのことではない。
VAPは、複数つくることができ、VAP毎に、動作モードを設定できる。 など。
VAPの作成、削除は「wlanconfig」コマンドで行う。
madwifiに限らない一般的な無線LAN操作としては、「iwconfig」コマンドを使う。
wlanconfigでVAPをつくり、できたVAP (ath0など)に対して、iwconfigで設定を行うという流れになる。
wifi0や、ath0のMACアドレスを変更する場合は、インターフェイスをdownさせた状態でip linkコマンドを使う。ip link set ath0 downみたいな感じ。ifconfigでは、なぜか変更できない。
ip link set ath0 address xx:xx:xx:xx:xx:xx
ip link set ath0 upその他のモジュールの無線LAN操作
Centrinoとか、BroadcomとかZyDASとかはこっち。
「iwconfig」で無線LANの設定を行う。「ifconfig」でイーサネットインターフェイスとしての設定を行う。デフォルトのインターフェイス名はモジュール毎にまちまち。Centrinoではwlan0、Broadcom(b43)ではeth0だった。引数無しのiwconfigで、どれが無線LANインターフェイスか分かる。
以下、wlan0を無線LANインターフェイスとして説明する。
インターフェイスのUP/DOWNifconfig wlan0 up
ifconfig wlan0 down
モニターモードに変更ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
マネージドモードに変更ifconfig wlan0 down
iwconfig wlan0 mode manage
ifconfig wlan0 up
MACアドレスの変更ifconfig wlan0 downxx:xx:xx:xx:xx:xxは、変更後のMACアドレス。自由に設定できる。
ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx
ifconfig wlan0 up
無線LANのネットワークに接続するifconfig wlan0 down<ESSID>は、接続するネットワークのESSID。
iwconfig wlan0 mode manage
iwconfig wlan0 essid <ESSID>
iwconfig wlan0 key <KEY>
ifconfig wlan0 up
<KEY>は鍵(パスワード)。「0102030405」みたいにhexで記述する。文字列で書くときは、「s:password」のように、s:を付ける。パスワード無しのときは、「off」。aircrack-ngで出てくる用語