macOS MDM

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 MDM์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๋ฉด ํ™•์ธ:

๊ธฐ๋ณธ

MDM (Mobile Device Management) ๊ฐœ์š”

Mobile Device Management (MDM)์€ ์Šค๋งˆํŠธํฐ, ๋…ธํŠธ๋ถ, ํƒœ๋ธ”๋ฆฟ ๋“ฑ ๋‹ค์–‘ํ•œ ์—”๋“œ์œ ์ € ๋””๋ฐ”์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠนํžˆ Apple ํ”Œ๋žซํผ(iOS, macOS, tvOS)์— ๋Œ€ํ•ด ํŠนํ™”๋œ ๊ธฐ๋Šฅ, API ๋ฐ ๊ด€ํ–‰์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. MDM์˜ ์šด์˜์€ ์ƒ์šฉ ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค์˜ ํ˜ธํ™˜๋˜๋Š” MDM ์„œ๋ฒ„์— ์˜์กดํ•˜๋ฉฐ, ํ•ด๋‹น ์„œ๋ฒ„๋Š” MDM Protocol์„ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•œ ์ค‘์•™ ์ง‘์ค‘์‹ ์ œ์–ด.
  • MDM ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋Š” MDM ์„œ๋ฒ„์— ์˜์กด.
  • MDM ์„œ๋ฒ„๋Š” ์›๊ฒฉ ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋‚˜ ๊ตฌ์„ฑ ์„ค์น˜์™€ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ช…๋ น์„ ๋””๋ฐ”์ด์Šค๋กœ ์ „์†กํ•  ์ˆ˜ ์žˆ์Œ.

DEP (Device Enrollment Program) ๊ธฐ์ดˆ

Device Enrollment Program (DEP)์€ Apple์ด ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ, iOS, macOS, tvOS ๋””๋ฐ”์ด์Šค์˜ MDM ํ†ตํ•ฉ์„ ์ž๋™ํ™”ํ•˜์—ฌ ์ œ๋กœ ํ„ฐ์น˜ ์„ค์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. DEP๋Š” ๋“ฑ๋ก ํ”„๋กœ์„ธ์Šค๋ฅผ ์ž๋™ํ™”ํ•˜์—ฌ ๋””๋ฐ”์ด์Šค๊ฐ€ ๋ฐ•์Šค์—์„œ ๊บผ๋‚ด์ž๋งˆ์ž ์ตœ์†Œํ•œ์˜ ์‚ฌ์šฉ์ž/๊ด€๋ฆฌ์ž ๊ฐœ์ž…์œผ๋กœ ์šด์˜๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ๋””๋ฐ”์ด์Šค๊ฐ€ ์ดˆ๊ธฐ ํ™œ์„ฑํ™” ์‹œ ๋ฏธ๋ฆฌ ์ •์˜๋œ MDM ์„œ๋ฒ„์— ์ž๋™์œผ๋กœ ๋“ฑ๋ก๋˜๋„๋ก ํ—ˆ์šฉ.
  • ์ฃผ๋กœ ์ƒˆ ๋””๋ฐ”์ด์Šค์— ์œ ์šฉํ•˜์ง€๋งŒ ์žฌ๊ตฌ์„ฑ๋˜๋Š” ๋””๋ฐ”์ด์Šค์—๋„ ์ ์šฉ ๊ฐ€๋Šฅ.
  • ๊ฐ„๋‹จํ•œ ์„ค์ •์œผ๋กœ ์กฐ์ง์—์„œ ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉ ์ค€๋น„๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.

๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ

DEP๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฐ„ํŽธํ•œ ๋“ฑ๋ก์€ ์œ ์šฉํ•˜์ง€๋งŒ ๋ณด์•ˆ ๋ฆฌ์Šคํฌ๋ฅผ ๋™๋ฐ˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MDM ๋“ฑ๋ก์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๋ณดํ˜ธ์กฐ์น˜๊ฐ€ ์—†๋‹ค๋ฉด ๊ณต๊ฒฉ์ž๊ฐ€ ์ด ๊ฐ„์†Œํ™”๋œ ์ ˆ์ฐจ๋ฅผ ์•…์šฉํ•˜์—ฌ ์กฐ์ง์˜ MDM ์„œ๋ฒ„์— ์ž์‹ ์˜ ๋””๋ฐ”์ด์Šค๋ฅผ ๊ธฐ์—… ๋””๋ฐ”์ด์Šค๋กœ ๊ฐ€์žฅํ•˜์—ฌ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Caution

๋ณด์•ˆ ๊ฒฝ๊ณ : DEP์˜ ๊ฐ„ํŽธํ•œ ๋“ฑ๋ก ์ ˆ์ฐจ๋Š” ์ ์ ˆํ•œ ๋ณดํ˜ธ ์žฅ์น˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ, ์Šน์ธ๋˜์ง€ ์•Š์€ ๋””๋ฐ”์ด์Šค๊ฐ€ ์กฐ์ง์˜ MDM ์„œ๋ฒ„์— ๋“ฑ๋ก๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SCEP (Simple Certificate Enrolment Protocol)๋ž€?

  • TLS์™€ HTTPS๊ฐ€ ๋„๋ฆฌ ๋ณด๊ธ‰๋˜๊ธฐ ์ „ ๋งŒ๋“ค์–ด์ง„ ๋น„๊ต์  ์˜ค๋ž˜๋œ ํ”„๋กœํ† ์ฝœ.
  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›๊ธฐ ์œ„ํ•ด Certificate Signing Request(CSR)๋ฅผ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์„œ๋ช…๋œ ์ธ์ฆ์„œ๋ฅผ ์š”์ฒญํ•จ.

Configuration Profiles (aka mobileconfigs)๋ž€?

  • Apple์ด ์‹œ์Šคํ…œ ๊ตฌ์„ฑ์„ ์„ค์ •/๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ๋ฐฉ์‹.
  • ์—ฌ๋Ÿฌ ํŽ˜์ด๋กœ๋“œ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ ํฌ๋งท.
  • property lists(XML ํ˜•์‹)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ.
  • โ€œcan be signed and encrypted to validate their origin, ensure their integrity, and protect their contents.โ€ โ€” Basics โ€” Page 70, iOS Security Guide, January 2018.

ํ”„๋กœํ† ์ฝœ

MDM

  • APNs(Apple servers) + RESTful API(MDM vendor servers)์˜ ๊ฒฐํ•ฉ
  • device์™€ ํ•ด๋‹น device management product์— ์—ฐ๋™๋œ ์„œ๋ฒ„ ๊ฐ„์˜ ํ†ต์‹ 
  • Commands๋Š” plist-encoded dictionaries ํ˜•ํƒœ๋กœ MDM์—์„œ ๋””๋ฐ”์ด์Šค๋กœ ์ „๋‹ฌ๋จ
  • ๋ชจ๋‘ HTTPS๋กœ ํ†ต์‹ . MDM ์„œ๋ฒ„๋Š” (์ผ๋ฐ˜์ ์œผ๋กœ) pinning ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ.
  • Apple์€ ์ธ์ฆ์„ ์œ„ํ•ด MDM ๋ฒค๋”์— APNs certificate๋ฅผ ๋ฐœ๊ธ‰ํ•จ

DEP

  • 3๊ฐœ์˜ API: ๋ฆฌ์…€๋Ÿฌ์šฉ 1๊ฐœ, MDM ๋ฒค๋”์šฉ 1๊ฐœ, ๋””๋ฐ”์ด์Šค ์‹ ์›์šฉ(๋น„๊ณต๊ฐœ) 1๊ฐœ
  • ์†Œ์œ„ ๋งํ•˜๋Š” DEP โ€œcloud serviceโ€ API. MDM ์„œ๋ฒ„๊ฐ€ DEP ํ”„๋กœํŒŒ์ผ์„ ํŠน์ • ๋””๋ฐ”์ด์Šค์™€ ์—ฐ๋™ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.
  • Apple Authorized Resellers๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” DEP API๋กœ ๋””๋ฐ”์ด์Šค ๋“ฑ๋ก, ๋“ฑ๋ก ์ƒํƒœ ํ™•์ธ, ํŠธ๋žœ์žญ์…˜ ์ƒํƒœ ํ™•์ธ ๋“ฑ์— ์‚ฌ์šฉ๋จ.
  • ๋น„๊ณต๊ฐœ์˜ undocumented DEP API. Apple ๋””๋ฐ”์ด์Šค๊ฐ€ ์ž์‹ ์˜ DEP ํ”„๋กœํŒŒ์ผ์„ ์š”์ฒญํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋จ. macOS์—์„œ๋Š” cloudconfigurationd ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์ด API์™€ ํ†ต์‹ ์„ ๋‹ด๋‹น.
  • plist ๋Œ€๋น„ ๋ณด๋‹ค ํ˜„๋Œ€์ ์ด๊ณ  JSON ๊ธฐ๋ฐ˜
  • Apple์€ MDM ๋ฒค๋”์— OAuth token์„ ๋ฐœ๊ธ‰ํ•จ

DEP โ€œcloud serviceโ€ API

  • RESTful
  • Apple์—์„œ MDM ์„œ๋ฒ„๋กœ ๋””๋ฐ”์ด์Šค ๋ ˆ์ฝ”๋“œ๋ฅผ ๋™๊ธฐํ™”
  • MDM ์„œ๋ฒ„์—์„œ Apple๋กœ โ€œDEP profilesโ€์„ ๋™๊ธฐํ™”(๋‚˜์ค‘์— Apple์ด ๋””๋ฐ”์ด์Šค์— ์ „๋‹ฌ)
  • DEP โ€œprofileโ€์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋จ:
    • MDM vendor ์„œ๋ฒ„ URL
    • ์„œ๋ฒ„ URL์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์‹ ๋ขฐ ์ธ์ฆ์„œ(์„ ํƒ์  pinning)
    • ์ถ”๊ฐ€ ์„ค์ •(์˜ˆ: Setup Assistant์—์„œ ๊ฑด๋„ˆ๋›ธ ํ™”๋ฉด๋“ค)

์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ

2010๋…„ ์ดํ›„ ์ œ์กฐ๋œ Apple ๋””๋ฐ”์ด์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ 12๊ธ€์ž์˜ ์˜์ˆซ์ž ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ฒ˜์Œ 3์ž๋ฆฌ๋Š” ์ œ์กฐ ์œ„์น˜, ๋‹ค์Œ 2์ž๋ฆฌ๋Š” ์ œ์กฐ ์—ฐ๋„ ๋ฐ ์ฃผ, ๋‹ค์Œ 3์ž๋ฆฌ๋Š” ๊ณ ์œ  ์‹๋ณ„์ž, ๋งˆ์ง€๋ง‰ 4์ž๋ฆฌ๋Š” ๋ชจ๋ธ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

macOS Serial Number

๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ ์ ˆ์ฐจ

  1. Device record ์ƒ์„ฑ(Reseller, Apple): ์ƒˆ ๋””๋ฐ”์ด์Šค์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋จ
  2. Device record ํ• ๋‹น(Customer): ๋””๋ฐ”์ด์Šค๊ฐ€ MDM ์„œ๋ฒ„์— ํ• ๋‹น๋จ
  3. Device record ๋™๊ธฐํ™”(MDM vendor): MDM์€ ๋””๋ฐ”์ด์Šค ๋ ˆ์ฝ”๋“œ๋ฅผ ๋™๊ธฐํ™”ํ•˜๊ณ  DEP ํ”„๋กœํŒŒ์ผ์„ Apple์— ํ‘ธ์‹œํ•จ
  4. DEP ์ฒดํฌ์ธ(Device): ๋””๋ฐ”์ด์Šค๊ฐ€ ์ž์‹ ์˜ DEP ํ”„๋กœํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ด
  5. Profile retrieval(Device)
  6. Profile ์„ค์น˜(Device) โ€” ์˜ˆ: MDM, SCEP ๋ฐ root CA ํŽ˜์ด๋กœ๋“œ ํฌํ•จ
  7. MDM ๋ช…๋ น ๋ฐœํ–‰(Device)

ํŒŒ์ผ /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbd๋Š” ๋“ฑ๋ก ํ”„๋กœ์„ธ์Šค์˜ ๊ณ ์ˆ˜์ค€ โ€œ๋‹จ๊ณ„โ€œ๋กœ ๊ฐ„์ฃผ๋  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋“ค์„ exportํ•ฉ๋‹ˆ๋‹ค.

Step 4: DEP ์ฒดํฌ์ธ - Activation Record ์–ป๊ธฐ

์ด ๋‹จ๊ณ„๋Š” ์‚ฌ์šฉ์ž๊ฐ€ Mac์„ ์ฒ˜์Œ ๋ถ€ํŒ…ํ•  ๋•Œ(๋˜๋Š” ์™„์ „ ์ดˆ๊ธฐํ™” ํ›„) ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” sudo profiles show -type enrollment ์‹คํ–‰ ์‹œ์—๋„ ๋ฐœ์ƒ

  • ๋””๋ฐ”์ด์Šค๊ฐ€ DEP ํ™œ์„ฑํ™”์ธ์ง€ ์—ฌ๋ถ€ ํŒ๋‹จ
  • Activation Record๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ **DEP โ€œprofileโ€**์˜ ๋ช…์นญ์ž„
  • ๋””๋ฐ”์ด์Šค๊ฐ€ ์ธํ„ฐ๋„ท์— ์—ฐ๊ฒฐ๋˜๋Š” ์ฆ‰์‹œ ์‹œ์ž‘๋จ
  • **CPFetchActivationRecord**์— ์˜ํ•ด ๊ตฌ๋™
  • **cloudconfigurationd**๊ฐ€ XPC๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„. Setup Assistant(๋””๋ฐ”์ด์Šค๊ฐ€ ์ฒ˜์Œ ๋ถ€ํŒ…๋  ๋•Œ)๋‚˜ profiles ๋ช…๋ น์ด ์ด ๋ฐ๋ชฌ์— ์—ฐ๋ฝํ•ด activation record๋ฅผ ๊ฐ€์ ธ์˜ด.
  • LaunchDaemon(ํ•ญ์ƒ root๋กœ ์‹คํ–‰)

Activation Record๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด **MCTeslaConfigurationFetcher**๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ช‡ ๋‹จ๊ณ„๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด ๊ณผ์ •์€ Absinthe๋ผ๋Š” ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. certificate ๊ฐ€์ ธ์˜ค๊ธฐ
    1. GET https://iprofiles.apple.com/resource/certificate.cer
  2. ์ธ์ฆ์„œ๋กœ๋ถ€ํ„ฐ ์ƒํƒœ ์ดˆ๊ธฐํ™”(NACInit)
    1. ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ(์˜ˆ: Serial Number via IOKit)
  3. session key ๊ฐ€์ ธ์˜ค๊ธฐ
    1. POST https://iprofiles.apple.com/session
  4. ์„ธ์…˜ ์ˆ˜๋ฆฝ(NACKeyEstablishment)
  5. ์š”์ฒญ ์ˆ˜ํ–‰
    1. POST to https://iprofiles.apple.com/macProfile ์— ๋ฐ์ดํ„ฐ { "action": "RequestProfileConfiguration", "sn": "" } ์ „์†ก
    2. JSON ํŽ˜์ด๋กœ๋“œ๋Š” Absinthe(NACSign)๋กœ ์•”ํ˜ธํ™”๋จ
    3. ๋ชจ๋“  ์š”์ฒญ์€ HTTPS, ๋‚ด์žฅ๋œ ๋ฃจํŠธ ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉ

์‘๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” JSON ๋”•์…”๋„ˆ๋ฆฌ์ž…๋‹ˆ๋‹ค:

  • url: activation profile์„ ์ œ๊ณตํ•˜๋Š” MDM vendor ํ˜ธ์ŠคํŠธ์˜ URL
  • anchor-certs: ์‹ ๋ขฐ ์•ต์ปค๋กœ ์‚ฌ์šฉ๋˜๋Š” DER ์ธ์ฆ์„œ ๋ฐฐ์—ด

Step 5: Profile Retrieval

  • ์š”์ฒญ์€ DEP ํ”„๋กœํŒŒ์ผ์— ์ œ๊ณต๋œ url๋กœ ์ „์†ก๋จ.
  • Anchor certificates๊ฐ€ ์ œ๊ณต๋˜๋ฉด ์‹ ๋ขฐ ํ‰๊ฐ€์— ์‚ฌ์šฉ๋จ.
  • ์ฐธ๊ณ : DEP ํ”„๋กœํŒŒ์ผ์˜ anchor_certs ์†์„ฑ
  • ์š”์ฒญ์€ ๊ฐ„๋‹จํ•œ .plist๋กœ ๋””๋ฐ”์ด์Šค ์‹๋ณ„ ์ •๋ณด๋ฅผ ๋‹ด์Œ
  • ์˜ˆ: UDID, OS version
  • CMS-signed, DER-encoded
  • APNS์˜ device identity certificate๋กœ ์„œ๋ช…๋จ
  • Certificate chain์—๋Š” ๋งŒ๋ฃŒ๋œ Apple iPhone Device CA๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Œ

Step 6: Profile Installation

  • ์ผ๋‹จ ๋ฐ›์•„์˜ค๋ฉด ํ”„๋กœํŒŒ์ผ์€ ์‹œ์Šคํ…œ์— ์ €์žฅ๋จ
  • ์ด ๋‹จ๊ณ„๋Š” (Setup Assistant์ธ ๊ฒฝ์šฐ) ์ž๋™์œผ๋กœ ์‹œ์ž‘๋จ
  • **CPInstallActivationProfile**์— ์˜ํ•ด ๊ตฌ๋™
  • mdmclient๊ฐ€ XPC๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„
  • ์ปจํ…์ŠคํŠธ์— ๋”ฐ๋ผ LaunchDaemon(root) ๋˜๋Š” LaunchAgent(์‚ฌ์šฉ์ž)๋กœ ์‹คํ–‰
  • Configuration profiles์€ ์„ค์น˜ํ•  ์—ฌ๋Ÿฌ ํŽ˜์ด๋กœ๋“œ๋ฅผ ๊ฐ€์ง
  • ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ฒ˜๋กœ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์„ค์น˜
  • ๊ฐ ํŽ˜์ด๋กœ๋“œ ํƒ€์ž…์€ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์—ฐ๋™
  • ํ”„๋ ˆ์ž„์›Œํฌ ๋‚ด๋ถ€์˜ XPC์ด๊ฑฐ๋‚˜ ์ „ํ†ต์  Cocoa(ManagedClient.app)์ผ ์ˆ˜ ์žˆ์Œ
  • ์˜ˆ์‹œ:
    • Certificate Payloads๋Š” CertificateService.xpc ์‚ฌ์šฉ

์ผ๋ฐ˜์ ์œผ๋กœ MDM ๋ฒค๋”๊ฐ€ ์ œ๊ณตํ•˜๋Š” activation profile์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค:

  • com.apple.mdm: ๋””๋ฐ”์ด์Šค๋ฅผ MDM์— enrollํ•˜๊ธฐ ์œ„ํ•œ ํŽ˜์ด๋กœ๋“œ
  • com.apple.security.scep: ๋””๋ฐ”์ด์Šค์— client certificate๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ SCEP ํŽ˜์ด๋กœ๋“œ
  • com.apple.security.pem: ์‹œ์Šคํ…œ ํ‚ค์ฒด์ธ์— trusted CA ์ธ์ฆ์„œ๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•œ PEM ํŽ˜์ด๋กœ๋“œ
  • MDM ํŽ˜์ด๋กœ๋“œ ์„ค์น˜๋Š” ๋ฌธ์„œ์ƒ์˜ MDM check-in์— ํ•ด๋‹น
  • ํŽ˜์ด๋กœ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ์†์„ฑ์„ ํฌํ•จ:
    • MDM Check-In URL(CheckInURL)
    • MDM Command Polling URL(ServerURL) + ์ด๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” APNs topic
  • MDM ํŽ˜์ด๋กœ๋“œ๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ์š”์ฒญ์ด **CheckInURL**๋กœ ์ „์†ก๋จ
  • **mdmclient**์—์„œ ๊ตฌํ˜„
  • MDM ํŽ˜์ด๋กœ๋“œ๋Š” ๋‹ค๋ฅธ ํŽ˜์ด๋กœ๋“œ์— ์˜์กดํ•  ์ˆ˜ ์žˆ์Œ
  • ํŠน์ • ์ธ์ฆ์„œ์— ์š”์ฒญ์„ pinningํ•˜๋„๋ก ํ—ˆ์šฉ:
    • ์†์„ฑ: CheckInURLPinningCertificateUUIDs
    • ์†์„ฑ: ServerURLPinningCertificateUUIDs
    • PEM ํŽ˜์ด๋กœ๋“œ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋จ
  • ๋””๋ฐ”์ด์Šค์— identity certificate๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Œ:
    • ์†์„ฑ: IdentityCertificateUUID
    • SCEP ํŽ˜์ด๋กœ๋“œ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌ๋จ

Step 7: Listening for MDM commands

  • MDM ์ฒดํฌ์ธ์ด ์™„๋ฃŒ๋˜๋ฉด, ๋ฒค๋”๋Š” APNs๋ฅผ ์‚ฌ์šฉํ•ด ํ‘ธ์‹œ ์•Œ๋ฆผ์„ ๋ฐœํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ˆ˜์‹  ์‹œ **mdmclient**๊ฐ€ ์ฒ˜๋ฆฌ
  • MDM ๋ช…๋ น์„ ํด๋งํ•˜๋ ค๋ฉด ์š”์ฒญ์ด ServerURL๋กœ ์ „์†ก๋จ
  • ์ด์ „์— ์„ค์น˜๋œ MDM ํŽ˜์ด๋กœ๋“œ๋ฅผ ์‚ฌ์šฉ:
    • **ServerURLPinningCertificateUUIDs**๋กœ ์š”์ฒญ pinning
    • **IdentityCertificateUUID**๋กœ TLS ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์‚ฌ์šฉ

๊ณต๊ฒฉ

๋‹ค๋ฅธ ์กฐ์ง์— ๋””๋ฐ”์ด์Šค ๋“ฑ๋ก

์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋ฐ”์™€ ๊ฐ™์ด, ๋””๋ฐ”์ด์Šค๋ฅผ ์–ด๋–ค ์กฐ์ง์— ๋“ฑ๋กํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๋•Œ์—๋Š” ๊ทธ ์กฐ์ง์— ์†ํ•œ Serial Number๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ผ๋‹จ ๋””๋ฐ”์ด์Šค๊ฐ€ ๋“ฑ๋ก๋˜๋ฉด ์—ฌ๋Ÿฌ ์กฐ์ง์€ ์ƒˆ ๋””๋ฐ”์ด์Šค์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: ์ธ์ฆ์„œ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, WiFi ๋น„๋ฐ€๋ฒˆํ˜ธ, VPN ๊ตฌ์„ฑ ๋“ฑ(and so on).
๋”ฐ๋ผ์„œ ๋“ฑ๋ก ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ ์ ˆํžˆ ๋ณดํ˜ธ๋˜์ง€ ์•Š์œผ๋ฉด ์ด๋Š” ๊ณต๊ฒฉ์ž์—๊ฒŒ ์œ„ํ—˜ํ•œ ์ง„์ž…์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Enrolling Devices in Other Organisations

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