macOS System Extensions
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 μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
System Extensions / Endpoint Security Framework
Kernel Extensionsμ λ¬λ¦¬, System Extensionsλ μ¬μ©μ 곡κ°μμ μ€νλμ΄ νμ₯ κΈ°λ₯ μ€μλμΌλ‘ μΈν μμ€ν μΆ©λ μνμ μ€μ λλ€.
.png)
System Extensionsμλ DriverKit Extensions, Network Extensions, λ° Endpoint Security Extensionsμ μΈ κ°μ§ μ νμ΄ μμ΅λλ€.
DriverKit Extensions
DriverKitμ νλμ¨μ΄ μ§μμ μ 곡νλ 컀λ νμ₯μ λ체물μ λλ€. USB, Serial, NIC λ° HID λλΌμ΄λ²μ κ°μ μ₯μΉ λλΌμ΄λ²κ° 컀λ 곡κ°μ΄ μλ μ¬μ©μ 곡κ°μμ μ€νλ μ μλλ‘ ν©λλ€. DriverKit νλ μμν¬λ νΉμ I/O Kit ν΄λμ€μ μ¬μ©μ κ³΅κ° λ²μ μ ν¬ν¨νλ©°, 컀λμ μΌλ° I/O Kit μ΄λ²€νΈλ₯Ό μ¬μ©μ 곡κ°μΌλ‘ μ λ¬νμ¬ μ΄λ¬ν λλΌμ΄λ²κ° μ€νλ μ μλ λ μμ ν νκ²½μ μ 곡ν©λλ€.
Network Extensions
Network Extensionsλ λ€νΈμν¬ λμμ μ¬μ©μ μ μν μ μλ κΈ°λ₯μ μ 곡ν©λλ€. μ¬λ¬ μ νμ Network Extensionsκ° μμ΅λλ€:
- App Proxy: νλ¦ μ§ν₯μ μ¬μ©μ μ μ VPN νλ‘ν μ½μ ꡬννλ VPN ν΄λΌμ΄μΈνΈλ₯Ό μμ±νλ λ° μ¬μ©λ©λλ€. μ΄λ κ°λ³ ν¨ν·μ΄ μλ μ°κ²°(λλ νλ¦)μ κΈ°λ°μΌλ‘ λ€νΈμν¬ νΈλν½μ μ²λ¦¬ν¨μ μλ―Έν©λλ€.
- Packet Tunnel: ν¨ν· μ§ν₯μ μ¬μ©μ μ μ VPN νλ‘ν μ½μ ꡬννλ VPN ν΄λΌμ΄μΈνΈλ₯Ό μμ±νλ λ° μ¬μ©λ©λλ€. μ΄λ κ°λ³ ν¨ν·μ κΈ°λ°μΌλ‘ λ€νΈμν¬ νΈλν½μ μ²λ¦¬ν¨μ μλ―Έν©λλ€.
- Filter Data: λ€νΈμν¬ βνλ¦βμ νν°λ§νλ λ° μ¬μ©λ©λλ€. νλ¦ μμ€μμ λ€νΈμν¬ λ°μ΄ν°λ₯Ό λͺ¨λν°λ§νκ±°λ μμ ν μ μμ΅λλ€.
- Filter Packet: κ°λ³ λ€νΈμν¬ ν¨ν·μ νν°λ§νλ λ° μ¬μ©λ©λλ€. ν¨ν· μμ€μμ λ€νΈμν¬ λ°μ΄ν°λ₯Ό λͺ¨λν°λ§νκ±°λ μμ ν μ μμ΅λλ€.
- DNS Proxy: μ¬μ©μ μ μ DNS μ 곡μλ₯Ό μμ±νλ λ° μ¬μ©λ©λλ€. DNS μμ² λ° μλ΅μ λͺ¨λν°λ§νκ±°λ μμ νλ λ° μ¬μ©ν μ μμ΅λλ€.
Endpoint Security Framework
Endpoint Securityλ μμ€ν 보μμ μν API μ§ν©μ μ 곡νλ Appleμ macOS νλ μμν¬μ λλ€. μ΄λ 보μ 곡κΈμ 체μ κ°λ°μκ° μμ€ν νλμ λͺ¨λν°λ§νκ³ μ μ΄νμ¬ μ μμ μΈ νλμ μλ³νκ³ λ³΄νΈν μ μλ μ νμ ꡬμΆνλ λ° μ¬μ©λ©λλ€.
μ΄ νλ μμν¬λ νλ‘μΈμ€ μ€ν, νμΌ μμ€ν μ΄λ²€νΈ, λ€νΈμν¬ λ° μ»€λ μ΄λ²€νΈμ κ°μ μμ€ν νλμ λͺ¨λν°λ§νκ³ μ μ΄νκΈ° μν API λͺ¨μμ μ 곡ν©λλ€.
μ΄ νλ μμν¬μ ν΅μ¬μ 컀λμ ꡬνλμ΄ μμΌλ©°, **/System/Library/Extensions/EndpointSecurity.kext**μ μμΉν 컀λ νμ₯(KEXT)μ
λλ€. μ΄ KEXTλ μ¬λ¬ μ£Όμ κ΅¬μ± μμλ‘ κ΅¬μ±λ©λλ€:
- EndpointSecurityDriver: 컀λ νμ₯μ βμ§μ μ β μν μ ν©λλ€. OSμ Endpoint Security νλ μμν¬ κ°μ μ£Όμ μνΈμμ© μ§μ μ λλ€.
- EndpointSecurityEventManager: 컀λ νν¬λ₯Ό ꡬννλ μ± μμ΄ μλ κ΅¬μ± μμμ λλ€. 컀λ νν¬λ μμ€ν νΈμΆμ κ°λ‘μ±μ΄ μμ€ν μ΄λ²€νΈλ₯Ό λͺ¨λν°λ§ν μ μκ² ν©λλ€.
- EndpointSecurityClientManager: μ¬μ©μ κ³΅κ° ν΄λΌμ΄μΈνΈμμ ν΅μ μ κ΄λ¦¬νλ©°, μ΄λ€ ν΄λΌμ΄μΈνΈκ° μ°κ²°λμ΄ μκ³ μ΄λ²€νΈ μλ¦Όμ λ°μμΌ νλμ§λ₯Ό μΆμ ν©λλ€.
- EndpointSecurityMessageManager: μ¬μ©μ κ³΅κ° ν΄λΌμ΄μΈνΈμ λ©μμ§μ μ΄λ²€νΈ μλ¦Όμ μ μ‘ν©λλ€.
Endpoint Security νλ μμν¬κ° λͺ¨λν°λ§ν μ μλ μ΄λ²€νΈλ λ€μκ³Ό κ°μ΄ λΆλ₯λ©λλ€:
- νμΌ μ΄λ²€νΈ
- νλ‘μΈμ€ μ΄λ²€νΈ
- μμΌ μ΄λ²€νΈ
- 컀λ μ΄λ²€νΈ (μ: 컀λ νμ₯ λ‘λ/μΈλ‘λ λλ I/O Kit μ₯μΉ μ΄κΈ°)
Endpoint Security Framework Architecture
.png)
μ¬μ©μ κ³΅κ° ν΅μ μ IOUserClient ν΄λμ€λ₯Ό ν΅ν΄ Endpoint Security νλ μμν¬μ μ΄λ£¨μ΄μ§λλ€. νΈμΆμ μ νμ λ°λΌ λ κ°μ§ λ€λ₯Έ νμ ν΄λμ€κ° μ¬μ©λ©λλ€:
- EndpointSecurityDriverClient:
com.apple.private.endpoint-security.managerκΆνμ΄ νμνλ©°, μ΄λ μμ€ν νλ‘μΈμ€endpointsecuritydλ§ λ³΄μ ν©λλ€. - EndpointSecurityExternalClient:
com.apple.developer.endpoint-security.clientκΆνμ΄ νμν©λλ€. μ΄λ μΌλ°μ μΌλ‘ Endpoint Security νλ μμν¬μ μνΈμμ©ν΄μΌ νλ νμ¬ λ³΄μ μννΈμ¨μ΄μμ μ¬μ©λ©λλ€.
Endpoint Security Extensions:**libEndpointSecurity.dylib**λ μμ€ν
νμ₯μ΄ μ»€λκ³Ό ν΅μ νλ λ° μ¬μ©νλ C λΌμ΄λΈλ¬λ¦¬μ
λλ€. μ΄ λΌμ΄λΈλ¬λ¦¬λ I/O Kit(IOKit)μ μ¬μ©νμ¬ Endpoint Security KEXTμ ν΅μ ν©λλ€.
**endpointsecurityd**λ μλν¬μΈνΈ 보μ μμ€ν
νμ₯μ κ΄λ¦¬νκ³ μμνλ λ° κ΄μ¬νλ μ£Όμ μμ€ν
λ°λͺ¬μΌλ‘, νΉν μ΄κΈ° λΆν
κ³Όμ μμ μ€μν©λλ€. Info.plist νμΌμ **NSEndpointSecurityEarlyBoot**λ‘ νμλ μμ€ν
νμ₯λ§ μ΄ μ΄κΈ° λΆν
μ²λ¦¬λ₯Ό λ°μ΅λλ€.
λ λ€λ₯Έ μμ€ν
λ°λͺ¬μΈ **sysextd**λ μμ€ν
νμ₯μ κ²μ¦νκ³ μ΄λ₯Ό μ μ ν μμ€ν
μμΉλ‘ μ΄λν©λλ€. κ·Έλ° λ€μ κ΄λ ¨ λ°λͺ¬μ νμ₯μ λ‘λνλλ‘ μμ²ν©λλ€. **SystemExtensions.framework**λ μμ€ν
νμ₯μ νμ±ννκ³ λΉνμ±ννλ μ±
μμ΄ μμ΅λλ€.
Bypassing ESF
ESFλ λ λ νμμ κ°μ§νλ €κ³ νλ 보μ λꡬμμ μ¬μ©λλ―λ‘, μ΄λ₯Ό νΌν μ μλ λ°©λ²μ λν μ 보λ ν₯λ―Έλ‘μ΅λλ€.
CVE-2021-30965
λ¬Έμ λ 보μ μ ν리μΌμ΄μ μ΄ μ 체 λμ€ν¬ μ κ·Ό κΆνμ κ°μ ΈμΌ νλ€λ κ²μ λλ€. λ°λΌμ 곡격μκ° μ΄λ₯Ό μ κ±°ν μ μλ€λ©΄ μννΈμ¨μ΄κ° μ€νλλ κ²μ λ°©μ§ν μ μμ΅λλ€:
tccutil reset All
λ λ§μ μ 보λ μ΄ μ°ν λ° κ΄λ ¨λ λ΄μ©μ λν΄ #OBTS v5.0: βThe Achilles Heel of EndpointSecurityβ - Fitzl Csaba κ°μλ₯Ό νμΈνμΈμ.
κ²°κ΅, μ΄λ **tccd**κ° κ΄λ¦¬νλ 보μ μ±μ μλ‘μ΄ κΆν **kTCCServiceEndpointSecurityClient**λ₯Ό λΆμ¬νμ¬ μμ λμμΌλ©°, μ΄λ‘ μΈν΄ tccutilμ΄ ν΄λΉ κΆνμ μ§μ°μ§ μμ μ€νμ λ°©μ§νμ§ μκ² λμμ΅λλ€.
References
- OBTS v3.0: βEndpoint Security & Insecurityβ - Scott Knight
- https://knight.sc/reverse%20engineering/2019/08/24/system-extension-internals.html
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 μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


