macOS ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค ๋ฐ ํ”„๋กœํ† ์ฝœ

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

์›๊ฒฉ ์•ก์„ธ์Šค ์„œ๋น„์Šค

์ด๋“ค์€ macOS์—์„œ ์›๊ฒฉ์œผ๋กœ ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.
์ด ์„œ๋น„์Šค๋Š” System Settings โ€“> Sharing์—์„œ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • VNC, โ€œํ™”๋ฉด ๊ณต์œ โ€œ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Œ (tcp:5900)
  • SSH, โ€œ์›๊ฒฉ ๋กœ๊ทธ์ธโ€œ์ด๋ผ๊ณ  ๋ถˆ๋ฆผ (tcp:22)
  • Apple Remote Desktop (ARD), ๋˜๋Š” โ€œ์›๊ฒฉ ๊ด€๋ฆฌโ€ (tcp:3283, tcp:5900)
  • AppleEvent, โ€œ์›๊ฒฉ Apple ์ด๋ฒคํŠธโ€œ๋กœ ์•Œ๋ ค์ ธ ์žˆ์Œ (tcp:3031)

ํ™œ์„ฑํ™”๋œ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์„ธ์š”:

rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
flShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | egrep "\\*.88|\\*.445|\\*.548" | wc -l);
rLgn=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.22" | wc -l);
rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";

Pentesting ARD

Apple Remote Desktop (ARD)๋Š” macOS์— ๋งž๊ฒŒ ์กฐ์ •๋œ Virtual Network Computing (VNC)์˜ ํ–ฅ์ƒ๋œ ๋ฒ„์ „์œผ๋กœ, ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ARD์˜ ์ฃผ๋ชฉํ•  ๋งŒํ•œ ์ทจ์•ฝ์ ์€ ์ œ์–ด ํ™”๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์ธ์ฆ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋น„๋ฐ€๋ฒˆํ˜ธ์˜ ์ฒ˜์Œ 8์ž๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Hydra ๋˜๋Š” GoRedShell๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฒฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธฐ๋ณธ ์†๋„ ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

์ทจ์•ฝํ•œ ์ธ์Šคํ„ด์Šค๋Š” nmap์˜ vnc-info ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. VNC Authentication (2)๋ฅผ ์ง€์›ํ•˜๋Š” ์„œ๋น„์Šค๋Š” 8์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž˜๋ฆผ์œผ๋กœ ์ธํ•ด ๋ฌด์ฐจ๋ณ„ ๋Œ€์ž… ๊ณต๊ฒฉ์— ํŠนํžˆ ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค.

๊ถŒํ•œ ์ƒ์Šน, GUI ์ ‘๊ทผ ๋˜๋Š” ์‚ฌ์šฉ์ž ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๊ด€๋ฆฌ ์ž‘์—…์„ ์œ„ํ•ด ARD๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes

ARD๋Š” ๊ด€์ฐฐ, ๊ณต์œ  ์ œ์–ด ๋ฐ ์ „์ฒด ์ œ์–ด๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ์ œ์–ด ์ˆ˜์ค€์„ ์ œ๊ณตํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ํ›„์—๋„ ์„ธ์…˜์ด ์ง€์†๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ฆฌ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด Unix ๋ช…๋ น์„ ์ง์ ‘ ์ „์†กํ•˜๊ณ  root๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์˜ˆ์•ฝ ๋ฐ ์›๊ฒฉ Spotlight ๊ฒ€์ƒ‰์€ ์—ฌ๋Ÿฌ ๋จธ์‹ ์—์„œ ๋ฏผ๊ฐํ•œ ํŒŒ์ผ์— ๋Œ€ํ•œ ์›๊ฒฉ ์ €์˜ํ–ฅ ๊ฒ€์ƒ‰์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š” ์ฃผ๋ชฉํ•  ๋งŒํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ตœ๊ทผ ํ™”๋ฉด ๊ณต์œ  / ARD ์ทจ์•ฝ์  (2023-2025)

์—ฐ๋„CVE๊ตฌ์„ฑ ์š”์†Œ์˜ํ–ฅ์ˆ˜์ •๋จ
2023CVE-2023-42940ํ™”๋ฉด ๊ณต์œ ์ž˜๋ชป๋œ ์„ธ์…˜ ๋ Œ๋”๋ง์œผ๋กœ ์ธํ•ด ์ž˜๋ชป๋œ ๋ฐ์Šคํฌํƒ‘์ด๋‚˜ ์ฐฝ์ด ์ „์†ก๋˜์–ด ๋ฏผ๊ฐํ•œ ์ •๋ณด๊ฐ€ ์œ ์ถœ๋  ์ˆ˜ ์žˆ์ŒmacOS Sonoma 14.2.1 (2023๋…„ 12์›”)
2024CVE-2024-23296launchservicesd / login์›๊ฒฉ ๋กœ๊ทธ์ธ ํ›„ ์ฒด์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ์šฐํšŒ (์‹ค์ œ๋กœ ์•…์šฉ๋จ)macOS Ventura 13.6.4 / Sonoma 14.4 (2024๋…„ 3์›”)

๊ฐ•ํ™” ํŒ

  • ์—„๊ฒฉํžˆ ํ•„์š”ํ•˜์ง€ ์•Š์„ ๋•Œ๋Š” ํ™”๋ฉด ๊ณต์œ /์›๊ฒฉ ๊ด€๋ฆฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค.
  • macOS๋ฅผ ์™„์ „ํžˆ ํŒจ์น˜ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜์‹ญ์‹œ์˜ค (Apple์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ตœ๊ทผ 3๊ฐœ์˜ ์ฃผ์š” ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ˆ˜์ • ์‚ฌํ•ญ์„ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค).
  • ๊ฐ•๋ ฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ โ€œVNC ๋ทฐ์–ด๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ํ™”๋ฉด์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Œโ€ ์˜ต์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์‹ญ์‹œ์˜ค.
  • TCP 5900/3283์„ ์ธํ„ฐ๋„ท์— ๋…ธ์ถœํ•˜๋Š” ๋Œ€์‹  VPN ๋’ค์— ์„œ๋น„์Šค๋ฅผ ๋ฐฐ์น˜ํ•˜์‹ญ์‹œ์˜ค.
  • ARDAgent๋ฅผ ๋กœ์ปฌ ์„œ๋ธŒ๋„ท์œผ๋กœ ์ œํ•œํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค:
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --setblockapp /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent on

Bonjour ํ”„๋กœํ† ์ฝœ

Bonjour๋Š” Apple์ด ์„ค๊ณ„ํ•œ ๊ธฐ์ˆ ๋กœ, ๊ฐ™์€ ๋„คํŠธ์›Œํฌ์— ์žˆ๋Š” ์žฅ์น˜๋“ค์ด ์„œ๋กœ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Rendezvous, ์ œ๋กœ ๊ตฌ์„ฑ ๋˜๋Š” Zeroconf๋กœ๋„ ์•Œ๋ ค์ง„ ์ด ๊ธฐ์ˆ ์€ ์žฅ์น˜๊ฐ€ TCP/IP ๋„คํŠธ์›Œํฌ์— ๊ฐ€์ž…ํ•˜๊ณ , ์ž๋™์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ์„ ํƒํ•˜๋ฉฐ, ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์žฅ์น˜์— ์„œ๋น„์Šค๋ฅผ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

Bonjour๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ œ๋กœ ๊ตฌ์„ฑ ๋„คํŠธ์›Œํ‚น์€ ์žฅ์น˜๊ฐ€ ๋‹ค์Œ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค:

  • DHCP ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ IP ์ฃผ์†Œ๋ฅผ ์ž๋™์œผ๋กœ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • DNS ์„œ๋ฒ„ ์—†์ด ์ด๋ฆ„-์ฃผ์†Œ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Bonjour๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์น˜๋Š” 169.254/16 ๋ฒ”์œ„์˜ IP ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ๋„คํŠธ์›Œํฌ์—์„œ ๊ณ ์œ ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Mac์€ ์ด ์„œ๋ธŒ๋„ท์— ๋Œ€ํ•œ ๋ผ์šฐํŒ… ํ…Œ์ด๋ธ” ํ•ญ๋ชฉ์„ ์œ ์ง€ํ•˜๋ฉฐ, netstat -rn | grep 169๋ฅผ ํ†ตํ•ด ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DNS์˜ ๊ฒฝ์šฐ, Bonjour๋Š” ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ DNS(mDNS) ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mDNS๋Š” ํฌํŠธ 5353/UDP๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•˜๋ฉฐ, ํ‘œ์ค€ DNS ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธ ์ฃผ์†Œ 224.0.0.251์„ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ์ˆ˜์‹  ์žฅ์น˜๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ๊ธฐ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ์— ๊ฐ€์ž…ํ•  ๋•Œ ๊ฐ ์žฅ์น˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ .local๋กœ ๋๋‚˜๋Š” ์ด๋ฆ„์„ ์ž๊ฐ€ ์„ ํƒํ•˜๋ฉฐ, ์ด๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์—์„œ ํŒŒ์ƒ๋˜๊ฑฐ๋‚˜ ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ ๋‚ด ์„œ๋น„์Šค ๋ฐœ๊ฒฌ์€ **DNS ์„œ๋น„์Šค ๋ฐœ๊ฒฌ(DNS-SD)**์— ์˜ํ•ด ์ด‰์ง„๋ฉ๋‹ˆ๋‹ค. DNS SRV ๋ ˆ์ฝ”๋“œ์˜ ํ˜•์‹์„ ํ™œ์šฉํ•˜์—ฌ DNS-SD๋Š” DNS PTR ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์„œ๋น„์Šค์˜ ๋ชฉ๋ก์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ์„œ๋น„์Šค๋ฅผ ์ฐพ๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” <Service>.<Domain>์— ๋Œ€ํ•œ PTR ๋ ˆ์ฝ”๋“œ๋ฅผ ์š”์ฒญํ•˜๋ฉฐ, ์„œ๋น„์Šค๊ฐ€ ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ <Instance>.<Service>.<Domain> ํ˜•์‹์˜ PTR ๋ ˆ์ฝ”๋“œ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜๋ฐ›์Šต๋‹ˆ๋‹ค.

dns-sd ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ๊ด‘๊ณ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์‚ฌ์šฉ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

SSH ์„œ๋น„์Šค ๊ฒ€์ƒ‰

๋„คํŠธ์›Œํฌ์—์„œ SSH ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

dns-sd -B _ssh._tcp

์ด ๋ช…๋ น์€ _ssh._tcp ์„œ๋น„์Šค ๊ฒ€์ƒ‰์„ ์‹œ์ž‘ํ•˜๊ณ  ํƒ€์ž„์Šคํƒฌํ”„, ํ”Œ๋ž˜๊ทธ, ์ธํ„ฐํŽ˜์ด์Šค, ๋„๋ฉ”์ธ, ์„œ๋น„์Šค ์œ ํ˜• ๋ฐ ์ธ์Šคํ„ด์Šค ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

HTTP ์„œ๋น„์Šค ๊ด‘๊ณ 

HTTP ์„œ๋น„์Šค๋ฅผ ๊ด‘๊ณ ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

dns-sd -R "Index" _http._tcp . 80 path=/index.html

์ด ๋ช…๋ น์€ ํฌํŠธ 80์—์„œ /index.html ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ง„ โ€œIndexโ€œ๋ผ๋Š” ์ด๋ฆ„์˜ HTTP ์„œ๋น„์Šค๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋„คํŠธ์›Œํฌ์—์„œ HTTP ์„œ๋น„์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด:

dns-sd -B _http._tcp

์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋˜๋ฉด, ์„œ๋ธŒ๋„ท์˜ ๋ชจ๋“  ์žฅ์น˜์— ์ž์‹ ์˜ ๊ฐ€์šฉ์„ฑ์„ ๋ฉ€ํ‹ฐ์บ์ŠคํŠธํ•˜์—ฌ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์žฅ์น˜๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ ํ•„์š” ์—†์ด ์ด๋Ÿฌํ•œ ์•Œ๋ฆผ์„ ๋“ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ณด๋‹ค ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ„ํ•ด, Apple App Store์—์„œ ์ œ๊ณต๋˜๋Š” Discovery - DNS-SD Browser ์•ฑ์€ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์—์„œ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‹œ๊ฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜๋Š”, python-zeroconf ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ๋ฐœ๊ฒฌํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. python-zeroconf ์Šคํฌ๋ฆฝํŠธ๋Š” _http._tcp.local. ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์ œ๊ฑฐ๋œ ์„œ๋น„์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค:

from zeroconf import ServiceBrowser, Zeroconf

class MyListener:

def remove_service(self, zeroconf, type, name):
print("Service %s removed" % (name,))

def add_service(self, zeroconf, type, name):
info = zeroconf.get_service_info(type, name)
print("Service %s added, service info: %s" % (name, info))

zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
try:
input("Press enter to exit...\n\n")
finally:
zeroconf.close()

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ Bonjour ์—ด๊ฑฐ

  • Nmap NSE โ€“ ๋‹จ์ผ ํ˜ธ์ŠคํŠธ์—์„œ ๊ด‘๊ณ ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ๋ฐœ๊ฒฌํ•ฉ๋‹ˆ๋‹ค:
nmap -sU -p 5353 --script=dns-service-discovery <target>

dns-service-discovery ์Šคํฌ๋ฆฝํŠธ๋Š” _services._dns-sd._udp.local ์ฟผ๋ฆฌ๋ฅผ ์ „์†กํ•œ ํ›„ ๊ฐ ๊ด‘๊ณ ๋œ ์„œ๋น„์Šค ์œ ํ˜•์„ ์—ด๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

  • mdns_recon โ€“ ์ž˜๋ชป ๊ตฌ์„ฑ๋œ mDNS ์‘๋‹ต๊ธฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ์ „์ฒด ๋ฒ”์œ„๋ฅผ ์Šค์บ”ํ•˜๋Š” Python ๋„๊ตฌ๋กœ, ์œ ๋‹ˆ์บ์ŠคํŠธ ์ฟผ๋ฆฌ์— ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค (์„œ๋ธŒ๋„ท/WAN์„ ํ†ตํ•ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์žฅ์น˜๋ฅผ ์ฐพ๋Š” ๋ฐ ์œ ์šฉ):
git clone https://github.com/chadillac/mdns_recon && cd mdns_recon
python3 mdns_recon.py -r 192.0.2.0/24 -s _ssh._tcp.local

์ด ๋ช…๋ น์€ ๋กœ์ปฌ ๋งํฌ ์™ธ๋ถ€์—์„œ Bonjour๋ฅผ ํ†ตํ•ด SSH๋ฅผ ๋…ธ์ถœํ•˜๋Š” ํ˜ธ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ ๊ณ ๋ ค ์‚ฌํ•ญ ๋ฐ ์ตœ๊ทผ ์ทจ์•ฝ์  (2024-2025)

์—ฐ๋„CVE์‹ฌ๊ฐ๋„๋ฌธ์ œํŒจ์น˜๋œ ๋ฒ„์ „
2024CVE-2024-44183์ค‘๊ฐ„mDNSResponder์˜ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ์กฐ์ž‘๋œ ํŒจํ‚ท์ด ์„œ๋น„์Šค ๊ฑฐ๋ถ€๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์ŒmacOS Ventura 13.7 / Sonoma 14.7 / Sequoia 15.0 (2024๋…„ 9์›”)
2025CVE-2025-31222๋†’์ŒmDNSResponder์˜ ์ •ํ™•์„ฑ ๋ฌธ์ œ๋กœ ์ธํ•ด ๋กœ์ปฌ ๊ถŒํ•œ ์ƒ์Šน์— ์•…์šฉ๋  ์ˆ˜ ์žˆ์ŒmacOS Ventura 13.7.6 / Sonoma 14.7.6 / Sequoia 15.5 (2025๋…„ 5์›”)

์™„ํ™” ์ง€์นจ

  1. UDP 5353์„ ๋งํฌ ๋กœ์ปฌ ๋ฒ”์œ„๋กœ ์ œํ•œ โ€“ ๋ฌด์„  ์ปจํŠธ๋กค๋Ÿฌ, ๋ผ์šฐํ„ฐ ๋ฐ ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐฉํ™”๋ฒฝ์—์„œ ์ฐจ๋‹จํ•˜๊ฑฐ๋‚˜ ์†๋„ ์ œํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ์„œ๋น„์Šค ๋ฐœ๊ฒฌ์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ์‹œ์Šคํ…œ์—์„œ Bonjour๋ฅผ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
  1. Bonjour๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ํ•„์š”ํ•˜์ง€๋งŒ ๋„คํŠธ์›Œํฌ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” AirPlay Receiver ํ”„๋กœํ•„ ์ œํ•œ(MDM) ๋˜๋Š” mDNS ํ”„๋ก์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. **์‹œ์Šคํ…œ ๋ฌด๊ฒฐ์„ฑ ๋ณดํ˜ธ(SIP)**๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  macOS๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค โ€“ ์œ„์˜ ๋‘ ์ทจ์•ฝ์ ์€ ์‹ ์†ํ•˜๊ฒŒ ํŒจ์น˜๋˜์—ˆ์ง€๋งŒ ์ „์ฒด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด SIP๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

Bonjour ๋น„ํ™œ์„ฑํ™”

๋ณด์•ˆ์— ๋Œ€ํ•œ ์šฐ๋ ค๋‚˜ Bonjour๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

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