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 μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
Gatekeeper
Gatekeeperλ μΌλ°μ μΌλ‘ Quarantine + Gatekeeper + XProtectμ μ‘°ν©μ μλ―Ένλ©°, μ΄λ μ¬μ©μκ° μ μ¬μ μΌλ‘ μ μ± μννΈμ¨μ΄λ₯Ό μ€ννλ κ²μ λ°©μ§νλ €κ³ μλνλ 3κ°μ macOS 보μ λͺ¨λμ λλ€.
μμΈν μ 보λ λ€μμμ νμΈν μ μμ΅λλ€:
macOS Gatekeeper / Quarantine / XProtect
νλ‘μΈμ€ μ ν
MACF
SIP - μμ€ν λ¬΄κ²°μ± λ³΄νΈ
μλλ°μ€
MacOS μλλ°μ€λ μλλ°μ€ νλ‘νμ μ§μ λ νμ©λ μμ μΌλ‘ μλλ°μ€ λ΄μμ μ€νλλ μ ν리μΌμ΄μ μ μ νν©λλ€. μ΄λ μ ν리μΌμ΄μ μ΄ μμλ 리μμ€λ§ μ κ·Όνλλ‘ λ³΄μ₯νλ λ° λμμ΄ λ©λλ€.
TCC - ν¬λͺ μ±, λμ λ° μ μ΄
**TCC (ν¬λͺ μ±, λμ λ° μ μ΄)**λ 보μ νλ μμν¬μ λλ€. μ΄λ μ ν리μΌμ΄μ μ κΆνμ κ΄λ¦¬νλλ‘ μ€κ³λμμΌλ©°, νΉν λ―Όκ°ν κΈ°λ₯μ λν μ κ·Όμ κ·μ ν©λλ€. μ¬κΈ°μλ μμΉ μλΉμ€, μ°λ½μ², μ¬μ§, λ§μ΄ν¬, μΉ΄λ©λΌ, μ κ·Όμ± λ° μ 체 λμ€ν¬ μ κ·Όκ³Ό κ°μ μμκ° ν¬ν¨λ©λλ€. TCCλ μ±μ΄ μ΄λ¬ν κΈ°λ₯μ μ κ·ΌνκΈ° μν΄ λͺ μμ μΈ μ¬μ©μ λμλ₯Ό μ»μ΄μΌλ§ νλλ‘ λ³΄μ₯νμ¬ κ°μΈ λ°μ΄ν°μ λν νλΌμ΄λ²μμ μ μ΄λ₯Ό κ°νν©λλ€.
μ€ν/νκ²½ μ μ½ λ° μ λ’° μΊμ
macOSμ μ€ν μ μ½μ νλ‘μΈμ€ μμμ κ·μ νλ 보μ κΈ°λ₯μΌλ‘, λκ° νλ‘μΈμ€λ₯Ό μμν μ μλμ§, μ΄λ»κ², μ΄λμ μμν μ μλμ§λ₯Ό μ μν©λλ€. macOS Venturaμμ λμ λ μ΄ κΈ°λ₯μ μμ€ν λ°μ΄λ리λ₯Ό μ λ’° μΊμ λ΄μ μ μ½ μΉ΄ν κ³ λ¦¬λ‘ λΆλ₯ν©λλ€. λͺ¨λ μ€ν κ°λ₯ν λ°μ΄λ리λ μκΈ°, λΆλͺ¨, μ± μ μ μ½μ ν¬ν¨ν μμμ λν κ·μΉμ΄ μ€μ λμ΄ μμ΅λλ€. macOS Sonomaμμ μ 3μ μ±μ λν΄ νκ²½ μ μ½μΌλ‘ νμ₯λ μ΄ κΈ°λ₯μ νλ‘μΈμ€ μμ 쑰건μ κ·μ νμ¬ μ μ¬μ μΈ μμ€ν μ μ©μ μννλ λ° λμμ΄ λ©λλ€.
macOS Launch/Environment Constraints & Trust Cache
MRT - μ μ± μννΈμ¨μ΄ μ κ±° λꡬ
μ μ± μννΈμ¨μ΄ μ κ±° λꡬ(MRT)λ macOSμ 보μ μΈνλΌμ λ λ€λ₯Έ λΆλΆμ λλ€. μ΄λ¦μμ μ μ μλ―μ΄ MRTμ μ£Όμ κΈ°λ₯μ κ°μΌλ μμ€ν μμ μλ €μ§ μ μ± μννΈμ¨μ΄λ₯Ό μ κ±°νλ κ²μ λλ€.
Macμμ μ μ± μννΈμ¨μ΄κ° κ°μ§λλ©΄(XProtect λλ λ€λ₯Έ λ°©λ²μΌλ‘), MRTλ₯Ό μ¬μ©νμ¬ μλμΌλ‘ μ μ± μννΈμ¨μ΄λ₯Ό μ κ±°ν μ μμ΅λλ€. MRTλ λ°±κ·ΈλΌμ΄λμμ μ‘°μ©ν μλνλ©°, μΌλ°μ μΌλ‘ μμ€ν μ΄ μ λ°μ΄νΈλκ±°λ μλ‘μ΄ μ μ± μννΈμ¨μ΄ μ μκ° λ€μ΄λ‘λλ λ μ€νλ©λλ€(μ μ± μννΈμ¨μ΄λ₯Ό κ°μ§νκΈ° μν κ·μΉμ΄ λ°μ΄λ리 λ΄μ μλ κ²μΌλ‘ 보μ λλ€).
XProtectμ MRTλ λͺ¨λ macOSμ 보μ μ‘°μΉμ μΌλΆμ΄μ§λ§, μλ‘ λ€λ₯Έ κΈ°λ₯μ μνν©λλ€:
- XProtectλ μλ°© λꡬμ λλ€. μ΄λ νμΌμ΄ λ€μ΄λ‘λλ λ(νΉμ μ ν리μΌμ΄μ μ ν΅ν΄) νμΌμ κ²μ¬νκ³ , μλ €μ§ μ νμ μ μ± μννΈμ¨μ΄κ° κ°μ§λλ©΄ νμΌμ΄ μ΄λ¦¬λ κ²μ λ°©μ§νμ¬ μ μ± μννΈμ¨μ΄κ° μμ€ν μ κ°μΌλλ κ²μ λ°©μ§ν©λλ€.
- MRTλ λ°μ λꡬμ λλ€. μ΄λ μμ€ν μμ μ μ± μννΈμ¨μ΄κ° κ°μ§λ ν μλνλ©°, λ¬Έμ μ μννΈμ¨μ΄λ₯Ό μ κ±°νμ¬ μμ€ν μ μ 리νλ κ²μ λͺ©νλ‘ ν©λλ€.
MRT μ ν리μΌμ΄μ
μ **/Library/Apple/System/Library/CoreServices/MRT.app**μ μμΉν©λλ€.
λ°±κ·ΈλΌμ΄λ μμ κ΄λ¦¬
macOSλ μ΄μ λκ΅¬κ° μ μλ €μ§ μ½λ μ€ν μ§μ κΈ°μ (μ: λ‘κ·ΈμΈ νλͺ©, λ°λͺ¬ λ±)μ μ¬μ©ν λλ§λ€ μλ¦Όμ μ 곡ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ¬μ©μλ μ΄λ€ μννΈμ¨μ΄κ° μ§μλκ³ μλμ§ λ μ μ μ μμ΅λλ€.
.png)
μ΄ κΈ°λ₯μ /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementdμ μμΉν λ°λͺ¬κ³Ό /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.appμ μμΉν μμ΄μ νΈμ ν¨κ» μλν©λλ€.
**backgroundtaskmanagementd**κ° μ§μμ μΈ ν΄λμ μ€μΉλ 무μΈκ°λ₯Ό μλ λ°©λ²μ FSEventsλ₯Ό κ°μ Έμ€κ³ μ΄λ₯Ό μν νΈλ€λ¬λ₯Ό μμ±νλ κ²μ
λλ€.
λν, μ νμ΄ κ΄λ¦¬νλ μ μλ €μ§ μ ν리μΌμ΄μ
μ΄ ν¬ν¨λ plist νμΌμ΄ μμΌλ©°, μ΄λ /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plistμ μμΉν©λλ€.
[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]
Enumeration
Apple cli λꡬλ₯Ό μ¬μ©νμ¬ κ΅¬μ±λ λͺ¨λ λ°±κ·ΈλΌμ΄λ νλͺ©μ μ΄κ±°ν μ μμ΅λλ€:
# The tool will always ask for the users password
sfltool dumpbtm
λν, DumpBTMλ₯Ό μ¬μ©νμ¬ μ΄ μ 보λ₯Ό λμ΄νλ κ²λ κ°λ₯ν©λλ€.
# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM
μ΄ μ 보λ **/private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm**μ μ μ₯λλ©°, Terminalμ FDAκ° νμν©λλ€.
BTM μ‘°μνκΈ°
μλ‘μ΄ μ§μμ±μ΄ λ°κ²¬λλ©΄ ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD μ νμ μ΄λ²€νΈκ° λ°μν©λλ€. λ°λΌμ μ΄ μ΄λ²€νΈκ° μ μ‘λλ κ²μ λ°©μ§νκ±°λ μ¬μ©μμκ² κ²½κ³ νλ μμ΄μ νΈλ₯Ό λ°©μ§νλ λ°©λ²μ 곡격μκ° BTMμ _μ°ν_νλ λ° λμμ΄ λ©λλ€.
- λ°μ΄ν°λ² μ΄μ€ μ¬μ€μ : λ€μ λͺ λ Ήμ μ€ννλ©΄ λ°μ΄ν°λ² μ΄μ€κ° μ¬μ€μ λ©λλ€(κΈ°μ΄λΆν° λ€μ ꡬμΆν΄μΌ ν¨). κ·Έλ¬λ μ΄λ€ μ΄μ λ‘ μΈν΄, μ΄λ₯Ό μ€νν νμλ μμ€ν μ΄ μ¬λΆν λ λκΉμ§ μλ‘μ΄ μ§μμ±μ΄ κ²½κ³ λμ§ μμ΅λλ€.
- root κΆνμ΄ νμν©λλ€.
# Reset the database
sfltool resettbtm
- μμ΄μ νΈ μ€μ§: μλ‘μ΄ νμ§κ° λ°κ²¬λ λ μ¬μ©μμκ² μλ¦¬μ§ μλλ‘ μμ΄μ νΈμ μ€μ§ μ νΈλ₯Ό λ³΄λΌ μ μμ΅λλ€.
# Get PID
pgrep BackgroundTaskManagementAgent
1011
# Stop it
kill -SIGSTOP 1011
# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
- λ²κ·Έ: μ§μμ±μ μμ±ν νλ‘μΈμ€κ° κ·Έ μ§νμ λΉ λ₯΄κ² μ‘΄μ¬νλ©΄, λ°λͺ¬μ κ·Έκ²μ λν μ 보λ₯Ό μ»μΌλ €κ³ μλνκ³ , μ€ν¨νλ©°, μλ‘μ΄ κ²μ΄ μ§μλκ³ μλ€λ μ΄λ²€νΈλ₯Ό λ³΄λΌ μ μμ΅λλ€.
BTMμ λν μ°Έκ³ μλ£ λ° μΆκ° μ 보:
- https://youtu.be/9hjUmT031tc?t=26481
- https://www.patreon.com/posts/new-developer-77420730?l=fr
- https://support.apple.com/en-gb/guide/deployment/depdca572563/web
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μ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


