์ €์ „๋ ฅ ๊ด‘์—ญ ๋„คํŠธ์›Œํฌ

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 ์ง€์›ํ•˜๊ธฐ

์†Œ๊ฐœ

์ €์ „๋ ฅ ๊ด‘์—ญ ๋„คํŠธ์›Œํฌ (LPWAN)๋Š” ์ €๋น„ํŠธ ์ „์†ก์„ ์œ„ํ•œ ์žฅ๊ฑฐ๋ฆฌ ํ†ต์‹ ์„ ์„ค๊ณ„ํ•œ ๋ฌด์„  ์ €์ „๋ ฅ ๊ด‘์—ญ ๋„คํŠธ์›Œํฌ ๊ธฐ์ˆ  ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ 6๋งˆ์ผ ์ด์ƒ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐฐํ„ฐ๋ฆฌ๋Š” ์ตœ๋Œ€ 20๋…„๊นŒ์ง€ ์ง€์†๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Long Range (LoRa)๋Š” ํ˜„์žฌ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐฐํฌ๋œ LPWAN ๋ฌผ๋ฆฌ ๊ณ„์ธต์ด๋ฉฐ, ๊ทธ ๊ฐœ๋ฐฉํ˜• MAC ๊ณ„์ธต ์‚ฌ์–‘์€ LoRaWAN์ž…๋‹ˆ๋‹ค.


LPWAN, LoRa ๋ฐ LoRaWAN

  • LoRa โ€“ Semtech์— ์˜ํ•ด ๊ฐœ๋ฐœ๋œ Chirp Spread Spectrum (CSS) ๋ฌผ๋ฆฌ ๊ณ„์ธต (๋…์ ์ ์ด์ง€๋งŒ ๋ฌธ์„œํ™”๋จ).
  • LoRaWAN โ€“ LoRa-Alliance์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• MAC/๋„คํŠธ์›Œํฌ ๊ณ„์ธต. 1.0.x ๋ฐ 1.1 ๋ฒ„์ „์ด ํ˜„์žฅ์—์„œ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.
  • ์ „ํ˜•์ ์ธ ์•„ํ‚คํ…์ฒ˜: ์—”๋“œ ์žฅ์น˜ โ†’ ๊ฒŒ์ดํŠธ์›จ์ด (ํŒจํ‚ท ํฌ์›Œ๋”) โ†’ ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„ โ†’ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„.

๋ณด์•ˆ ๋ชจ๋ธ์€ ์กฐ์ธ ์ ˆ์ฐจ (OTAA) ์ค‘ ์„ธ์…˜ ํ‚ค๋ฅผ ํŒŒ์ƒํ•˜๋Š” ๋‘ ๊ฐœ์˜ AES-128 ๋ฃจํŠธ ํ‚ค (AppKey/NwkKey)์— ์˜์กดํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ์œ ์ถœ๋˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ํ•ด๋‹น ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ์ „์ฒด ์ฝ๊ธฐ/์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์–ป์Šต๋‹ˆ๋‹ค.


๊ณต๊ฒฉ ํ‘œ๋ฉด ์š”์•ฝ

๊ณ„์ธต์ทจ์•ฝ์ ์‹ค์งˆ์  ์˜ํ–ฅ
PHY๋ฐ˜์‘ํ˜• / ์„ ํƒ์  ์žฌ๋ฐ๋‹จ์ผ SDR ๋ฐ <1 W ์ถœ๋ ฅ์œผ๋กœ 100 % ํŒจํ‚ท ์†์‹ค ์ž…์ฆ
MACJoin-Accept ๋ฐ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„ ์žฌ์ „์†ก (nonce ์žฌ์‚ฌ์šฉ, ABP ์นด์šดํ„ฐ ๋กค์˜ค๋ฒ„)์žฅ์น˜ ์Šคํ‘ธํ•‘, ๋ฉ”์‹œ์ง€ ์ฃผ์ž…, DoS
๋„คํŠธ์›Œํฌ ์„œ๋ฒ„์•ˆ์ „ํ•˜์ง€ ์•Š์€ ํŒจํ‚ท ํฌ์›Œ๋”, ์•ฝํ•œ MQTT/UDP ํ•„ํ„ฐ, ๊ตฌ์‹ ๊ฒŒ์ดํŠธ์›จ์ด ํŽŒ์›จ์–ด๊ฒŒ์ดํŠธ์›จ์ด์— ๋Œ€ํ•œ RCE โ†’ OT/IT ๋„คํŠธ์›Œํฌ๋กœ ํ”ผ๋ฒ—
์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ํ•˜๋“œ์ฝ”๋”ฉ๋˜๊ฑฐ๋‚˜ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ AppKeysํŠธ๋ž˜ํ”ฝ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž…/๋ณตํ˜ธํ™”, ์„ผ์„œ ๊ฐ€์žฅ

์ตœ๊ทผ ์ทจ์•ฝ์  (2023-2025)

  • CVE-2024-29862 โ€“ ChirpStack gateway-bridge ๋ฐ mqtt-forwarder๊ฐ€ Kerlink ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ ์ƒํƒœ ์ €์žฅ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์šฐํšŒํ•˜๋Š” TCP ํŒจํ‚ท์„ ์ˆ˜์šฉํ•˜์—ฌ ์›๊ฒฉ ๊ด€๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค ๋…ธ์ถœ์„ ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ๊ฐ 4.0.11 / 4.2.1์—์„œ ์ˆ˜์ •๋จ.
  • Dragino LG01/LG308 ์‹œ๋ฆฌ์ฆˆ โ€“ 2022-2024๋…„ ๋™์•ˆ ์—ฌ๋Ÿฌ CVE (์˜ˆ: 2022-45227 ๋””๋ ‰ํ† ๋ฆฌ ํƒ์ƒ‰, 2022-45228 CSRF)๊ฐ€ 2025๋…„์—๋„ ์—ฌ์ „ํžˆ ํŒจ์น˜๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ๊ด€์ฐฐ๋จ; ์ˆ˜์ฒœ ๊ฐœ์˜ ๊ณต์šฉ ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ ์ธ์ฆ๋˜์ง€ ์•Š์€ ํŽŒ์›จ์–ด ๋คํ”„ ๋˜๋Š” ๊ตฌ์„ฑ ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ™œ์„ฑํ™”ํ•จ.
  • Semtech ํŒจํ‚ท ํฌ์›Œ๋” UDP ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ (๋ฐœํ‘œ๋˜์ง€ ์•Š์Œ, 2023-10 ํŒจ์น˜): 255 B๋ณด๋‹ค ํฐ ์—…๋งํฌ๊ฐ€ ์Šคํƒ ์Šค๋งค์‹œ๋ฅผ ์œ ๋ฐœํ•˜์—ฌ SX130x ์ฐธ์กฐ ๊ฒŒ์ดํŠธ์›จ์ด์— ๋Œ€ํ•œ RCE๋ฅผ ๋ฐœ์ƒ์‹œํ‚ด (Black Hat EU 2023 โ€œLoRa Exploitation Reloadedโ€์—์„œ ๋ฐœ๊ฒฌ๋จ).

์‹ค์šฉ์ ์ธ ๊ณต๊ฒฉ ๊ธฐ์ˆ 

1. ํŠธ๋ž˜ํ”ฝ ์Šค๋‹ˆํ•‘ ๋ฐ ๋ณตํ˜ธํ™”

# Capture all channels around 868.3 MHz with an SDR (USRP B205)
python3 lorattack/sniffer.py \
--freq 868.3e6 --bw 125e3 --rate 1e6 --sf 7 --session smartcity

# Bruteforce AppKey from captured OTAA join-request/accept pairs
python3 lorapwn/bruteforce_join.py --pcap smartcity.pcap --wordlist top1m.txt

2. OTAA ์กฐ์ธ ์žฌ์ „์†ก (DevNonce ์žฌ์‚ฌ์šฉ)

  1. ํ•ฉ๋ฒ•์ ์ธ JoinRequest๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ์›๋ž˜ ์žฅ์น˜๊ฐ€ ๋‹ค์‹œ ์ „์†กํ•˜๊ธฐ ์ „์— ์ฆ‰์‹œ ์žฌ์ „์†กํ•ฉ๋‹ˆ๋‹ค (๋˜๋Š” RSSI๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค).
  3. ๋„คํŠธ์›Œํฌ ์„œ๋ฒ„๋Š” ์ƒˆ๋กœ์šด DevAddr ๋ฐ ์„ธ์…˜ ํ‚ค๋ฅผ ํ• ๋‹นํ•˜๋Š” ๋™์•ˆ ๋Œ€์ƒ ์žฅ์น˜๋Š” ์ด์ „ ์„ธ์…˜์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค โ†’ ๊ณต๊ฒฉ์ž๋Š” ๋น„์–ด ์žˆ๋Š” ์„ธ์…˜์„ ์†Œ์œ ํ•˜๊ณ  ์œ„์กฐ๋œ ์—…๋งํฌ๋ฅผ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ์ ์‘ํ˜• ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„ (ADR) ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ

SF12/125 kHz๋ฅผ ๊ฐ•์ œ๋กœ ์„ค์ •ํ•˜์—ฌ ๊ณต์ค‘ ์‹œ๊ฐ„์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค โ†’ ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๋“€ํ‹ฐ ์‚ฌ์ดํด์„ ์†Œ์ง„์‹œํ‚ต๋‹ˆ๋‹ค (์„œ๋น„์Šค ๊ฑฐ๋ถ€) ๋™์‹œ์— ๊ณต๊ฒฉ์ž์—๊ฒŒ ๋ฐฐํ„ฐ๋ฆฌ ์˜ํ–ฅ์„ ๋‚ฎ๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค (๋„คํŠธ์›Œํฌ ์ˆ˜์ค€ MAC ๋ช…๋ น๋งŒ ์ „์†ก).

4. ๋ฐ˜์‘ํ˜• ์žฌ๋ฐ

HackRF One์ด GNU Radio ํ๋ฆ„ ๊ทธ๋ž˜ํ”„๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋ฆฌ์•ฐ๋ธ”์ด ๊ฐ์ง€๋  ๋•Œ๋งˆ๋‹ค ๊ด‘๋Œ€์—ญ ์นฉ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค โ€“ โ‰ค200 mW TX๋กœ ๋ชจ๋“  ํ™•์‚ฐ ๊ณ„์ˆ˜๋ฅผ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค; 2 km ๋ฒ”์œ„์—์„œ ์ „์ฒด ์ค‘๋‹จ์ด ์ธก์ •๋ฉ๋‹ˆ๋‹ค.


๊ณต๊ฒฉ ๋„๊ตฌ (2025)

๋„๊ตฌ๋ชฉ์ ๋น„๊ณ 
LoRaWAN ๊ฐ์‚ฌ ํ”„๋ ˆ์ž„์›Œํฌ (LAF)LoRaWAN ํ”„๋ ˆ์ž„ ์ œ์ž‘/๊ตฌ๋ฌธ ๋ถ„์„/๊ณต๊ฒฉ, DB ๊ธฐ๋ฐ˜ ๋ถ„์„๊ธฐ, ๋ธŒ๋ฃจํŠธ ํฌ์ŠคDocker ์ด๋ฏธ์ง€, Semtech UDP ์ž…๋ ฅ ์ง€์›
LoRaPWNOTAA๋ฅผ ๋ธŒ๋ฃจํŠธ ํฌ์Šคํ•˜๊ณ , ๋‹ค์šด๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ, ํŽ˜์ด๋กœ๋“œ๋ฅผ ๋ณตํ˜ธํ™”ํ•˜๋Š” Trend Micro Python ์œ ํ‹ธ๋ฆฌํ‹ฐ2023๋…„ ๋ฐ๋ชจ ์ถœ์‹œ, SDR ๋น„๋…๋ฆฝ์ 
LoRAttackUSRP์™€ ํ•จ๊ป˜ํ•˜๋Š” ๋‹ค์ฑ„๋„ ์Šค๋‹ˆํผ + ์žฌ์ „์†ก; PCAP/LoRaTap ๋‚ด๋ณด๋‚ด๊ธฐ์ข‹์€ Wireshark ํ†ตํ•ฉ
gr-lora / gr-lorawan๊ธฐ์ €๋Œ€์—ญ TX/RX๋ฅผ ์œ„ํ•œ GNU Radio OOT ๋ธ”๋ก์‚ฌ์šฉ์ž ์ •์˜ ๊ณต๊ฒฉ์˜ ๊ธฐ์ดˆ

๋ฐฉ์–ด ๊ถŒ์žฅ ์‚ฌํ•ญ (ํŽœํ…Œ์Šคํ„ฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ)

  1. ์ง„์ •์œผ๋กœ ๋ฌด์ž‘์œ„ DevNonce๋ฅผ ๊ฐ€์ง„ OTAA ์žฅ์น˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค; ์ค‘๋ณต์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  2. LoRaWAN 1.1์„ ์‹œํ–‰ํ•ฉ๋‹ˆ๋‹ค: 32๋น„ํŠธ ํ”„๋ ˆ์ž„ ์นด์šดํ„ฐ, ๊ตฌ๋ณ„๋œ FNwkSIntKey / SNwkSIntKey.
  3. ํ”„๋ ˆ์ž„ ์นด์šดํ„ฐ๋ฅผ ๋น„ํœ˜๋ฐœ์„ฑ ๋ฉ”๋ชจ๋ฆฌ (ABP)์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ OTAA๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ฃจํŠธ ํ‚ค๋ฅผ ํŽŒ์›จ์–ด ์ถ”์ถœ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ๋ณด์•ˆ ์š”์†Œ (ATECC608A/SX1262-TRX-SE)๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  5. ์›๊ฒฉ UDP ํŒจํ‚ท ํฌ์›Œ๋” ํฌํŠธ (1700/1701)๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ WireGuard/VPN์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
  6. ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์—…๋ฐ์ดํŠธ ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค; Kerlink/Dragino๋Š” 2024๋…„ ํŒจ์น˜๋œ ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  7. ํŠธ๋ž˜ํ”ฝ ์ด์ƒ ํƒ์ง€ (์˜ˆ: LAF ๋ถ„์„๊ธฐ)๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค โ€“ ์นด์šดํ„ฐ ๋ฆฌ์…‹, ์ค‘๋ณต ์กฐ์ธ, ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ADR ๋ณ€๊ฒฝ์„ ํ”Œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค.

References

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 ์ง€์›ํ•˜๊ธฐ