32100/UDP - Pentesting PPPP (CS2) P2P ์นด๋ฉ”๋ผ

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

๊ฐœ์š”

PPPP (a.k.a. โ€œP2Pโ€)๋Š” CS2 Network๊ฐ€ ๋งŒ๋“  ๋…์  ์žฅ์น˜ ์—ฐ๊ฒฐ ์Šคํƒ์œผ๋กœ, ์ €๊ฐ€ํ˜• IP ์นด๋ฉ”๋ผ ๋ฐ ๊ธฐํƒ€ IoT ์žฅ์น˜์— ๋„๋ฆฌ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์Šคํƒ์€ rendezvous, NAT traversal (UDP hole punching), UDP ์œ„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต โ€œ์‹ ๋ขฐ์„ฑ ์žˆ๋Š”โ€ ์ŠคํŠธ๋ฆผ, ID ๊ธฐ๋ฐ˜ ์ฃผ์†Œ ์ง€์ • ์ฒด๊ณ„๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ชจ๋ฐ”์ผ/๋ฐ์Šคํฌํƒ‘ ์•ฑ์ด ์žฅ์น˜ ID๋งŒ ์•Œ๋ฉด ์ธํ„ฐ๋„ท ์–ด๋””์—์„œ๋‚˜ ์žฅ์น˜์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

๊ณต๊ฒฉ์ž ๊ด€์ ์˜ ์ฃผ์š” ํŠน์„ฑ:

  • ์žฅ์น˜๋Š” ID ์ ‘๋‘์‚ฌ๋ณ„๋กœ ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์šด์˜ํ•˜๋Š” ์„ธ ๊ฐœ์˜ rendezvous ์„œ๋ฒ„์— ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋™์ผํ•œ ์„œ๋ฒ„์— ์งˆ์˜ํ•˜์—ฌ ์žฅ์น˜์˜ ์™ธ๋ถ€/๋ฆด๋ ˆ์ด ์ฃผ์†Œ๋ฅผ ์ฐพ๊ณ  UDP hole punching์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋ฆด๋ ˆ์ด ํด๋ฐฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ์„œ๋ฒ„ ๋ฆฌ์Šค๋„ˆ๋Š” UDP/32100์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ โ€œhelloโ€ ํ”„๋กœ๋ธŒ๋งŒ์œผ๋กœ ์„œ๋ฒ„์™€ ์ผ๋ถ€ ์žฅ์น˜๋ฅผ ์ง€๋ฌธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ ํƒ์  blanket cipher์™€ ํŠน์ˆ˜ํ•œ โ€œCRCEncโ€ ๋ชจ๋“œ๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ์„ค๊ณ„์ƒ ์•ฝํ•˜๋ฉฐ ์ธ๊ธฐ ์žˆ๋Š” ์ƒํƒœ๊ณ„(์˜ˆ: LookCam)์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์€ ๋ณดํ†ต PPPP ์ŠคํŠธ๋ฆผ ์œ„์˜ JSON ๋ช…๋ น์ด๋ฉฐ, ์ธ์ฆ ๋ˆ„๋ฝ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „์„ฑ ๋ฒ„๊ทธ๊ฐ€ ํ”ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์žฅ์น˜ ID ํ˜•์‹(LookCam ๊ณ„์—ด): PREFIX-######-CCCCC, ์•ฑ์—์„œ๋Š” ์ถ•์•ฝ๋˜์–ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค(์˜ˆ: GHBB-000001-NRLXW โ†’ G000001NRLXW). ๊ด€์ฐฐ๋œ ์ ‘๋‘์‚ฌ: BHCC (โ€œhekaiโ€), FHBB ๋ฐ GHBB (โ€œmykjโ€).

Discovery and Enumeration

  • Internet exposure: ๋งŽ์€ PPPP ์Šˆํผ๋…ธ๋“œ๊ฐ€ 32100/UDP ํ”„๋กœ๋ธŒ์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์•Œ๋ ค์ง„ ํ‰๋ฌธ ๋ฐ ์—๋Ÿฌ ๋ฌธ์ž์—ด ์‘๋‹ต์œผ๋กœ ํŠธ๋ž˜ํ”ฝ ์บก์ฒ˜๋‚˜ ์ธํ„ฐ๋„ท ์Šค์บ๋„ˆ์—์„œ ์‰ฝ๊ฒŒ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค.
  • LAN discovery: ์žฅ์น˜๋Š” ์ข…์ข… ๋กœ์ปฌ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธ์˜ ์•”ํ˜ธํ™”๋˜์ง€ ์•Š์€ ๊ฒ€์ƒ‰์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์—ด๊ฑฐํ•˜๋ ค๋ฉด Paul Marrapeseโ€™s script๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:
  • https://github.com/pmarrapese/iot/tree/master/p2p/lansearch

์ฐธ๊ณ :

  • ์•ฑ์—๋Š” ๋‚œ๋…ํ™”๋œ ์„œ๋ฒ„ IP ๋ชฉ๋ก๊ณผ ํ”„๋กœํ† ์ฝœ ํ‚ค๋ฅผ ํฌํ•จํ•œ โ€œinit stringsโ€๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ž์—ด๋“ค์€ Android/iOS/Windows ํด๋ผ์ด์–ธํŠธ์—์„œ ์‰ฝ๊ฒŒ ์ถ”์ถœ๋˜๋ฉฐ ์ข…์ข… ๋งŽ์€ ์ œํ’ˆ ๋ผ์ธ์—์„œ ์žฌ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

NAT Traversal and Transport

  • Rendezvous ์„œ๋ฒ„๋Š” ์žฅ์น˜์˜ ์ฃผ๊ธฐ์  keepalive๋กœ๋ถ€ํ„ฐ ์žฅ์น˜์˜ ๊ณต์šฉ ๋งคํ•‘์„ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ๋งคํ•‘์„ ์œ„ํ•ด ์„œ๋ฒ„์— ์งˆ์˜ํ•œ ๋’ค hole punching์„ ์‚ฌ์šฉํ•ด ์ง์ ‘ UDP ํ”Œ๋กœ์šฐ๋ฅผ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. NAT traversal์ด ์‹คํŒจํ•˜๋ฉด ์ง€์ •๋œ PPPP ๋ฆด๋ ˆ์ด ํ˜ธ์ŠคํŠธ๊ฐ€ ํŠธ๋ž˜ํ”ฝ์„ ์ค‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค.
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ โ€œ์ŠคํŠธ๋ฆผโ€์€ UDP ์œ„์— ์ž์ฒด ACK/retx ๋กœ์ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค; ์žฌ์ „์†ก ๋ฃจํ”„๊ฐ€ ์—ฌ๋Ÿฌ ์ฝ”๋“œ ๊ฒฝ๋กœ์— ์ค‘๋ณต๋˜์–ด ์†์‹ค์ด ์‹ฌํ•œ ๋งํฌ๋ฅผ ํ”Œ๋Ÿฌ๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ฝํ•œ โ€œ์•”ํ˜ธํ™”โ€ ๋ฐ ํ‚ค ๋ณต๊ตฌ

CS2 ์Šคํƒ์—๋Š” ๋น„ํšจ์œจ์ ์ธ ๋‘ ๊ฐ€์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค:

  1. Blanket cipher (optional) โ€“ P2P_Proprietary_Encrypt
  • LookCam์„ ์‚ฌ์šฉํ•˜๋Š” OEM์—์„œ๋Š” ๋ณดํ†ต ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์•ฑ์ธก โ€œinit stringโ€์ด ํ‚ค ์žฌ๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ์ด๋Š” ์œ ํšจํ•œ 4๋ฐ”์ดํŠธ ํ‚ค(~2^32 ๊ณต๊ฐ„)๋กœ ์ถ•์†Œ๋ฉ๋‹ˆ๋‹ค.
  • ์‹ค์šฉ์ ์ธ ์•Œ๋ ค์ง„ ํ‰๋ฌธ: UDP/32100์œผ๋กœ ๋ณด๋‚ด๋Š” MSG_HELLO์˜ ์ฒ˜์Œ 4๋ฐ”์ดํŠธ๋Š” F1 00 00 00๋กœ ์•Œ๋ ค์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ์•”ํ˜ธํ™” ํ•ธ๋“œ์…ฐ์ดํฌ๋ฅผ ๊ด€์ฐฐํ•˜๋ฉด ๋น ๋ฅธ ํ‚ค ๋ณต๊ตฌ๋‚˜ ๊ฒ€์ฆ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ ์ œ์–ด ๋ฉ”์‹œ์ง€(์˜ˆ: MSG_REPORT_SESSION_READY)๋Š” ์•ฑ ์ „๋ฐ˜์— ๊ณต์œ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•˜๋“œ์ฝ”๋”ฉ ํ‚ค๋กœ ํ•ญ์ƒ ์•”ํ˜ธํ™”๋ฉ๋‹ˆ๋‹ค.
  1. Registration โ€œencryptionโ€ โ€“ PPPP_CRCEnc
  • ์ด๋ฆ„๊ณผ ๋‹ฌ๋ฆฌ CRC๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. 4๋ฐ”์ดํŠธ ํŒจ๋”ฉ ์ฒดํฌ(์ธ์ฆ๋˜์ง€ ์•Š์Œ)๊ฐ€ ์žˆ๋Š” ๊ณ ์ • ๋ฐ˜๋ณต XOR ํ‚ค์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค.
  • LookCam ๋„คํŠธ์›Œํฌ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์žฅ์น˜ โ†’ ์„œ๋ฒ„ ๋“ฑ๋ก(MSG_DEV_LGN_CRC)์— ๋Œ€ํ•ด์„œ๋งŒ CRCEnc๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋Œ€๋ถ€๋ถ„์˜ ํŠธ๋ž˜ํ”ฝ์€ ํ‰๋ฌธ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

Simple keystream recovery for PPPP_CRCEnc (Python):

# ciphertext: captured bytes of an encrypted registration message
# known: guessed/known plaintext region (e.g., JSON or constant header)
keystream = bytes([c ^ p for c, p in zip(ciphertext[:len(known)], known)])
# Decrypt more bytes by XORing with the repeating keystream
pt = bytes([c ^ keystream[i % len(keystream)] for i, c in enumerate(ciphertext)])

์œ„ํ˜‘ ๋ชจ๋ธ ๋ถˆ์ผ์น˜: CS2 ์ž๋ฃŒ๋Š” ๊ธฐ๋ฐ€์„ฑ(confidentiality)๋ณด๋‹ค๋Š” ๊ฐ€์งœ ๋””๋ฐ”์ด์Šค ๋“ฑ๋ก์„ ํ†ตํ•œ DoS ๋ฐฉ์ง€์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค. ์ด๊ฒƒ์ด ๋“ฑ๋ก(registration)๋งŒ ์„ ํƒ์ ์œผ๋กœ โ€œencryptionโ€๋˜๊ณ  ๋น„๋””์˜ค/์ปจํŠธ๋กค์€ ์„ ํƒ์ ์ด๊ฑฐ๋‚˜ cleartext๋กœ ๋‚จ์•„ ์žˆ๋Š” ์ด์œ ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค. ๊ณผ๊ฑฐ PPPP ์„œ๋ฒ„๋“ค์€ rate limiting์ด ์—†์–ด ๋Œ€๊ทœ๋ชจ brute-force/abuse๊ฐ€ ๊ฐ€๋Šฅํ–ˆ๋‹ค.

Control Plane: JSON Commands and Auth Bypass

๋งŽ์€ PPPP ์นด๋ฉ”๋ผ ํŽŒ์›จ์–ด๋Š” ์„ธ์…˜์ด ์ˆ˜๋ฆฝ๋˜๋ฉด JSON ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค. ์˜ˆ: ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ด๋Š” โ€œloginโ€:

{
"cmd": "LoginDev",
"pwd": "123456"
}

Common vulnerability in LookCam-class devices:

  • ํŽŒ์›จ์–ด๊ฐ€ LoginDev ํ๋ฆ„๊ณผ ์š”์ฒญ๋ณ„ pwd ํ•„๋“œ๋ฅผ ๋ชจ๋‘ ๋ฌด์‹œํ•จ (CWE-287, CWE-306). ์žฅ์น˜๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๊ฒ€์ฆํ•˜์ง€ ์•Š๊ณ  ์šด์˜ ๋ช…๋ น์„ ์ˆ˜๋ฝํ•จ.
  • Exploitation: LoginDev๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๊ฑฐ๋‚˜ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ๋ช…๋ น์„ ์ง์ ‘ ์ „์†ก.

Useful commands observed:

  • searchWiFiList โ€“ iwlist๋ฅผ ํ˜ธ์ถœํ•จ; ์›์‹œ ์ถœ๋ ฅ์€ /tmp/wifi_scan.txt์— ๋‚จ์Œ.
  • DownloadFile โ€“ ๊ฒฝ๋กœ ์ œํ•œ ์—†์ด ์ž„์˜ ๊ฒฝ๋กœ ์ฝ๊ธฐ primitive.

Workflow to deanonymize location via transient artifacts:

  1. Send {โ€œcmdโ€:โ€œsearchWiFiListโ€}.
  2. Read /tmp/wifi_scan.txt via DownloadFile.
  3. Submit BSSID MACs to a geolocation API (e.g., Google Geolocation API) to localize the camera to tens of meters.

Memory-Safety to RCE on Embedded Firmware

Typical unsafe pattern (pseudocode from handlers):

char buf[256];
char *cmd = cJSON_GetObjectItem(request, "cmd")->valuestring;
memset(buf, 0, sizeof(buf));
memcpy(buf, cmd, strlen(cmd)); // no bound check
  • Trigger: any cmd string > 255 bytes causes a stack buffer overflow (CWE-120/121).
  • Protections: no stack canary; DEP/NX and ASLR commonly disabled on these builds.
  • Impact: straightforward single-stage shellcode or classic ROP/ret2libc on the deviceโ€™s CPU (e.g., ARM) for full compromise and LAN pivoting.

See also:

Stack Overflow

Ret2lib

Cloud Storage Abuse (HTTP, Device-ID only)

๋งŽ์€ LookCam ๋ธŒ๋žœ๋“œ ํŽŒ์›จ์–ด๊ฐ€ ๋…นํ™”๋ฌผ์„ api.l040z.com (BHCC์˜ ๊ฒฝ์šฐ apicn.l040z.com)์œผ๋กœ HTTP๋งŒ ์‚ฌ์šฉํ•ด ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๊ด€์ฐฐ๋œ ์ :

  • ํŽŒ์›จ์–ด์— TLS ์—†์Œ; ์ „์†ก์€ ํ‰๋ฌธ HTTP.
  • API โ€œauthenticationโ€œ์€ device-ID๋งŒ ์‚ฌ์šฉ: ID๋ฅผ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋…นํ™”๋ฌผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ.
  • 5 MiB ๋‹จ์œ„ ์ฒญํฌ๊ฐ€ ํ•˜๋“œ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Œ.
  • ์›๊ฒฉ ํ™œ์„ฑํ™”: ๋ถ€ํŒ… ์‹œ ์žฅ์น˜๋Š” http://api.l040z.com/camera/signurl ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์„œ๋ฒ„ ์‘๋‹ต์ด ์—…๋กœ๋“œ ์‹œ์ž‘ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•จ. ๋ชจ๋ฐ”์ผ ์•ฑ์€ ์—…๋กœ๋“œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ cloud โ€œdisabledโ€๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Œ. ์ œ3์ž๊ฐ€ ํ”ผํ•ด์ž ID์— ๋Œ€ํ•ด cloud๋ฅผ ๊ตฌ๋งค/ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฌด๋‹จ์œผ๋กœ ์˜์ƒ ์ˆ˜์ง‘์ด ๊ฐ€๋Šฅํ•จ.

์ด๋Š” classic cleartext sensitive transmission (CWE-319)์ด๋ฉฐ ์„œ๋ฒ„ ์ธก authZ ๋ถ€์žฌ๊ฐ€ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

Device-ID Enumeration and Guessing

  • ID ํ˜•์‹: PREFIX-######-CCCCC ๋ฐ ์•ฑ ๋‹จ์ถ•ํ˜• (์˜ˆ: GHBB-000001-NRLXW โ†’ G000001NRLXW).
  • Prefix ๊ณ„์—ด: BHCC (hekai servers), FHBB ๋ฐ GHBB (mykj servers). ๊ฐ prefix๋Š” HA์šฉ์œผ๋กœ ์„ธ ๊ฐœ์˜ rendezvous ์„œ๋ฒ„์— ๋งคํ•‘๋จ.
  • 5์ž ๊ฒ€์‚ฌ์ž(verifier)๋Š” 22๊ฐœ์˜ ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์„ ์‚ฌ์šฉ (A, I, O, Q ์ œ์™ธ) โ†’ 22^5 โ‰ˆ 5.15M ์กฐํ•ฉ/์ˆซ์ž ๊ธฐ๋ฐ˜.
  • ์ด์ „ ์—ฐ๊ตฌ์—์„œ ์„œ๋ฒ„ ์ธก rate-limiting์ด ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ด€์ฐฐ๋˜์–ด ๋ถ„์‚ฐ ์ถ”์ธก์ด ์‹ค์šฉ์ ์ž„. verifier ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งž์ถคํ˜•์ด๋ฉฐ ์•ฑ/ํŽŒ์›จ์–ด ๋ฆฌ๋ฒ„์‹ฑ์œผ๋กœ ์ถ”์ธกํ•˜๊ฑฐ๋‚˜ ์–ป์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Œ.

์‹ค๋ฌด์  ID ์ถœ์ฒ˜:

  • ๊ณต์‹ ์•ฑ ์ „๋ฐ˜์— ํ‘œ์‹œ๋˜๋ฉฐ ์‚ฌ์šฉ์ž ์Šคํฌ๋ฆฐ์ƒท/๋น„๋””์˜ค์—์„œ ์ž์ฃผ leaked.
  • AP ๋ชจ๋“œ SSID๊ฐ€ device ID์™€ ๋™์ผ; ๋งŽ์€ ์žฅ์น˜๊ฐ€ ์˜จ๋ณด๋”ฉ ์ค‘์— ์˜คํ”ˆ AP๋ฅผ ๋…ธ์ถœํ•จ.

Forcing Remote Reachability

์ผ๋ถ€ ํŽŒ์›จ์–ด๋Š” rendezvous ์„œ๋ฒ„์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ์žฌ๋ถ€ํŒ… ๋ฃจํ”„์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. egress๊ฐ€ ์ฐจ๋‹จ๋˜๋ฉด ์žฅ์น˜๋Š” ์žฌ๋ถ€ํŒ… ์‚ฌ์ดํด์— ๋‚จ์•„ ์†Œ์œ ์ž๊ฐ€ ์žฅ์น˜๋ฅผ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐํ•˜๊ฒŒ ๊ฐ•์ œํ•˜๊ณ  PPPP rendezvous์— ๋…ธ์ถœ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Practical Exploitation Playbook (for repro/defense testing)

  1. Obtain device ID
  • ์•ฑ UI ๋˜๋Š” AP SSID์—์„œ; ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด PREFIX+number๋ฅผ ์—ด๊ฑฐํ•˜๊ณ  22^5 verifier ๊ณต๊ฐ„์„ ๋ธŒ๋ฃจํŠธํฌ์Šค.
  1. Establish PPPP session
  • CS2 PPPP client ๋˜๋Š” ์ปค์Šคํ…€ ์ฝ”๋“œ ์‚ฌ์šฉ; ์•ฑ init ๋ฌธ์ž์—ด์—์„œ ์„œ๋ฒ„ IP ๋ชฉ๋ก๊ณผ init keys๋ฅผ ์ถ”์ถœ; UDP hole punching ์‹œ๋„; ์‹คํŒจํ•˜๋ฉด relay๋กœ ํด๋ฐฑ.
  1. Bypass auth
  • LoginDev๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฌด์‹œ; ์šด์˜์šฉ JSON์„ ์ง์ ‘ ์ „์†ก.
  1. Exfiltrate files / geo-locate
  • Send {โ€œcmdโ€:โ€œsearchWiFiListโ€}; ๊ทธ๋Ÿฐ ๋‹ค์Œ DownloadFile โ€œ/tmp/wifi_scan.txtโ€; BSSIDs๋ฅผ geolocation API์— ์ œ์ถœ.
  1. Achieve RCE
  • cmd > 255 bytes๋ฅผ ๋ณด๋‚ด ์Šคํƒ ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋ฅผ ์œ ๋ฐœ; ROP/ret2libc๋ฅผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ shellcode๋ฅผ ์ฃผ์ž…(์Šคํƒ canary/DEP/ASLR ์—†์Œ).
  1. Cloud access
  • device ID๋งŒ์œผ๋กœ api.l040z.com ์—”๋“œํฌ์ธํŠธ์™€ ์ƒํ˜ธ์ž‘์šฉ; 5 MiB ์ฒญํ‚น ์œ ์˜; cloud ํ™œ์„ฑํ™”๋Š” ์•ฑ UI ์ƒํƒœ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ /camera/signurl๋กœ ์ œ์–ด๋จ.

554,8554 - Pentesting RTSP

Pentesting Wifi

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