SSブログ
エステ

Aircrack-ng newbie guide のページ [Aircrack-ng]

Aircrack-ng newbie guide(初心者向け)ページの一部意訳。

元はこちら

このコンテンツと関係のあるコンテンツはこちら。

Aircrack-ng のページ

無線LANの復習



aircrack-ng-new-logo.jpg



かんたんスニッフィング(盗聴)とクラッキング(解読)


ネットワークを見つけ出す


まずはじめにすることはターゲットを見つけ出すことです。
aircrack-ngアプリケーションスイートに含まれるairodump-ngはターゲットを見つけ出すためのツールです。

ネットワークを探す前に、無線LANデバイスをいわゆる"monitor mode"へ切り替えなくてはなりません。
モニターモードは全ての無線LANパケットを拾うための特別なモードです。
また、モニターモードではネットワークにパケットを挿入することも可能です。
パケットの挿入に関しては後ほど説明します。

モニターモードへ切り替えるためには:

# airmon-ng start wlan0

と入力します。

確認するためには、コンソールから"iwconfig"コマンドを入力します。

# iwconfig
lo         no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:off/any  
            Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
            Retry  long limit:7   RTS thr:off   Fragment thr:off
            Encryption key:off
            Power Management:off


Wiki上のairmon-ngページではこのツールについての情報と、他のドライバでの始め方が記載されています。

そして、ネットワークを見つけるために、airodump-ngを始めます。

# airodump-ng wlan0

Found 4 processes that could cause trouble.
If airodump-ng, aireplay-ng or airtun-ng stops working after
a short period of time, you may want to kill (some of) them!

PID Name
876 avahi-daemon
877 avahi-daemon
878 NetworkManager
991 wpa_supplicant


Interface Chipset Driver

eth1 Unknown wl
wlan0 RTL8187 rtl8187 - [phy1]
(monitor mode enabled on mon0)


wlan0はネットワークインターフェース(NIC)の名前です。
RTL8187以外の無線LANデバイスを使っている場合は他のNIC名を使う可能性があります。
ドキュメントで確認してください。
最近のほとんどのドライバではプライマリインターフェース名は"wlan0"となっているはずです。
モニタリング時は、セカンダリインターフェースとして、airmon-ngによって作られたmon0が使われます。

# iwconfig
lo         no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11bg  ESSID:off/any  
            Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm   
            Retry  long limit:7   RTS thr:off   Fragment thr:off
            Encryption key:off
            Power Management:off
          
mon0      IEEE 802.11bg  Mode:Monitor  Tx-Power=20 dBm   
            Retry  long limit:7   RTS thr:off   Fragment thr:off
            Power Management:off


airodump-ngが正しく無線LANデバイスに接続できた際には、以下のように表示されます。

# airodump-ng mon0

スクリーンショット(2010-08-15 11.56.16).png

airodump-ngはチャネルホップしながら、ビーコンから得られた全てのアクセスポイントに関する情報を表示します。
チャネル1〜14は802.11b/g用です。(アメリカ合衆国では1~11、欧州では1~14、日本では1〜14が認可されています。)
チャネル39~149は802.11a用、現在使われているチャネルが左上に表示されます。

短時間で、見つかったアクセスポイントとアソシエイトされた無線LANクライアントが表示されます。
画面では大きく上のブロックと下のブロックに分かれています。

上のブロックでは見つかったアクセスポイントに関する情報を表示します。

BSSID:アクセスポイントのMACアドレス

PWR:信号強度(未対応のドライバあり)

Beacons:受信したビーコンフレーム数。信号強度を受信できない場合、ビーコンの数で信号強度を推定できます。多くビーコンを受信しているアクセスポイントは信号が強いと言うことです。

#Datta:データフレーム受信数

#/s:直近10秒間での一秒あたりのデータパケット数。

CH:アクセスポイントで使われているチャネル

MB:通信スピード

ENC:無線LAN暗号化方式:OPN:暗号化なし、WEP:WEP使用、WPA:WPAまたはWPA2を使用、WEP?:WEPまたはWPAを使用。

CIPHER:暗号化方式:CCMP、WRAP、TKIP、WEP、WEP40、WEP104のうちどれか。必須ではないが、TKIPはWPAでよく使われ、CCMPはWPA2でよく使われる。

AUTH:認証プロトコル。MGT(WPA/WPA2で認証サーバーを分離した場合)、SKA(WEP用での共有鍵)、PSK(WPA/WPA2用事前共有鍵)、OPN(WEPでのオープン認証)のうちどれかになります。

ESSID:無線ネットワーク名。非表示の場合もあります。


下のブロックでは、見つけた無線LANクライアントが表示されます。

BSSID:クライアントがアソシエイトされたアクセスポイントのMACアドレス。

STATION:無線LANクライアントのMACアドレス。

PWR:受信強度

Rate:通信スピード

Lost:シーケンス番号に従って破棄された直近10秒間のデータパケット数。

Packet:受信済みデータフレーム数。

Probes:無線LANクライアントがプローブ済みのESSID


これで、ターゲットとするネットワークを見つけられます。
アクセスポイントは無線LANクライアントが接続されたものを選ぶべきです。
無線LANクライアントの接続されていない場合は発展的なトピックスです。
WEPで受信強度の高いアクセスポイントを選びましょう。
アンテナの向きを変えてみると受信強度が向上する場合があります。
数センチ変えただけでも信号強度が大幅に変わることがあります。



初期化ベクトル(IV)を盗聴する


チャネルホッピングをしているとターゲットについての全てのパケットを傍受できません。
そこで1つのチャンネルだけを盗聴し、解読のために統べたのデータをディスクに書き出してゆきます。

# airodump-ng -c 6 --bssid 00:0A:B0:80:9A:0A -w dump mon0

-c パラメータをつけることにより、チャネルをしていし、-w の後の文字列"dump"はディスクに保存するデータ名です。
--bssidにより指定したアクセスポイントのMACアドレスにより、傍受するアクセスポイントを1つに絞ります。
このオプションは新バージョンのairodump-ngでのみ利用できます。

WEPキーを解読するためにはおよそ40000〜85000の重複しない初期化ベクトル(IV)が必要となります。
全てのパケットにはIVが含まれています。
IVは再利用されるため、通常、キャプチャしたパケット数よりもIVの数の方が若干少なくなります。

そのため、40Kから85Kのパケットを受信し終えるまで待たなければなりません。
ネットワークにデータが流れていない場合長時間かかります。
アクティブアタック(パケットリプレイ)を仕掛けることで大幅に時間を短縮できます。(下記にて説明。)


解読する


十分なIVを取得できれば、WEPキーの解読へすすめます。

# aircrack-ng -b 00:0A:B0:80:9A:0A dump-01.cap

-bオプションの後のMACアドレスはターゲットのBSSIDです。
dump-01.capは取得したキャプチャファイルです。
dump*.capなどと指定して、複数のファイルを読み込むことも可能です。

必要となるIVの数に決まった数量はありません。
というのも、ある種のIVは弱く、WEPキーに関する情報をたくさん引き出すことができるからです。
通常弱いIVは強いIVの間にランダムに現れます。
ラッキーなら、20000IVで解読できるかもしれません。
しかし、大抵はこれでは不十分で、aircrack-ngは長時間解析を行うことになり(1週間か、キャプチャしたデータがよくなければそれ以上かも。)、そして"The key could not be cracked."(WEPキーは解読できませんでした)と表示されます。
たくさんのIVを取得しておけば解析も早くなり、通常数分で、ひょっとすると数秒で終わります。
経験的に40000から85000IVが解読に十分なIVの数と考えられています。

高機能なアクセスポイントでは弱いIVを使わないアルゴリズムが実装されている機種もあります。
結果、n個以上の異なったIVを取得できなくなり、数百万(5〜7百万)ものパケットが必要となります。
フォーラムではこの件に関しての情報と対処方法が述べられています。



アクティブアタック


インジェクション

ほとんどのデバイスではインジェクションをサポートしていません。
少なくともパッチの当たっていないドライバでは。

いくつかのデバイスではこの種の攻撃が可能です。
互換性に関するページのaireplayに関する項目をご覧ください。
更新されていない項目もあるので、お使いのドライバで"NO"となっていても、あきらめないでくださいね。
ドライバのホームページか我々のフォーラムで確認を。

もし、サポートされていないドライバにもかかわらずaireplayを動かせた時には、互換性に関するページの該当項目を更新してください。
それと手短にHow toについてのリンクも加えてあげてください。(これらを行うにはIRCでwikiアカウントを申請してください。)

最初のステップはパケットインジェクションが本当に動くかどうかの確認です。
最も簡単な確認方法はinjection test攻撃です。
先に進む前に必ずこのテストを実施してください。
以下のステップでインジェクトを実行できます。

MACアドレスフィルタリングされていない、アクセスポイントのBSSIDとESSIDが必要で、アクセスポイントの通信範囲内にないっている必要があります。

自分で管理しているアクセスポイントにaireply-ngを使って接続してみてください。

#aireplay-ng --fakeauth 0 -e "あなたのESSID" -a 00:0A:B0:80:9A:0A mon0

-a の後の値はアクセスポイントのBSSIDです。
インジェクションがうまくいけば、以下のようなレスポンスが得られます。

12:14:06  Sending Authentication Request
12:14:06  Authentication successful
12:14:06  Sending Association Request
12:14:07  Association successful :-)

もし得られなかった場合は、

1.ESSIDとBSSIDをもう一度確認
2.MACアドレスフィルタリングが停止していることを確認
3.他のアクセスポイントで確認
4.ドライバに正しくパッチが当たっていることと、サポートリストに入っていることを確認
5.「0」の代わりに「6000 -o 1 q 10」を使ってみる



ARPリプレイ


パケットインジェクションが動作することがわかったので、初期化ベクトルを超高速で取得するARPリクエスト リインジェクションを行います。


考え方

ARPはIPアドレスに対するクエリーをブロードキャストし、そのIPアドレスを持つデバイスが返答を返します。
WEPはリプレイに対する防御をしていないため、パケットを盗聴でき、何度送っても有効です。
というわけで、パケットをキャプチャし、大量のトラフィックを得るためにターゲットにしたアクセスポイントへのARPリクエスト リプレイを行います。


のんびりやる方法

コンソールを開き、ネットワークトラフィックを盗聴するためにairodump-ngを実行します。
aireplay-ngとairodump-ngは一緒に実行します。
標的にするネットワークが無線LANクライアントが現れるまで待ちます。
そして、攻撃を始めます。

# aireplay-ng --arpreplay -b 00:0A:B0:80:9A:0A -h 5C:59:48:36:DD:07 mon0

-bで標的にするBSSDを指定します。
-hで接続済み無線LANクライアントを指定します。

そして、ARPパケットがやってくるのを待ちます。
通常、数分程度待たされることになります。
成功すれば、下記のようなレスポンスを受け取ります。

Saving ARP requests in replay_arp-0627-121526.cap
You must also start airodump to capture replies.
Read 2493 packets (got 1 ARP requests), sent 1305 packets...

リプレイを停止する際には、次のARPパケットが現れるまで待つ必要はありません、前回中断したキャプチャを再開するには -r <ファイル名> オプションを用います。

ARPインジェクションでは、WEPキーを解読するのにPTW攻撃を用います。
この攻撃は必要とするパケットと時間を激減させました。
airodumo-ngでフルパケットを取得する必要があります。つまり、--ivsオプションを使ってはなりません。
aircrack-ngでは"aircrack-ng -z <ファイル名>"を用います。
(PTWはバージョン1.0-rc1ではデフォルトです。)

airodump-ngによる取得したパケットが増加しなくなった場合には、リプレイレートを落とす必要があるかもしれません。
-x <ファイル名>オプションにより、リプレイレートを設定可能です。
通常50でスタートし、パケットを継続的に取得できるレベルにまで落としてゆきます。
あなたが使っているアンテナについて、うまくいく設定値についての情報は大きな助けになります。


がつがつやる方法

ほとんどのOSでは無線LAN接続が切断された際には、ARPキャッシュはクリアされます。
再接続後に送るパケットは、ARPリクエストを送る必要があります。
そこで、この方法では無線LANクライアントとアクセスポイントのコネクションを一旦切断し、ARPリクエストをキャプチャするために、再接続させます。
副作用として、再接続の際に、ESSIDを取得でき、とひょっとするとキーストリームも盗聴できるかもしれません。
これはESSIDが隠蔽されているアクセスポイントに対して効果があったり、共有鍵認証が行われている場合に効果があります。

airodump-ngとaireplayを実行し、他のコンソールで未認証化攻撃を仕掛けます、

# aireplay-ng --deauth 5 -a 00:0A:B0:80:9A:0A -c 5C:59:48:36:DD:07 mon0

-aではアクセスポイントのBSSIDを指定、-cでは未認証攻撃の対象にする無線LANクライアントのMACアドレスを指定します。
数秒待ち、ARPリプレイ始めます。
ほとんどの無線LANクライアントは自動的に再接続しようとします。
しかしながら、この攻撃手法を認識している人もいるということや、少なくとも注意は、無線LANでは他に比べて何か事が起こりやすいという認識をもたらします。




この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。