mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/macos-hardening/macos-security-and-privilege-escalation
This commit is contained in:
		
							parent
							
								
									39724ff613
								
							
						
					
					
						commit
						dcc5dc06b8
					
				@ -288,7 +288,6 @@
 | 
			
		||||
  - [PsExec/Winexec/ScExec](windows-hardening/lateral-movement/psexec-and-winexec.md)
 | 
			
		||||
  - [RDPexec](windows-hardening/lateral-movement/rdpexec.md)
 | 
			
		||||
  - [SCMexec](windows-hardening/lateral-movement/scmexec.md)
 | 
			
		||||
  - [SmbExec/ScExec](windows-hardening/lateral-movement/smbexec.md)
 | 
			
		||||
  - [WinRM](windows-hardening/lateral-movement/winrm.md)
 | 
			
		||||
  - [WmiExec](windows-hardening/lateral-movement/wmiexec.md)
 | 
			
		||||
- [Pivoting to the Cloud$$external:https://cloud.hacktricks.wiki/en/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/index.html$$]()
 | 
			
		||||
 | 
			
		||||
@ -8,7 +8,7 @@
 | 
			
		||||
 | 
			
		||||
Gebruikers teëkom TCC wanneer toepassings toegang tot beskermde funksies versoek. Dit is sigbaar deur 'n prompt wat gebruikers toelaat om **toegang goed te keur of te weier**. Verder akkommodeer TCC direkte gebruikers aksies, soos **slepen en laat val van lêers in 'n toepassing**, om toegang tot spesifieke lêers te verleen, wat verseker dat toepassings slegs toegang het tot wat eksplisiet toegelaat word.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
**TCC** word hanteer deur die **daemon** geleë in `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` en geconfigureer in `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (wat die mach diens `com.apple.tccd.system` registreer).
 | 
			
		||||
 | 
			
		||||
@ -29,14 +29,14 @@ Die toestemmings/ontkennings word dan in sommige TCC-databasisse gestoor:
 | 
			
		||||
- Die stelselswye databasis in **`/Library/Application Support/com.apple.TCC/TCC.db`**.
 | 
			
		||||
- Hierdie databasis is **SIP beskerm**, so slegs 'n SIP omseiling kan daarin skryf.
 | 
			
		||||
- Die gebruiker TCC databasis **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** vir per-gebruiker voorkeure.
 | 
			
		||||
- Hierdie databasis is beskerm, so slegs prosesse met hoë TCC bevoegdhede soos Volledige Skyf Toegang kan daarin skryf (maar dit is nie deur SIP beskerm nie).
 | 
			
		||||
- Hierdie databasis is beskerm, so slegs prosesse met hoë TCC voorregte soos Volledige Skyf Toegang kan daarin skryf (maar dit is nie deur SIP beskerm nie).
 | 
			
		||||
 | 
			
		||||
> [!WARNING]
 | 
			
		||||
> Die vorige databasisse is ook **TCC beskerm vir lees toegang**. So jy **sal nie in staat wees om** jou gewone gebruiker TCC databasis te lees tensy dit van 'n TCC bevoegde proses is.
 | 
			
		||||
> Die vorige databasisse is ook **TCC beskerm vir lees toegang**. So jy **sal nie in staat wees om te lees** jou gewone gebruiker TCC databasis tensy dit van 'n TCC voorregte proses is.
 | 
			
		||||
>
 | 
			
		||||
> Onthou egter dat 'n proses met hierdie hoë bevoegdhede (soos **FDA** of **`kTCCServiceEndpointSecurityClient`**) in staat sal wees om in die gebruikers TCC databasis te skryf.
 | 
			
		||||
> Onthou egter dat 'n proses met hierdie hoë voorregte (soos **FDA** of **`kTCCServiceEndpointSecurityClient`**) in staat sal wees om in die gebruikers TCC databasis te skryf.
 | 
			
		||||
 | 
			
		||||
- Daar is 'n **derde** TCC databasis in **`/var/db/locationd/clients.plist`** om kliënte aan te dui wat toegelaat word om **toegang tot liggingdienste** te hê.
 | 
			
		||||
- Daar is 'n **derde** TCC databasis in **`/var/db/locationd/clients.plist`** om kliënte aan te dui wat toegelaat word om **toegang tot ligging dienste** te hê.
 | 
			
		||||
- Die SIP beskermde lêer **`/Users/carlospolop/Downloads/REG.db`** (ook beskerm teen lees toegang met TCC), bevat die **ligging** van al die **geldige TCC databasisse**.
 | 
			
		||||
- Die SIP beskermde lêer **`/Users/carlospolop/Downloads/MDMOverrides.plist`** (ook beskerm teen lees toegang met TCC), bevat meer TCC toegewyde toestemmings.
 | 
			
		||||
- Die SIP beskermde lêer **`/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist`** (maar leesbaar deur enige iemand) is 'n toelaat lys van toepassings wat 'n TCC uitsondering vereis.
 | 
			
		||||
@ -174,7 +174,7 @@ echo "X'$REQ_HEX'"
 | 
			
		||||
Jy kan ook **reeds gegee toestemmings** aan toepassings in `System Preferences --> Security & Privacy --> Privacy --> Files and Folders` nagaan.
 | 
			
		||||
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Gebruikers _kan_ **reëls verwyder of navraag doen** met **`tccutil`**.
 | 
			
		||||
> Gebruikers _kan_ **reëls verwyder of navraag doen** met **`tccutil`** .
 | 
			
		||||
 | 
			
		||||
#### Stel TCC-toestemmings terug
 | 
			
		||||
```bash
 | 
			
		||||
@ -199,14 +199,14 @@ csreq -t -r /tmp/telegram_csreq.bin
 | 
			
		||||
(anchor apple generic and certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or anchor apple generic and certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "6N38VWS5BX") and identifier "ru.keepcoder.Telegram"
 | 
			
		||||
```
 | 
			
		||||
> [!WARNING]
 | 
			
		||||
> Daarom sal ander toepassings wat dieselfde naam en bundel-ID gebruik nie toegang hê tot die toestemmings wat aan ander toepassings gegee is nie.
 | 
			
		||||
> Daarom sal ander toepassings wat dieselfde naam en bundel-ID gebruik nie in staat wees om toegang te verkry tot die toestemmings wat aan ander toepassings gegee is nie.
 | 
			
		||||
 | 
			
		||||
### Regte & TCC Toestemmings
 | 
			
		||||
 | 
			
		||||
Toepassings **hoef nie net** te **versoek** en het **toegang gegee** tot sommige hulpbronne nie, hulle moet ook **die relevante regte hê**.\
 | 
			
		||||
Byvoorbeeld **Telegram** het die reg `com.apple.security.device.camera` om **toegang tot die kamera** te versoek. 'n **toepassing** wat **nie** hierdie **reg het nie, sal nie in staat wees** om toegang tot die kamera te verkry (en die gebruiker sal nie eens vir die toestemmings gevra word nie).
 | 
			
		||||
Byvoorbeeld **Telegram** het die reg `com.apple.security.device.camera` om **toegang tot die kamera** te versoek. 'n **toepassing** wat **nie** hierdie **reg het nie, sal nie in staat wees** om toegang tot die kamera te verkry (en die gebruiker sal selfs nie vir die toestemmings gevra word nie).
 | 
			
		||||
 | 
			
		||||
However, vir toepassings om **toegang** tot **sekere gebruikersmappies** te hê, soos `~/Desktop`, `~/Downloads` en `~/Documents`, hoef hulle **nie** enige spesifieke **regte te hê nie.** Die stelsel sal toegang deursigtig hanteer en **die gebruiker** soos nodig vra.
 | 
			
		||||
Echter, om toegang tot **sekere gebruikersmappies** te **verkry**, soos `~/Desktop`, `~/Downloads` en `~/Documents`, hoef hulle **nie** enige spesifieke **regte te hê nie.** Die stelsel sal toegang deursigtig hanteer en **die gebruiker** soos nodig vra.
 | 
			
		||||
 | 
			
		||||
Apple se toepassings **sal nie pop-ups genereer** nie. Hulle bevat **vooraf-gegewe regte** in hul **regte** lys, wat beteken hulle sal **nooit 'n pop-up genereer**, **nog** sal hulle in enige van die **TCC databasisse** verskyn. Byvoorbeeld:
 | 
			
		||||
```bash
 | 
			
		||||
@ -222,7 +222,7 @@ codesign -dv --entitlements :- /System/Applications/Calendar.app
 | 
			
		||||
Dit sal verhoed dat Kalender die gebruiker vra om toegang tot herinneringe, kalender en die adresboek te verkry.
 | 
			
		||||
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Behalwe vir 'n paar amptelike dokumentasie oor regte, is dit ook moontlik om onoffisiële **interessante inligting oor regte in** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl) te vind.
 | 
			
		||||
> Behalwe vir 'n paar amptelike dokumentasie oor regte, is dit ook moontlik om onoffisiële **interessante inligting oor regte te vind in** [**https://newosxbook.com/ent.jl**](https://newosxbook.com/ent.jl)
 | 
			
		||||
 | 
			
		||||
Sommige TCC-toestemmings is: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePhotos... Daar is geen openbare lys wat al hulle definieer nie, maar jy kan hierdie [**lys van bekende**](https://www.rainforestqa.com/blog/macos-tcc-db-deep-dive#service) nagaan.
 | 
			
		||||
 | 
			
		||||
@ -232,7 +232,7 @@ Sommige TCC-toestemmings is: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCSe
 | 
			
		||||
- $HOME/.ssh, $HOME/.aws, ens.
 | 
			
		||||
- /tmp
 | 
			
		||||
 | 
			
		||||
### Gebruiker Intentie / com.apple.macl
 | 
			
		||||
### Gebruiker se Intent / com.apple.macl
 | 
			
		||||
 | 
			
		||||
Soos vroeër genoem, is dit moontlik om **toegang aan 'n App tot 'n lêer te verleen deur dit te sleep en te laat val**. Hierdie toegang sal nie in enige TCC-databasis gespesifiseer word nie, maar as 'n **verlengde** **attribuut van die lêer**. Hierdie attribuut sal die **UUID** van die toegelate app **stoor**:
 | 
			
		||||
```bash
 | 
			
		||||
@ -254,13 +254,13 @@ uuid 769FD8F1-90E0-3206-808C-A8947BEBD6C3
 | 
			
		||||
>
 | 
			
		||||
> Let ook daarop dat as jy 'n lêer wat die UUID van 'n toepassing op jou rekenaar toelaat, na 'n ander rekenaar skuif, omdat dieselfde toepassing verskillende UIDs sal hê, dit nie toegang aan daardie toepassing sal verleen nie.
 | 
			
		||||
 | 
			
		||||
Die uitgebreide attribuut `com.apple.macl` **kan nie verwyder** word nie soos ander uitgebreide attribuut omdat dit **beskerm word deur SIP**. Dit is egter moontlik om dit te deaktiveer **deur die lêer te zip**, **dit te verwyder** en **dit weer te unzip** soos [**in hierdie pos verduidelik**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/).
 | 
			
		||||
Die uitgebreide attribuut `com.apple.macl` **kan nie verwyder** word soos ander uitgebreide attribuut nie omdat dit **beskerm word deur SIP**. Dit is egter moontlik om dit te deaktiveer **deur die lêer te zip, dit te verwyder en dit weer uit te pak**, soos [**in hierdie pos verduidelik**](https://www.brunerd.com/blog/2020/01/07/track-and-tackle-com-apple-macl/).
 | 
			
		||||
 | 
			
		||||
## TCC Privesc & Bypasses
 | 
			
		||||
 | 
			
		||||
### Voeg in by TCC
 | 
			
		||||
 | 
			
		||||
As jy op 'n stadium skryftoegang oor 'n TCC-databasis kan kry, kan jy iets soos die volgende gebruik om 'n inskrywing toe te voeg (verwyder die kommentaar):
 | 
			
		||||
As jy op 'n stadium skrywe toegang tot 'n TCC-databasis kan kry, kan jy iets soos die volgende gebruik om 'n inskrywing toe te voeg (verwyder die kommentaar):
 | 
			
		||||
 | 
			
		||||
<details>
 | 
			
		||||
 | 
			
		||||
@ -308,7 +308,7 @@ strftime('%s', 'now') -- last_reminded with default current timestamp
 | 
			
		||||
 | 
			
		||||
### TCC Payloads
 | 
			
		||||
 | 
			
		||||
As jy daarin geslaag het om in 'n app met 'n paar TCC-toestemmings te kom, kyk na die volgende bladsy met TCC payloads om dit te misbruik:
 | 
			
		||||
As jy daarin geslaag het om in 'n app met sommige TCC-toestemmings te kom, kyk die volgende bladsy met TCC payloads om dit te misbruik:
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
macos-tcc-payloads.md
 | 
			
		||||
@ -361,7 +361,7 @@ EOD
 | 
			
		||||
Jy kan dit misbruik om **jou eie gebruiker TCC databasis te skryf**.
 | 
			
		||||
 | 
			
		||||
> [!WARNING]
 | 
			
		||||
> Met hierdie toestemming sal jy in staat wees om **Finder te vra om toegang tot TCC-beperkte vouers** te verkry en jou die lêers te gee, maar sover ek weet, **sal jy nie in staat wees om Finder te laat uitvoer van willekeurige kode** om sy FDA-toegang ten volle te misbruik nie.
 | 
			
		||||
> Met hierdie toestemming sal jy in staat wees om **Finder te vra om toegang tot TCC-beperkte vouers** te verkry en jou die lêers te gee, maar sover ek weet, **sal jy nie in staat wees om Finder te laat uitvoer nie** willekeurige kode om sy FDA-toegang ten volle te misbruik.
 | 
			
		||||
>
 | 
			
		||||
> Daarom sal jy nie in staat wees om die volle FDA vermoëns te misbruik nie.
 | 
			
		||||
 | 
			
		||||
@ -370,7 +370,7 @@ Dit is die TCC-prompt om outomatiseringsprivileges oor Finder te verkry:
 | 
			
		||||
<figure><img src="../../../../images/image (27).png" alt="" width="244"><figcaption></figcaption></figure>
 | 
			
		||||
 | 
			
		||||
> [!CAUTION]
 | 
			
		||||
> Let daarop dat omdat die **Automator** app die TCC-toestemming **`kTCCServiceAppleEvents`** het, dit **enige app** kan **beheer**, soos Finder. So deur die toestemming om Automator te beheer, kan jy ook die **Finder** met 'n kode soos die een hieronder beheer:
 | 
			
		||||
> Let daarop dat omdat die **Automator** app die TCC-toestemming **`kTCCServiceAppleEvents`** het, dit **enige app kan beheer**, soos Finder. So, as jy die toestemming het om Automator te beheer, kan jy ook die **Finder** met 'n kode soos die een hieronder beheer:
 | 
			
		||||
 | 
			
		||||
<details>
 | 
			
		||||
 | 
			
		||||
@ -400,7 +400,7 @@ Die selfde gebeur met die **Script Editor app,** dit kan Finder beheer, maar met
 | 
			
		||||
 | 
			
		||||
### Outomatisering (SE) na sommige TCC
 | 
			
		||||
 | 
			
		||||
**Sisteemgebeurtenisse kan Folder Actions skep, en Folder actions kan toegang tot sommige TCC-mappe hê** (Bureaublad, Dokumente & Aflaaie), so 'n script soos die volgende kan gebruik word om hierdie gedrag te misbruik:
 | 
			
		||||
**Sisteemgebeurtenisse kan Folder Actions skep, en Folder actions kan toegang tot sommige TCC-gidse hê** (Bureaublad, Dokumente & Aflaaie), so 'n script soos die volgende kan gebruik word om hierdie gedrag te misbruik:
 | 
			
		||||
```bash
 | 
			
		||||
# Create script to execute with the action
 | 
			
		||||
cat > "/tmp/script.js" <<EOD
 | 
			
		||||
@ -506,7 +506,7 @@ As jy **`kTCCServiceEndpointSecurityClient`** het, het jy FDA. Einde.
 | 
			
		||||
 | 
			
		||||
### Gebruiker TCC DB na FDA
 | 
			
		||||
 | 
			
		||||
Deur **skryftoestemmings** oor die **gebruiker TCC** databasis te verkry, kan jy **nie** vir jouself **`FDA`** toestemmings gee nie, slegs diegene wat in die stelseldatabasis woon, kan dit toeken.
 | 
			
		||||
Deur **skryftoestemmings** oor die **gebruiker TCC** databasis te verkry kan jy **nie** vir jouself **`FDA`** toestemmings gee nie, slegs diegene wat in die stelseldatabasis woon kan dit toeken.
 | 
			
		||||
 | 
			
		||||
Maar jy kan vir jouself **`Outomatisering regte na Finder`** gee, en die vorige tegniek misbruik om na FDA\* te eskaleer.
 | 
			
		||||
 | 
			
		||||
@ -514,18 +514,18 @@ Maar jy kan vir jouself **`Outomatisering regte na Finder`** gee, en die vorige
 | 
			
		||||
 | 
			
		||||
**Volledige Skyf Toegang** is TCC se naam is **`kTCCServiceSystemPolicyAllFiles`**
 | 
			
		||||
 | 
			
		||||
Ek dink nie dit is 'n werklike privesc nie, maar net ingeval jy dit nuttig vind: As jy 'n program met FDA beheer, kan jy **die gebruikers TCC databasis wysig en vir jouself enige toegang gee**. Dit kan nuttig wees as 'n volhardingstegniek ingeval jy jou FDA toestemmings mag verloor.
 | 
			
		||||
Ek dink nie dit is 'n werklike privesc nie, maar net ingeval jy dit nuttig vind: As jy 'n program met FDA beheer kan jy **die gebruikers TCC databasis verander en vir jouself enige toegang gee**. Dit kan nuttig wees as 'n volhardingstegniek ingeval jy jou FDA toestemmings mag verloor.
 | 
			
		||||
 | 
			
		||||
### **SIP Omseiling na TCC Omseiling**
 | 
			
		||||
 | 
			
		||||
Die stelsel **TCC databasis** is beskerm deur **SIP**, daarom kan slegs prosesse met die **aangegewe regte dit wysig**. Daarom, as 'n aanvaller 'n **SIP omseiling** oor 'n **lêer** vind (in staat om 'n lêer wat deur SIP beperk is te wysig), sal hy in staat wees om:
 | 
			
		||||
Die stelsel **TCC databasis** is beskerm deur **SIP**, daarom kan slegs prosesse met die **aangegewe regte dit verander**. Daarom, as 'n aanvaller 'n **SIP omseiling** oor 'n **lêer** vind (in staat om 'n lêer wat deur SIP beperk is te verander), sal hy in staat wees om:
 | 
			
		||||
 | 
			
		||||
- **Die beskerming** van 'n TCC databasis te verwyder, en vir homself al die TCC toestemmings te gee. Hy kan enige van hierdie lêers misbruik byvoorbeeld:
 | 
			
		||||
- Die TCC stelseldatabasis
 | 
			
		||||
- REG.db
 | 
			
		||||
- MDMOverrides.plist
 | 
			
		||||
 | 
			
		||||
Daar is egter 'n ander opsie om hierdie **SIP omseiling te misbruik om TCC te omseil**, die lêer `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` is 'n toelaatlys van toepassings wat 'n TCC uitsondering vereis. Daarom, as 'n aanvaller die **SIP beskerming** van hierdie lêer kan **verwyder** en sy **eie toepassing** kan byvoeg, sal die toepassing in staat wees om TCC te omseil.\
 | 
			
		||||
Daar is egter 'n ander opsie om hierdie **SIP omseiling te misbruik om TCC te omseil**, die lêer `/Library/Apple/Library/Bundles/TCC_Compatibility.bundle/Contents/Resources/AllowApplicationsList.plist` is 'n toelaatlys van toepassings wat 'n TCC uitsondering vereis. Daarom, as 'n aanvaller **die SIP beskerming** van hierdie lêer kan verwyder en sy **eie toepassing** kan byvoeg, sal die toepassing in staat wees om TCC te omseil.\
 | 
			
		||||
Byvoorbeeld om terminal toe te voeg:
 | 
			
		||||
```bash
 | 
			
		||||
# Get needed info
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user