hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections
2024-05-05 22:31:04 +00:00
..
macos-fs-tricks Translated ['binary-exploitation/common-binary-protections-and-bypasses/ 2024-04-23 19:37:29 +00:00
macos-sandbox Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00
macos-tcc Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00
macos-dangerous-entitlements.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00
macos-gatekeeper.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00
macos-launch-environment-constraints.md Translated to Afrikaans 2024-02-11 02:07:06 +00:00
macos-sip.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/aw2 2024-05-05 22:31:04 +00:00

macOS Sekuriteitsbeskerming

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Toegangbeheerder

Toegangbeheerder word gewoonlik gebruik om te verwys na die kombinasie van Kwarantyn + Toegangbeheerder + XProtect, 3 macOS-sekuriteitsmodules wat sal probeer om gebruikers te keer om potensieel skadelike sagteware wat afgelaai is, uit te voer.

Meer inligting in:

{% content-ref url="macos-gatekeeper.md" %} macos-gatekeeper.md {% endcontent-ref %}

Proseshanterings

SIP - Sisteemintegriteitsbeskerming

{% content-ref url="macos-sip.md" %} macos-sip.md {% endcontent-ref %}

Sandboks

MacOS Sandboks beperk toepassings wat binne die sandboks hardloop tot die toegelate aksies wat in die Sandboksprofiel gespesifiseer is waarmee die toepassing hardloop. Dit help om te verseker dat die toepassing slegs verwagte hulpbronne sal benader.

{% content-ref url="macos-sandbox/" %} macos-sandbox {% endcontent-ref %}

TCC - Deursigtigheid, Toestemming en Beheer

TCC (Deursigtigheid, Toestemming en Beheer) is 'n sekuriteitsraamwerk. Dit is ontwerp om die toestemmings van toepassings te bestuur, spesifiek deur hul toegang tot sensitiewe funksies te reguleer. Dit sluit elemente soos liggingdiens, kontakte, foto's, mikrofoon, kamera, toeganklikheid en volle skyftoegang in. TCC verseker dat programme hierdie funksies slegs kan benader nadat eksplisiete gebruikerstoestemming verkry is, wat privaatheid versterk en beheer oor persoonlike data bied.

{% content-ref url="macos-tcc/" %} macos-tcc {% endcontent-ref %}

Lancering/Omgewingsbeperkings & Vertrouenskas

Lanceringsbeperkings in macOS is 'n sekuriteitskenmerk om prosesinisiëring te reguleer deur te definieer wie 'n proses kan begin, hoe, en van waar. Ingevoer in macOS Ventura, kategoriseer hulle stelselbinêres in beperkingskategorieë binne 'n vertrouenskas. Elke uitvoerbare binêre het vasgestelde reëls vir sy aanvang, insluitend self, ouer, en verantwoordelike beperkings. Uitgebrei na derdeparty-apps as Omgewing Beperkings in macOS Sonoma, help hierdie kenmerke om potensiële stelseluitbuitings te verminder deur proseslanceringsvoorwaardes te regeer.

{% content-ref url="macos-launch-environment-constraints.md" %} macos-launch-environment-constraints.md {% endcontent-ref %}

MRT - Malwareverwyderingswerktuig

Die Malwareverwyderingswerktuig (MRT) is 'n ander deel van macOS se sekuriteitsinfrastruktuur. Soos die naam aandui, is MRT se hooffunksie om bekende malware van geïnfekteerde stelsels te verwyder.

Sodra malware op 'n Mac opgespoor word (of deur XProtect of op 'n ander manier), kan MRT gebruik word om die malware outomaties te verwyder. MRT werk stil in die agtergrond en hardloop tipies wanneer die stelsel opgedateer word of wanneer 'n nuwe malware-definisie afgelaai word (dit lyk asof die reëls wat MRT moet gebruik om malware op te spoor, binne die binêre lê).

Terwyl beide XProtect en MRT deel is van macOS se sekuriteitsmaatreëls, verrig hulle verskillende funksies:

  • XProtect is 'n voorkomende werktuig. Dit kontroleer lêers terwyl hulle afgelaai word (via sekere toepassings), en as dit enige bekende tipes malware opspoor, voorkom dit dat die lêer oopgemaak word, en voorkom dus dat die malware jou stelsel in die eerste plek infekteer.
  • MRT daarenteen is 'n reaktiewe werktuig. Dit werk nadat malware op 'n stelsel opgespoor is, met die doel om die oortredende sagteware te verwyder om die stelsel skoon te maak.

Die MRT-toepassing is geleë in /Library/Apple/System/Library/CoreServices/MRT.app

Agtergrondtakebestuur

macOS waarsku nou **elke keer as 'n werktuig 'n bekende tegniek gebruik om kode-uitvoering vol te hou (soos Aanmeldingsitems, Daemons...), sodat die gebruiker beter weet watter sagteware volhou.

Dit hardloop met 'n daemon geleë in /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd en die agent in /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app

Die manier waarop backgroundtaskmanagementd weet dat iets in 'n volgehoue vouer geïnstalleer is, is deur die FSEvents te kry en sommige hanteraars daarvoor te skep.

Daarbenewens is daar 'n plist-lêer wat bekende toepassings bevat wat gereeld volhou wat deur Apple onderhou word en geleë is in: /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"
}
[...]

Opsomming

Dit is moontlik om alle geconfigureerde agtergronditems op te som met die Apple-opdraggereelwerktuig:

# The tool will always ask for the users password
sfltool dumpbtm

Boonop, dit is ook moontlik om hierdie inligting te lys met DumpBTM.

# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

Hierdie inligting word gestoor in /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm en die Terminal benodig FDA.

Mors met BTM

Wanneer 'n nuwe volharding gevind word, 'n gebeurtenis van die tipe ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD. Enige manier om hierdie gebeurtenis te verhoed om gestuur te word of die agent om die gebruiker te waarsku sal 'n aanvaller help om die BTM te omseil.

  • Herstel die databasis: Deur die volgende bevel uit te voer, sal die databasis herstel word (dit behoort van die grond af herbou te word), maar, om een of ander rede, na die uitvoering hiervan, sal geen nuwe volharding gewaarsku word totdat die stelsel herlaai word.
  • root is vereis.
# Reset the database
sfltool resettbtm
  • Stop die Agente: Dit is moontlik om 'n stopsein na die agente te stuur sodat dit die gebruiker nie sal waarsku nie wanneer nuwe opsporings gevind word.
# 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
  • Fout: As die proses wat die volharding geskep het vinnig daarna bestaan, sal die daimon probeer om inligting daaroor te kry, misluk, en nie in staat wees om die gebeurtenis aan te dui dat 'n nuwe ding volhard nie.

Verwysings en meer inligting oor BTM:

Leer AWS hak vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: