apiVersion: v1
kind: Pod
@@ -44,37 +44,37 @@ securityContext:
command: ["sh", "-c", "while true; do sleep 1000; done"]
-Međutim, čak i ako je fajl sistem montiran kao samo za čitanje, **`/dev/shm`** će i dalje biti upisiv, tako da nije tačno da ne možemo ništa pisati na disk. Međutim, ovaj folder će biti **montiran sa zaštitom bez izvršavanja**, pa ako preuzmete binarni fajl ovde, **nećete moći da ga izvršite**.
+Međutim, čak i ako je fajl sistem montiran kao ro, **`/dev/shm`** će i dalje biti upisiv, tako da nije tačno da ne možemo pisati ništa na disk. Međutim, ovaj folder će biti **montiran sa zaštitom bez izvršavanja**, pa ako preuzmete binarni fajl ovde, **nećete moći da ga izvršite**.
{% hint style="warning" %}
-Sa perspektive crvenog tima, ovo otežava **preuzimanje i izvršavanje** binarnih fajlova koji već nisu u sistemu (kao što su backdoor-ovi ili enumeratori poput `kubectl`).
+Sa perspektive crvenog tima, ovo otežava **preuzimanje i izvršavanje** binarnih fajlova koji nisu već prisutni u sistemu (kao što su backdoor-ovi ili enumeratori poput `kubectl`).
{% endhint %}
-## Najlakše zaobilaženje: Skripte
+## Najlakši način zaobilaženja: Skripte
Imajte na umu da sam spomenuo binarne fajlove, možete **izvršiti bilo koju skriptu** sve dok je interpretator unutar mašine, poput **shell skripte** ako je `sh` prisutan ili **python skripte** ako je instaliran `python`.
Međutim, ovo nije dovoljno da biste izvršili vaš binarni backdoor ili druge binarne alate koje možda treba pokrenuti.
-## Zaobilazak memorije
+## Bypass memorije
-Ako želite da izvršite binarni fajl, ali fajl sistem to ne dozvoljava, najbolji način je da to uradite **iz memorije**, jer se **zaštite ne primenjuju tamo**.
+Ako želite da izvršite binarni fajl, ali fajl sistem to ne dozvoljava, najbolji način je **izvršiti ga iz memorije**, jer se **zaštite ne primenjuju tamo**.
-### FD + zaobilazak exec syscall-a
+### FD + exec syscall bypass
-Ako imate moćne skriptne motore unutar mašine, poput **Python-a**, **Perl-a** ili **Ruby-ja**, možete preuzeti binarni fajl za izvršavanje iz memorije, sačuvati ga u deskriptoru fajla u memoriji (`create_memfd` syscall), što neće biti zaštićeno tim zaštitama, a zatim pozvati **`exec` syscall** navodeći **fd kao fajl za izvršavanje**.
+Ako imate moćne skriptne motore unutar mašine, poput **Python-a**, **Perla** ili **Ruby-ja**, možete preuzeti binarni fajl za izvršavanje iz memorije, sačuvati ga u deskriptoru fajla u memoriji (`create_memfd` syscall), što neće biti zaštićeno tim zaštitama, a zatim pozvati **`exec` syscall** navodeći **fd kao fajl za izvršavanje**.
-Za ovo možete lako koristiti projekat [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec). Možete mu proslediti binarni fajl i on će generisati skriptu na naznačenom jeziku sa **binarnim fajlom kompresovanim i b64 enkodiranim** sa instrukcijama za **dekodiranje i dekompresovanje** u **fd** kreiran pozivom `create_memfd` syscall-a i poziv **exec** syscall-a za pokretanje.
+Za ovo možete lako koristiti projekat [**fileless-elf-exec**](https://github.com/nnsee/fileless-elf-exec). Možete mu proslediti binarni fajl i on će generisati skriptu na naznačenom jeziku sa **binarnim fajlom kompresovanim i b64 enkodiranim** sa instrukcijama za **dekodiranje i dekompresovanje** u **fd** kreiran pozivom `create_memfd` syscall i poziv **exec** syscall-a za pokretanje.
{% hint style="warning" %}
-Ovo ne funkcioniše u drugim skriptnim jezicima poput PHP-a ili Node-a jer nemaju **podrazumevan način pozivanja sirovih syscalls** iz skripte, tako da nije moguće pozvati `create_memfd` da kreirate **memorijski fd** za čuvanje binarnog fajla.
+Ovo ne funkcioniše u drugim skriptnim jezicima poput PHP-a ili Node-a jer nemaju **podrazumevan način pozivanja sirovih syscalls** iz skripte, pa nije moguće pozvati `create_memfd` da kreirate **memorijski fd** za čuvanje binarnog fajla.
Osim toga, kreiranje **regularnog fd** sa fajlom u `/dev/shm` neće raditi, jer vam neće biti dozvoljeno da ga pokrenete zbog primene **zaštite bez izvršavanja**.
{% endhint %}
### DDexec / EverythingExec
-[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) je tehnika koja vam omogućava da **modifikujete memoriju vašeg sopstvenog procesa** tako što ćete prepisati njegov **`/proc/self/mem`**.
+[**DDexec / EverythingExec**](https://github.com/arget13/DDexec) je tehnika koja vam omogućava da **modifikujete memoriju vašeg sopstvenog procesa** tako što ćete prebrisati njegov **`/proc/self/mem`**.
Stoga, **kontrolišući asemblerski kod** koji se izvršava od strane procesa, možete napisati **shellcode** i "mutirati" proces da **izvrši bilo koji proizvoljni kod**.
@@ -101,7 +101,7 @@ Možete pronaći primer kako koristiti **memexec za izvršavanje binarnih fajlov
Sa sličnim ciljem kao DDexec, tehnika [**memdlopen**](https://github.com/arget13/memdlopen) omogućava **jednostavniji način učitavanja binarnih fajlova** u memoriju kako bi ih kasnije izvršili. To bi čak moglo omogućiti učitavanje binarnih fajlova sa zavisnostima.
-## Bypassovanje Distroless
+## Bypass Distroless
### Šta je distroless
@@ -117,7 +117,7 @@ U distroless kontejneru možda **nećete čak ni pronaći `sh` ili `bash`** da b
Stoga, **nećete** moći dobiti **reverse shell** ili **enumerisati** sistem kao što obično radite.
{% endhint %}
-Međutim, ako kompromitovani kontejner pokreće na primer flask veb, tada je instaliran python, i stoga možete dobiti **Python reverse shell**. Ako pokreće node, možete dobiti Node rev šel, i isto važi za većinu bilo koje **skripting jezike**.
+Međutim, ako kompromitovani kontejner pokreće na primer flask veb, tada je instaliran python, i stoga možete dobiti **Python reverse shell**. Ako pokreće node, možete dobiti Node rev shell, i isto važi za većinu bilo koje **skripting jezike**.
{% hint style="success" %}
Korišćenjem skriptnog jezika možete **enumerisati sistem** koristeći mogućnosti jezika.
@@ -129,9 +129,9 @@ Ako ne postoje **zaštite `read-only/no-exec`** možete zloupotrebiti svoj rever
Međutim, u ovakvim kontejnerima ove zaštite obično postoje, ali možete koristiti **prethodne tehnike izvršavanja u memoriji da ih zaobiđete**.
{% endhint %}
-Možete pronaći **primere** kako **iskoristiti neke RCE ranjivosti** da biste dobili **reverse shell-ove skriptnih jezika** i izvršili binarne fajlove iz memorije na [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
+Možete pronaći **primere** kako **iskoristiti neke RCE ranjivosti** da biste dobili **reverse shell-ove skripting jezika** i izvršili binarne fajlove iz memorije na [**https://github.com/carlospolop/DistrolessRCE**](https://github.com/carlospolop/DistrolessRCE).
-
+
Ako ste zainteresovani za **hakersku karijeru** i hakovanje neuhvatljivog - **zapošljavamo!** (_potrebno je tečno poznavanje poljskog jezika u pisanju i govoru_).
@@ -143,7 +143,7 @@ Ako ste zainteresovani za **hakersku karijeru** i hakovanje neuhvatljivog - **za
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite videti svoju **kompaniju reklamiranu u HackTricks-u** ili **preuzeti HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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 **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
diff --git a/linux-hardening/privilege-escalation/docker-security/README.md b/linux-hardening/privilege-escalation/docker-security/README.md
index bc86ac38f..6d2b912c1 100644
--- a/linux-hardening/privilege-escalation/docker-security/README.md
+++ b/linux-hardening/privilege-escalation/docker-security/README.md
@@ -6,15 +6,15 @@
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](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)
+* 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.
-
+
\
Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
@@ -46,11 +46,11 @@ Sertifikati se koriste za potvrdu identiteta servera. Za detaljne primere oba me
### Bezbednost slika kontejnera
-Slike kontejnera mogu se čuvati u privatnim ili javnim repozitorijumima. Docker nudi nekoliko opcija za skladištenje slika kontejnera:
+Slike kontejnera mogu se čuvati u privatnim ili javnim repozitorijumima. Docker nudi nekoliko opcija za čuvanje slika kontejnera:
* [**Docker Hub**](https://hub.docker.com): Javna usluga registra od strane Dockera.
* [**Docker Registry**](https://github.com/docker/distribution): Projekat otvorenog koda koji korisnicima omogućava da hostuju svoj sopstveni registar.
-* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Komercijalni registar Dockera koji nudi autentifikaciju korisnika zasnovanu na ulogama i integraciju sa LDAP direktorijumskim servisima.
+* [**Docker Trusted Registry**](https://www.docker.com/docker-trusted-registry): Komercijalna ponuda Dockera, sa autentifikacijom korisnika zasnovanom na ulogama i integracijom sa LDAP direktorijumskim servisima.
### Skeniranje slika
@@ -60,7 +60,7 @@ Za više [**informacija pročitajte ovo**](https://docs.docker.com/engine/scan/)
* **`docker scan`**
-Komanda **`docker scan`** omogućava vam skeniranje postojećih Docker slika koristeći ime ili ID slike. Na primer, pokrenite sledeću komandu da skenirate sliku hello-world:
+Komanda **`docker scan`** omogućava skeniranje postojećih Docker slika korišćenjem imena ili ID slike. Na primer, pokrenite sledeću komandu da skenirate sliku hello-world:
```bash
docker scan hello-world
@@ -94,9 +94,9 @@ Potpisivanje Docker slike osigurava sigurnost i integritet slika korišćenih u
- **Docker Content Trust** koristi Notary projekat, zasnovan na The Update Framework (TUF), za upravljanje potpisivanjem slika. Za više informacija, pogledajte [Notary](https://github.com/docker/notary) i [TUF](https://theupdateframework.github.io).
- Da biste aktivirali Docker content trust, postavite `export DOCKER_CONTENT_TRUST=1`. Ova funkcija je isključena po podrazumevanju u Docker verziji 1.10 i kasnijim verzijama.
-- Sa ovom funkcijom omogućenom, mogu se preuzimati samo potpisane slike. Početni unos slike zahteva postavljanje lozinki za korenske i oznake ključeva, pri čemu Docker takođe podržava Yubikey za unapređenu sigurnost. Više detalja možete pronaći [ovde](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
+- Sa ovom funkcijom omogućenom, samo potpisane slike mogu biti preuzete. Početno slanje slike zahteva postavljanje lozinki za korenske i označene ključeve, pri čemu Docker takođe podržava Yubikey za unapređenu sigurnost. Više detalja možete pronaći [ovde](https://blog.docker.com/2015/11/docker-content-trust-yubikey/).
- Pokušaj preuzimanja nepotpisane slike sa omogućenim content trust-om rezultira greškom "No trust data for latest".
-- Za unos slika nakon prvog, Docker traži lozinku ključa repozitorijuma za potpisivanje slike.
+- Za slanje slika nakon prvog, Docker traži lozinku ključa repozitorijuma za potpisivanje slike.
Za bekapovanje vaših privatnih ključeva, koristite komandu:
```bash
@@ -106,10 +106,10 @@ Kada prebacujete Docker hostove, potrebno je premestiti root i repozitorijum klj
***
-
+
\
-Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim alatima zajednice.\
+Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) da biste lako izgradili i **automatizovali radne tokove** pokretane najnaprednijim alatima zajednice.\
Pristupite danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@@ -118,29 +118,29 @@ Pristupite danas:
mig_external boolean_t myipc_server
(mach_msg_header_t *InHeadP, mach_msg_header_t *OutHeadP)
@@ -208,17 +201,7 @@ mach_msg_server(myipc_server, sizeof(union __RequestUnion__SERVERPREFmyipc_subsy
```
{% endtab %}
-{% tab title="myipc_client.c" %}
-
-### macOS MIG (Mach Interface Generator)
-
-MIG (Mach Interface Generator) is a tool used to define inter-process communication (IPC) for macOS. It generates client and server-side code for message-based IPC. By understanding and manipulating MIG interfaces, an attacker can abuse IPC mechanisms to escalate privileges or perform other malicious actions.
-
-#### Translation:
-
-### macOS MIG (Mach Interface Generator)
-
-MIG (Mach Interface Generator) je alat koji se koristi za definisanje međuprocesne komunikacije (IPC) za macOS. Generiše kôd klijenta i servera za IPC zasnovan na porukama. Razumevanjem i manipulacijom MIG interfejsa, napadač može zloupotrebiti IPC mehanizme kako bi eskalirao privilegije ili izvršio druge zlonamerne radnje.
+{% tab title="myipc_client.c" %}
```c
// gcc myipc_client.c myipcUser.c -o myipc_client
@@ -247,11 +230,11 @@ USERPREFSubtract(port, 40, 2);
Pošto mnogi binarni fajlovi sada koriste MIG za izlaganje mach portova, interesantno je znati kako **identifikovati da je MIG korišćen** i **funkcije koje MIG izvršava** sa svakim ID-jem poruke.
-[**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2) može parsirati MIG informacije iz Mach-O binarnog fajla, pokazujući ID poruke i identifikujući funkciju za izvršenje:
+[**jtool2**](../../macos-apps-inspecting-debugging-and-fuzzing/#jtool2) može parsirati MIG informacije iz Mach-O binarnog fajla, pokazujući ID poruke i identifikujući funkciju za izvršavanje:
```bash
jtool2 -d __DATA.__const myipc_server | grep MIG
```
-Ranije je pomenuto da će funkciju koja će se brinuti o **pozivanju odgovarajuće funkcije u zavisnosti od primljenog ID poruke** biti `myipc_server`. Međutim, obično nećete imati simbole binarnog koda (imenovanje funkcija), pa je zanimljivo **proveriti kako izgleda dekompilirano** jer će uvek biti vrlo slično (kod ove funkcije je nezavisan od izloženih funkcija):
+Ranije je pomenuto da će funkcija koja će se brinuti o **pozivanju odgovarajuće funkcije u zavisnosti od primljenog ID poruke** biti `myipc_server`. Međutim, obično nećete imati simbole binarnog koda (imenovanje funkcija), pa je zanimljivo **proveriti kako izgleda dekompilirano** jer će uvek biti vrlo slično (kod ove funkcije je nezavisan od izloženih funkcija):
{% tabs %}
{% tab title="myipc_server dekompilirano 1" %}
@@ -268,7 +251,7 @@ var_18 = arg1;
if (*(int32_t *)(var_10 + 0x14) <= 0x1f4 && *(int32_t *)(var_10 + 0x14) >= 0x1f4) {
rax = *(int32_t *)(var_10 + 0x14);
// Poziv funkciji sign_extend_64 koja može pomoći u identifikaciji ove funkcije
-// Ovo čuva u rax pokazivač na poziv koji treba pozvati
+// Ovo čuva u rax pokazivač na poziv koji treba biti izvršen
// Proverite upotrebu adrese 0x100004040 (niz adresa funkcija)
// 0x1f4 = 500 (početni ID)
rax = *(sign_extend_64(rax - 0x1f4) * 0x28 + 0x100004040);
@@ -340,7 +323,7 @@ if (CPU_FLAGS & NE) {
r8 = 0x1;
}
}
-// Ista if else struktura kao u prethodnoj verziji
+// Isto if else kao u prethodnoj verziji
// Proverite upotrebu adrese 0x100004040 (niz adresa funkcija)
if ((r8 & 0x1) == 0x0) {
*(var_18 + 0x18) = **0x100004000;
@@ -372,12 +355,12 @@ return r0;
{% endtab %}
{% endtabs %}
-Zapravo, ako odete na funkciju **`0x100004000`** pronaći ćete niz struktura **`routine_descriptor`**. Prvi element strukture je **adresa** gde je **funkcija** implementirana, a **struktura zauzima 0x28 bajtova**, tako da svakih 0x28 bajtova (počevši od bajta 0) možete dobiti 8 bajtova i to će biti **adresa funkcije** koja će biti pozvana:
-
-
+Zapravo, ako odete na funkciju **`0x100004000`** pronaći ćete niz struktura **`routine_descriptor`**. Prvi element strukture je **adresa** gde je **funkcija** implementirana, a **struktura zauzima 0x28 bajta**, tako da svakih 0x28 bajta (počevši od bajta 0) možete dobiti 8 bajtova i to će biti **adresa funkcije** koja će biti pozvana:
+
+
Ovi podaci mogu biti izvađeni [**korišćenjem ovog Hopper skripta**](https://github.com/knightsc/hopper/blob/master/scripts/MIG%20Detect.py).
@@ -386,7 +369,7 @@ Ovi podaci mogu biti izvađeni [**korišćenjem ovog Hopper skripta**](https://g
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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 **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
index 06ac88e93..53d2c1112 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-authorization.md
@@ -8,7 +8,7 @@ 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 PRIJATELJSTVO**](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)
+* Otkrijte [**Porodičnu 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.
@@ -18,11 +18,11 @@ Drugi načini podrške HackTricks-u:
Apple takođe predlaže još jedan način za autentifikaciju da li povezani proces ima **dozvole da pozove izloženu XPC metodu**.
-Kada aplikacija treba da **izvrši akcije kao privilegovani korisnik**, umesto pokretanja aplikacije kao privilegovani korisnik, obično instalira kao root HelperTool kao XPC servis koji može biti pozvan iz aplikacije da izvrši te akcije. Međutim, aplikacija koja poziva servis treba da ima dovoljno autorizacije.
+Kada aplikacija treba da **izvrši akcije kao privilegovani korisnik**, umesto pokretanja aplikacije kao privilegovani korisnik, obično instalira kao root HelperTool kao XPC servis koji može biti pozvan iz aplikacije da izvrši te akcije. Međutim, aplikacija koja poziva servis treba imati dovoljno autorizacije.
### ShouldAcceptNewConnection uvek YES
-Primer se može pronaći u [EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample). U `App/AppDelegate.m` pokušava da se **poveže** sa **HelperTool**-om. A u `HelperTool/HelperTool.m` funkcija **`shouldAcceptNewConnection`** **neće proveriti** nijedan od prethodno navedenih zahteva. Uvek će vraćati YES:
+Primer se može pronaći u [EvenBetterAuthorizationSample](https://github.com/brenwell/EvenBetterAuthorizationSample). U `App/AppDelegate.m` pokušava da se **poveže** sa **HelperTool**-om. A u `HelperTool/HelperTool.m` funkcija **`shouldAcceptNewConnection`** **neće proveravati** nijedan od prethodno navedenih zahteva. Uvek će vraćati YES:
```objectivec
- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
// Called by our XPC listener when a new connection comes in. We configure the connection
@@ -184,7 +184,7 @@ block(authRightName, authRightDefault, authRightDesc);
}];
}
```
-Ovo znači da će na kraju ovog procesa, dozvole deklarisane unutar `commandInfo` biti sačuvane u `/var/db/auth.db`. Primetite kako tamo možete pronaći za **svaku metodu** koja će **zahtevati autentifikaciju**, **ime dozvole** i **`kCommandKeyAuthRightDefault`**. Ovaj poslednji **ukazuje ko može dobiti ovu dozvolu**.
+Ovo znači da će na kraju ovog procesa, dozvole deklarisane unutar `commandInfo` biti sačuvane u `/var/db/auth.db`. Primetite kako tamo možete pronaći za **svaku metodu** koja će **zahtevati autentikaciju**, **ime dozvole** i **`kCommandKeyAuthRightDefault`**. Ovaj poslednji **ukazuje ko može dobiti ovu dozvolu**.
Postoje različiti opsezi koji ukazuju ko može pristupiti dozvoli. Neki od njih su definisani u [AuthorizationDB.h](https://github.com/aosm/Security/blob/master/Security/libsecurity\_authorization/lib/AuthorizationDB.h) (sve ih možete pronaći [ovde](https://www.dssw.co.uk/reference/authorization-rights/)), ali ukratko:
@@ -268,7 +268,9 @@ Sve konfiguracije dozvola možete pronaći [ovde](https://www.dssw.co.uk/referen
3. **'session-owner': 'true'**
* Ako je postavljen na `true`, vlasnik sesije (trenutno prijavljeni korisnik) automatski bi dobio ovo pravo. Ovo može zaobići dodatnu autentikaciju ako je korisnik već prijavljen.
4. **'shared': 'true'**
-* Ovaj ključ ne dodeljuje prava bez autentikacije. Umesto toga, ako je postavljen na `true`, to znači da se jednom kada je pravo autentifikovano, može deliti među više procesa bez potrebe da se svaki ponovo autentifikuje. Međutim, početno dodeljivanje prava i dalje bi zahtevalo autentikaciju osim ako nije kombinovano sa drugim ključevima poput `'authenticate-user': 'false'`.
+* Ovaj ključ ne dodeljuje prava bez autentikacije. Umesto toga, ako je postavljen na `true`, to znači da jednom kada je pravo autentifikovano, može se deliti među više procesa bez potrebe da se svaki ponovo autentifikuje. Međutim, početno dodeljivanje prava i dalje zahteva autentikaciju osim ako nije kombinovano sa drugim ključevima poput `'authenticate-user': 'false'`.
+
+Možete [koristiti ovaj skript](https://gist.github.com/carlospolop/96ecb9e385a4667b9e40b24e878652f9) da biste dobili zanimljiva prava:
```bash
Rights with 'authenticate-user': 'false':
is-admin (admin), is-admin-nonshared (admin), is-appstore (_appstore), is-developer (_developer), is-lpadmin (_lpadmin), is-root (run as root), is-session-owner (session owner), is-webdeveloper (_webdeveloper), system-identity-write-self (session owner), system-install-iap-software (run as root), system-install-software-iap (run as root)
@@ -279,13 +281,13 @@ com-apple-aosnotification-findmymac-remove, com-apple-diskmanagement-reservekek,
Rights with 'session-owner': 'true':
authenticate-session-owner, authenticate-session-owner-or-admin, authenticate-session-user, com-apple-safari-allow-apple-events-to-run-javascript, com-apple-safari-allow-javascript-in-smart-search-field, com-apple-safari-allow-unsigned-app-extensions, com-apple-safari-install-ephemeral-extensions, com-apple-safari-show-credit-card-numbers, com-apple-safari-show-passwords, com-apple-icloud-passwordreset, com-apple-icloud-passwordreset, is-session-owner, system-identity-write-self, use-login-window-ui
```
-## Reversiranje autorizacije
+## Revertovanje autorizacije
### Provera da li se koristi EvenBetterAuthorization
-Ako pronađete funkciju: **`[HelperTool checkAuthorization:command:]`** verovatno je da proces koristi prethodno pomenutu šemu za autorizaciju:
+Ako pronađete funkciju: **`[HelperTool checkAuthorization:command:]`**, verovatno proces koristi prethodno pomenutu šemu za autorizaciju:
-
+
Zatim, ako ova funkcija poziva funkcije poput `AuthorizationCreateFromExternalForm`, `authorizationRightForCommand`, `AuthorizationCopyRights`, `AuhtorizationFree`, koristi [**EvenBetterAuthorizationSample**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L101-L154).
@@ -297,7 +299,7 @@ Zatim, trebate pronaći šemu protokola kako biste mogli uspostaviti komunikacij
Funkcija **`shouldAcceptNewConnection`** ukazuje na izvođenje protokola:
-
+
U ovom slučaju, imamo isto kao i u EvenBetterAuthorizationSample, [**proverite ovu liniju**](https://github.com/brenwell/EvenBetterAuthorizationSample/blob/e1052a1855d3a5e56db71df5f04e790bfd4389c4/HelperTool/HelperTool.m#L94).
@@ -339,7 +341,7 @@ cat /Library/LaunchDaemons/com.example.HelperTool.plist
U ovom primeru je kreirano:
* Definicija protokola sa funkcijama
-* Prazna autentifikacija koja se koristi za traženje pristupa
+* Prazna autentifikacija za korišćenje zahteva za pristup
* Povezivanje sa XPC servisom
* Poziv funkcije ako je povezivanje bilo uspešno
```objectivec
@@ -429,7 +431,7 @@ NSLog(@"Finished!");
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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 **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
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/macos-xpc_connection_get_audit_token-attack.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
index a8c29e022..27f156d51 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/macos-xpc_connection_get_audit_token-attack.md
@@ -6,7 +6,7 @@
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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)**.**
@@ -25,7 +25,7 @@ Ako ne znate šta su Mach poruke, počnite sa proverom ove stranice:
{% endcontent-ref %}
Za sada zapamtite da ([definicija sa ovog linka](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):\
-Mach poruke se šalju preko _mach porta_, koji je **kanal komunikacije sa jednim primaocem, više pošiljalaca** ugrađen u mach kernel. **Više procesa može slati poruke** ka mach portu, ali u svakom trenutku **samo jedan proces može čitati iz njega**. Kao i sa deskriptorima fajlova i soketima, mach portovi se dodeljuju i upravljaju od strane kernela, a procesi vide samo celobrojne vrednosti koje mogu koristiti da označe kernelu koji od njihovih mach portova žele da koriste.
+Mach poruke se šalju preko _mach porta_, koji je **kanal komunikacije sa jednim primaocem, više pošiljalaca** ugrađen u mach kernel. **Više procesa može slati poruke** ka mach portu, ali u svakom trenutku **samo jedan proces može čitati iz njega**. Kao i kod deskriptora fajlova i soketa, mach portovi se dodeljuju i upravljaju od strane kernela, a procesi vide samo celobrojne vrednosti koje mogu koristiti da označe kernelu koji od njihovih mach portova žele da koriste.
## XPC Veza
@@ -35,15 +35,15 @@ Ako ne znate kako se uspostavlja XPC veza, proverite:
[..](../)
{% endcontent-ref %}
-## Sumiranje ranjivosti
+## Sumarno o ranjivosti
-Ono što je važno znati je da je **XPC-ova apstrakcija jedan-na-jedan veza**, ali je zasnovana na tehnologiji koja **može imati više pošiljalaca, tako da:**
+Ono što je važno znati je da je **XPC-ova apstrakcija jedan-na-jedan veza**, ali se zasniva na tehnologiji koja **može imati više pošiljalaca, tako da:**
* Mach portovi su jedan primaoc, **više pošiljalaca**.
-* Audit token XPC veze je audit token **kopiran iz poslednje primljene poruke**.
+* Audit token XPC veze je audit token **kopiran iz najskorije primljene poruke**.
* Dobijanje **audit tokena** XPC veze je ključno za mnoge **bezbednosne provere**.
-Iako prethodna situacija zvuči obećavajuće, postoje neki scenariji gde to neće izazvati probleme ([sa ovog linka](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
+Iako prethodna situacija zvuči obećavajuće, postoje scenariji u kojima to neće izazvati probleme ([sa ovog linka](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing)):
* Audit tokeni se često koriste za proveru autorizacije kako bi se odlučilo da li prihvatiti vezu. Pošto se ovo dešava korišćenjem poruke ka servisnom portu, **veza još uvek nije uspostavljena**. Više poruka na ovom portu će biti tretirano kao dodatni zahtevi za vezu. Dakle, bilo kakve **provere pre prihvatanja veze nisu ranjive** (ovo takođe znači da je unutar `-listener:shouldAcceptNewConnection:` audit token siguran). Zato **tražimo XPC veze koje proveravaju specifične akcije**.
* XPC rukovaoci događajima se obrađuju sinhrono. Ovo znači da rukovalac događajem za jednu poruku mora biti završen pre nego što se pozove za sledeću, čak i na konkurentnim redovima za raspodelu. Dakle, unutar **XPC rukovaoca događajima audit token ne može biti prepisan** od strane drugih normalnih (ne-odgovornih!) poruka.
@@ -52,23 +52,23 @@ Dva različita načina na koje ovo može biti iskorišćeno:
1. Varijanta 1:
* **Eksploit** se **povezuje** sa servisom **A** i servisom **B**
-* Servis **B** može pozvati **privilegovanu funkcionalnost** u servisu A koju korisnik ne može
-* Servis **A** poziva **`xpc_connection_get_audit_token`** dok _**nije**_ unutar **rukovodioca događajem** za vezu u **`dispatch_async`**.
-* Tako da **različita** poruka može **prepisati Audit Token** jer se šalje asinhrono izvan rukovaoca događajem.
+* Servis **B** može pozvati **privilegovanu funkcionalnost** u servisu **A koju korisnik ne može**
+* Servis **A** poziva **`xpc_connection_get_audit_token`** dok _**nije**_ unutar **rukovalaca događajima** za vezu u **`dispatch_async`**.
+* Tako da **različita** poruka može **prepisati Audit Token** jer se šalje asinhrono izvan rukovaoca događajima.
* Eksploit prosleđuje **servisu B SEND pravo ka servisu A**.
* Dakle, svc **B** će zapravo **slati** **poruke** servisu **A**.
-* **Eksploit** pokušava da **pozove privilegovanu akciju.** U RC svc **A** **proverava** autorizaciju ove **akcije** dok je **svc B prepisao Audit token** (dajući eksploatatoru pristup pozivanju privilegovane akcije).
+* **Eksploit** pokušava da **pozove privilegovanu akciju**. U RC svc **A** **proverava** autorizaciju ove **akcije** dok je **svc B prepisao Audit token** (dajući eksploatatoru pristup pozivanju privilegovane akcije).
2. Varijanta 2:
-* Servis **B** može pozvati **privilegovanu funkcionalnost** u servisu A koju korisnik ne može
-* Eksploit se povezuje sa **servisom A** koji **šalje** eksploatatoru poruku očekujući odgovor na određenom **replay** **portu**.
-* Eksploit šalje **servisu** B poruku prosleđujući **taj odgovor port**.
+* Servis **B** može pozvati **privilegovanu funkcionalnost** u servisu **A koju korisnik ne može**
+* Eksploit se povezuje sa **servisom A** koji **šalje** eksploatatoru **poruku očekujući odgovor** na određenom **replay** **portu**.
+* Eksploit šalje **servisu B poruku prosleđujući** taj replay port.
* Kada servis **B odgovori**, **šalje poruku servisu A**, **dok** **eksploit** šalje drugu **poruku servisu A** pokušavajući **dostići privilegovanu funkcionalnost** i očekujući da će odgovor od servisa B prepisati Audit token u savršenom trenutku (Trka stanja).
-## Varijanta 1: pozivanje xpc\_connection\_get\_audit\_token van rukovaoca događajem
+## Varijanta 1: pozivanje xpc\_connection\_get\_audit\_token van rukovaoca događajima
Scenario:
-* Dva mach servisa **`A`** i **`B`** kojima možemo oboje da se povežemo (na osnovu sandbox profila i provere autorizacije pre prihvatanja veze).
+* Dva mach servisa **`A`** i **`B`** sa kojima možemo oboje da se povežemo (na osnovu sandbox profila i provere autorizacije pre prihvatanja veze).
* _**A**_ mora imati **proveru autorizacije** za određenu akciju koju **`B`** može proslediti (ali naša aplikacija ne može).
* Na primer, ako B ima neka **ovlašćenja** ili se izvršava kao **root**, to bi mu moglo omogućiti da zatraži od A da izvrši privilegovanu akciju.
* Za ovu proveru autorizacije, **`A`** asinhrono dobija audit token, na primer pozivajući `xpc_connection_get_audit_token` iz **`dispatch_async`**.
@@ -84,7 +84,7 @@ Stoga, servis **B** je **`diagnosticd`** jer se izvršava kao **root** i može s
Za izvođenje napada:
1. Inicirajte **vezu** sa servisom nazvanim `smd` koristeći standardni XPC protokol.
-2. Formirajte sekundarnu **vezu** sa `diagnosticd`. Suprotno normalnom postupku, umesto kreiranja i slanja dva nova mach porta, pravo slanja klijentskog porta se zamenjuje sa duplikatom **send prava** povezanog sa vezom `smd`.
+2. Formirajte sekundarnu **vezu** sa `diagnosticd`. Suprotno normalnom postupku, umesto stvaranja i slanja dva nova mach porta, pravo slanja klijentskog porta se zamenjuje sa duplikatom **send prava** povezanog sa vezom `smd`.
3. Kao rezultat, XPC poruke mogu biti prosleđene `diagnosticd`, ali odgovori od `diagnosticd` se preusmeravaju na `smd`. Za `smd`, izgleda kao da poruke od korisnika i `diagnosticd` potiču iz iste veze.
![Slika koja prikazuje proces eksploatacije](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/exploit.png)
@@ -93,43 +93,43 @@ Za izvođenje napada:
## Varijanta 2: prosleđivanje odgovora
-U XPC (Cross-Process Communication) okruženju, iako rukovaoci događajima ne izvršavaju se istovremeno, rukovanje odgovorima na poruke ima jedinstveno ponašanje. Konkretno, postoje dva različita metoda za slanje poruka koje očekuju odgovor:
+U XPC (Cross-Process Communication) okruženju, iako rukovaoci događajima ne izvršavaju se istovremeno, rukovanje odgovorima ima jedinstveno ponašanje. Konkretno, postoje dva različita metoda za slanje poruka koje očekuju odgovor:
1. **`xpc_connection_send_message_with_reply`**: Ovde se XPC poruka prima i obrađuje na određenom redu.
2. **`xpc_connection_send_message_with_reply_sync`**: Nasuprot tome, u ovom metodu, XPC poruka se prima i obrađuje na trenutnom redu dispečovanja.
-Ova razlika je ključna jer omogućava mogućnost **parsiranja odgovarajućih paketa istovremeno sa izvršavanjem rukovaoca događajima XPC**. Važno je napomenuti da, iako `_xpc_connection_set_creds` implementira zaključavanje radi zaštite od delimičnog prepisivanja audit tokena, ova zaštita se ne proširuje na ceo objekat veze. Kao rezultat, stvara se ranjivost gde audit token može biti zamenjen tokom intervala između parsiranja paketa i izvršavanja njegovog rukovaoca događajima.
+Ova razlika je ključna jer omogućava mogućnost **paralelnog parsiranja odgovarajućih paketa sa izvršavanjem rukovaoca događajima XPC**. Važno je napomenuti da, iako `_xpc_connection_set_creds` implementira zaključavanje radi zaštite od delimičnog prepisivanja audit tokena, ova zaštita se ne proširuje na ceo objekat veze. Kao rezultat, stvara se ranjivost gde audit token može biti zamenjen tokom intervala između parsiranja paketa i izvršavanja njegovog rukovaoca događajima.
Da bi se iskoristila ova ranjivost, potrebno je sledeće podešavanje:
* Dva mach servisa, nazvana **`A`** i **`B`**, oba koja mogu uspostaviti vezu.
* Servis **`A`** treba da uključi proveru autorizacije za određenu akciju koju samo **`B`** može izvršiti (aplikacija korisnika ne može).
* Servis **`A`** treba da pošalje poruku koja očekuje odgovor.
-* Korisnik može poslati poruku **`B`**-u na koju će odgovoriti.
+* Korisnik može poslati poruku **`B`**-u na koju će on odgovoriti.
-Proces iskorišćavanja uključuje sledeće korake:
+Proces iskorišćavanja ove ranjivosti uključuje sledeće korake:
1. Sačekati da servis **`A`** pošalje poruku koja očekuje odgovor.
-2. Umesto direktnog odgovora **`A`**, preusmeriti port za odgovor i koristiti ga za slanje poruke servisu **`B`**.
-3. Zatim, poslati poruku koja uključuje zabranjenu akciju, sa očekivanjem da će biti obrađena istovremeno sa odgovorom od **`B`**.
+2. Umesto direktnog odgovora **`A`**-u, preusmeriti port za odgovor i koristiti ga za slanje poruke servisu **`B`**.
+3. Zatim, poslati poruku koja uključuje zabranjenu akciju, sa očekivanjem da će biti obrađena paralelno sa odgovorom od **`B`**.
Ispod je vizuelna reprezentacija opisanog scenarija napada:
![https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/variant2.png](../../../../../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png)
-
+
## Problemi sa otkrivanjem
-* **Teškoće u Pronalaženju Instanci**: Pretraga instanci korišćenja `xpc_connection_get_audit_token` bila je izazovna, kako statički tako i dinamički.
+* **Teškoće u Pronalaženju Instanci**: Pretraga korišćenja `xpc_connection_get_audit_token` bila je izazovna, kako statički tako i dinamički.
* **Metodologija**: Frida je korišćena za hakovanje funkcije `xpc_connection_get_audit_token`, filtrirajući pozive koji ne potiču od rukovaoca događajima. Međutim, ovaj metod je bio ograničen na hakovan proces i zahtevao je aktivnu upotrebu.
-* **Alati za Analizu**: Alati poput IDA/Ghidra korišćeni su za ispitivanje dostupnih mach servisa, ali je proces bio dugotrajan, otežan pozivima koji uključuju dyld deljeni keš.
-* **Ograničenja Skriptovanja**: Pokušaji skriptovanja analize poziva `xpc_connection_get_audit_token` iz `dispatch_async` blokova bili su ometani složenostima u parsiranju blokova i interakcijama sa dyld deljenim kešom.
+* **Alati za Analizu**: Alati poput IDA/Ghidra korišćeni su za ispitivanje dostupnih mach servisa, ali je proces bio dugotrajan, komplikovan pozivima koji uključuju dyld deljeni keš.
+* **Ograničenja Skriptovanja**: Pokušaji skriptovanja analize poziva `xpc_connection_get_audit_token` iz `dispatch_async` blokova bili su ometeni složenostima u parsiranju blokova i interakcijama sa dyld deljenim kešom.
## Popravka
* **Prijavljene Probleme**: Izveštaj je dostavljen Apple-u detaljno opisujući opšte i specifične probleme pronađene unutar `smd`.
-* **Odgovor Apple-a**: Apple je adresirao problem u `smd` zamenivši `xpc_connection_get_audit_token` sa `xpc_dictionary_get_audit_token`.
+* **Odgovor od Apple-a**: Apple je rešio problem u `smd` zamenivši `xpc_connection_get_audit_token` sa `xpc_dictionary_get_audit_token`.
* **Priroda Popravke**: Funkcija `xpc_dictionary_get_audit_token` smatra se sigurnom jer direktno dobavlja audit token iz mach poruke povezane sa primljenom XPC porukom. Međutim, nije deo javnog API-ja, slično kao i `xpc_connection_get_audit_token`.
-* **Odsustvo Šire Popravke**: Ostaje nejasno zašto Apple nije implementirao sveobuhvatniju popravku, poput odbacivanja poruka koje se ne podudaraju sa sačuvanim audit tokenom veze. Moguće je da je faktor mogućnost legitimnih promena audit tokena u određenim scenarijima (npr. korišćenje `setuid`).
+* **Odsustvo Šire Popravke**: Nije jasno zašto Apple nije implementirao sveobuhvatniju popravku, poput odbacivanja poruka koje se ne podudaraju sa sačuvanim audit tokenom veze. Moguće je da je faktor mogućnost legitimnih promena audit tokena u određenim scenarijima (npr. korišćenje `setuid`).
* **Trenutni Status**: Problem i dalje postoji u iOS 17 i macOS 14, predstavljajući izazov za one koji pokušavaju da ga identifikuju i razumeju.
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
index 17f65108e..3a4a06af5 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-perl-applications-injection.md
@@ -4,9 +4,9 @@
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
-Drugi načini da podržite 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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **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)**.**
@@ -48,7 +48,7 @@ PERL5LIB=/tmp/ PERL5OPT=-Mpmod
```
## Preko zavisnosti
-Moguće je izlistati redosled foldera zavisnosti koje Perl koristi:
+Moguće je izlistati redosled foldera zavisnosti Perl-a koji se izvršava:
```bash
perl -e 'print join("\n", @INC)'
```
@@ -64,30 +64,16 @@ perl -e 'print join("\n", @INC)'
/System/Library/Perl/Extras/5.30/darwin-thread-multi-2level
/System/Library/Perl/Extras/5.30
```
-Neke od vraćenih mapa čak ne postoje, međutim, **`/Library/Perl/5.30`** **postoji**, nije **zaštićen** od strane **SIP-a** i nalazi se **ispred** mapa **zaštićenih SIP-om**. Stoga, neko bi mogao zloupotrebiti tu mapu da dodaje zavisnosti skripta tamo kako bi visoko privilegovani Perl skript učitao te zavisnosti.
+Neke od vraćenih foldera čak ne postoje, međutim, **`/Library/Perl/5.30`** **postoji**, nije **zaštićen** od strane **SIP** i nalazi se **ispred** foldera **zaštićenih SIP-om**. Stoga, neko bi mogao zloupotrebiti taj folder da dodaje zavisnosti skripti tamo kako bi visoko privilegovana Perl skripta mogla da je učita.
{% hint style="warning" %}
-Međutim, imajte na umu da **morate biti root da biste pisali u tu mapu** i danas ćete dobiti ovaj **TCC prozor**:
+Međutim, imajte na umu da **morate biti root da biste pisali u taj folder** i danas ćete dobiti ovaj **TCC prozor**:
{% endhint %}
-
+
-Na primer, ako skript uvozi **`use File::Basename;`** bilo bi moguće kreirati `/Library/Perl/5.30/File/Basename.pm` kako bi se izvršio proizvoljni kod.
+Na primer, ako skripta uvozi **`use File::Basename;`** bilo bi moguće kreirati `/Library/Perl/5.30/File/Basename.pm` da bi se izvršio proizvoljni kod.
## Reference
* [https://www.youtube.com/watch?v=zxZesAN-TEk](https://www.youtube.com/watch?v=zxZesAN-TEk)
-
-
-
-Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
-
-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 **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.
-
-
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
index 3726ed62d..d01803cb6 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-dangerous-entitlements.md
@@ -6,7 +6,7 @@
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodiču 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)**.**
@@ -18,7 +18,7 @@ Drugi načini podrške HackTricks-u:
Imajte na umu da ovlašćenja koja počinju sa **`com.apple`** nisu dostupna trećim licima, samo ih Apple može odobriti.
{% endhint %}
-## Visok
+## Visoko
### `com.apple.rootless.install.heritable`
@@ -42,7 +42,7 @@ Aplikacije sa ovlašćenjem za Alat za Debugovanje mogu pozvati `task_for_pid()`
### `com.apple.security.cs.disable-library-validation`
-Ovo ovlašćenje omogućava **učitavanje frameworka, plug-ina ili biblioteka bez potpisa od strane Apple-a ili potpisanog istim Team ID-em** kao glavni izvršni fajl, tako da napadač može zloupotrebiti neko proizvoljno učitavanje biblioteke da ubaci kod. Proverite [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
+Ovo ovlašćenje omogućava **učitavanje okvira, dodataka ili biblioteka bez potpisa od strane Apple-a ili potpisanog istim Team ID-em** kao glavni izvršni fajl, tako da napadač može zloupotrebiti neko proizvoljno učitavanje biblioteke da ubaci kod. Proverite [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-library-validation).
### `com.apple.private.security.clear-library-validation`
@@ -79,15 +79,15 @@ TODO: Ne znam šta ovo omogućava
### `com.apple.private.apfs.revert-to-snapshot`
-TODO: U [**ovom izveštaju**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se pominje da bi ovo moglo biti korišćeno za** ažuriranje SSV-zaštićenih sadržaja nakon restarta. Ako znate kako, pošaljite PR molim vas!
+TODO: U [**ovom izveštaju**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se pominje da bi ovo moglo biti korišćeno** za ažuriranje SSV-zaštićenih sadržaja nakon ponovnog pokretanja. Ako znate kako, pošaljite PR molim vas!
### `com.apple.private.apfs.create-sealed-snapshot`
-TODO: U [**ovom izveštaju**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se pominje da bi ovo moglo biti korišćeno za** ažuriranje SSV-zaštićenih sadržaja nakon restarta. Ako znate kako, pošaljite PR molim vas!
+TODO: U [**ovom izveštaju**](https://jhftss.github.io/The-Nightmare-of-Apple-OTA-Update/) **se pominje da bi ovo moglo biti korišćeno** za ažuriranje SSV-zaštićenih sadržaja nakon ponovnog pokretanja. Ako znate kako, pošaljite PR molim vas!
### `keychain-access-groups`
-Ovo ovlašćenje nabraja **keychain** grupe kojima aplikacija ima pristup:
+Ovo ovlašćenje nabraja **grupe ključeva** kojima aplikacija ima pristup:
```xml
keychain-access-groups
@@ -107,8 +107,6 @@ Daje dozvole za **Pristup celom disku**, jednu od najviših dozvola koje možete
Omogućava aplikaciji slanje događaja drugim aplikacijama koje se često koriste za **automatizaciju zadataka**. Kontrolišući druge aplikacije, može zloupotrebiti dozvole koje su date tim drugim aplikacijama.
Na primer, može ih naterati da zatraže korisnikovu lozinku:
-
-{% code overflow="wrap" %}
```bash
osascript -e 'tell app "App Store" to activate' -e 'tell app "App Store" to activate' -e 'tell app "App Store" to display dialog "App Store requires your password to continue." & return & return default answer "" with icon 1 with hidden answer with title "App Store Alert"'
```
@@ -126,25 +124,25 @@ Dozvoljava **promenu** atributa **`NFSHomeDirectory`** korisnika koji menja puta
### **`kTCCServiceSystemPolicyAppBundles`**
-Dozvoljava modifikaciju fajlova unutar aplikacija (unutar app.app), što je **podrazumevano zabranjeno**.
+Dozvoljava modifikaciju fajlova unutar aplikativnih paketa (unutar app.app), što je **podrazumevano zabranjeno**.
-
+
Moguće je proveriti ko ima ovaj pristup u _Sistemskim postavkama_ > _Privatnost & Bezbednost_ > _Upravljanje aplikacijama_.
### `kTCCServiceAccessibility`
-Proces će moći da **zloupotrebi macOS funkcije pristupačnosti**, što znači da će na primer moći da pritisne taster. Tako bi mogao da zatraži pristup kontroli aplikacije poput Findera i odobri dijalog sa ovom dozvolom.
+Proces će moći da **zloupotrebi macOS funkcije pristupačnosti**, što znači da na primer može da pritisne tasterske prečice. Tako bi mogao da zatraži pristup kontroli aplikacije poput Findera i odobri dijalog sa ovom dozvolom.
## Srednje
### `com.apple.security.cs.allow-jit`
-Ova dozvola omogućava da se **kreira memorija koja je upisiva i izvršna** prolaskom `MAP_JIT` zastave funkciji sistema `mmap()`. Proveri [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
+Ova dozvola omogućava da se **kreira memorija koja je upisiva i izvršna** prolaskom `MAP_JIT` zastave ka `mmap()` sistemskoj funkciji. Proverite [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-jit).
### `com.apple.security.cs.allow-unsigned-executable-memory`
-Ova dozvola omogućava **zamenu ili zakrpu C koda**, korišćenje dugo zastarelog **`NSCreateObjectFileImageFromMemory`** (što je suštinski nesigurno), ili korišćenje **DVDPlayback** okvira. Proveri [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
+Ova dozvola omogućava **zamenu ili zakrpu C koda**, korišćenje dugo zastarelog **`NSCreateObjectFileImageFromMemory`** (što je fundamentalno nesigurno), ili korišćenje **DVDPlayback** okvira. Proverite [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_allow-unsigned-executable-memory).
{% hint style="danger" %}
Uključivanje ove dozvole izlaže vašu aplikaciju uobičajenim ranjivostima u jezicima sa kodom koji nije siguran za memoriju. Pažljivo razmislite da li vaša aplikacija zahteva ovaj izuzetak.
@@ -152,10 +150,10 @@ Uključivanje ove dozvole izlaže vašu aplikaciju uobičajenim ranjivostima u j
### `com.apple.security.cs.disable-executable-page-protection`
-Ova dozvola omogućava **modifikaciju sekcija sopstvenih izvršnih fajlova** na disku da bi se silom izašlo. Proveri [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
+Ova dozvola omogućava da se **modifikuju sekcije sopstvenih izvršnih fajlova** na disku kako bi se silom izašlo. Proverite [**ovde za više informacija**](https://developer.apple.com/documentation/bundleresources/entitlements/com\_apple\_security\_cs\_disable-executable-page-protection).
{% hint style="danger" %}
-Dozvola za Onemogućavanje zaštite izvršne memorije je ekstremna dozvola koja uklanja osnovnu sigurnosnu zaštitu iz vaše aplikacije, čime se omogućava napadaču da prepiše izvršni kod vaše aplikacije bez otkrivanja. Preferirajte uže dozvole ako je moguće.
+Dozvola za Onemogućavanje Zaštite Izvršne Memorije je ekstremna dozvola koja uklanja osnovnu sigurnosnu zaštitu iz vaše aplikacije, čime se omogućava napadaču da prepiše izvršni kod vaše aplikacije bez otkrivanja. Preferirajte uže dozvole ako je moguće.
{% endhint %}
### `com.apple.security.cs.allow-relative-library-loads`
@@ -185,7 +183,7 @@ Dozvoli procesu da **zatraži sve TCC dozvole**.
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 PRIJATELJE**](https://github.com/sponsors/carlospolop)!
+* 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 [**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 **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
index 01f01ffc5..27f643e14 100644
--- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
+++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/README.md
@@ -6,9 +6,9 @@
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 PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
-* Otkrijte [**Porodiču PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
+* 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.
@@ -18,13 +18,13 @@ Drugi načini podrške HackTricks-u:
**TCC (Transparentnost, Saglasnost i Kontrola)** je sigurnosni protokol koji se fokusira na regulisanje dozvola aplikacija. Njegova osnovna uloga je da zaštiti osetljive funkcije poput **usluga lokacije, kontakata, fotografija, mikrofona, kamere, pristupačnosti i punog pristupa disku**. Zahtevajući eksplicitnu saglasnost korisnika pre nego što aplikacija dobije pristup ovim elementima, TCC poboljšava privatnost i kontrolu korisnika nad njihovim podacima.
-Korisnici se susreću sa TCC-om kada aplikacije zatraže pristup zaštićenim funkcijama. To je vidljivo kroz prozor koji korisnicima omogućava da **odobre ili odbiju pristup**. Osim toga, TCC omogućava direktna korisnička dejstva, poput **prevlačenja i ispuštanja fajlova u aplikaciju**, kako bi se odobrio pristup određenim fajlovima, osiguravajući da aplikacije imaju pristup samo onome što je eksplicitno dozvoljeno.
+Korisnici se susreću sa TCC-om kada aplikacije zatraže pristup zaštićenim funkcijama. To je vidljivo kroz prozor koji korisnicima omogućava da **odobre ili odbiju pristup**. Osim toga, TCC omogućava direktna korisnička dejstva, poput **prevlačenja i ispuštanja fajlova u aplikaciju**, kako bi se odobrio pristup određenim fajlovima, obezbeđujući da aplikacije imaju pristup samo onome što je eksplicitno dozvoljeno.
![Primer TCC prozora](https://rainforest.engineering/images/posts/macos-tcc/tcc-prompt.png?1620047855)
-**TCC** upravlja **daemonom** smeštenim u `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` i konfigurisan u `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (registrovanje mach servisa `com.apple.tccd.system`).
+**TCC** upravlja **daemon**-om smeštenim u `/System/Library/PrivateFrameworks/TCC.framework/Support/tccd` i konfigurisan u `/System/Library/LaunchDaemons/com.apple.tccd.system.plist` (registrovanje mach servisa `com.apple.tccd.system`).
-Postoji **tccd u režimu korisnika** koji se pokreće za svakog prijavljenog korisnika, definisan u `/System/Library/LaunchAgents/com.apple.tccd.plist`, registrovanje mach servisa `com.apple.tccd` i `com.apple.usernotifications.delegate.com.apple.tccd`.
+Postoji **tccd u režimu korisnika** koji se pokreće po prijavljivanju korisnika, definisan u `/System/Library/LaunchAgents/com.apple.tccd.plist` registrovanjem mach servisa `com.apple.tccd` i `com.apple.usernotifications.delegate.com.apple.tccd`.
Ovde možete videti tccd koji se izvršava kao sistem i kao korisnik:
```bash
@@ -39,14 +39,14 @@ Dozvole se **nasleđuju od roditeljske** aplikacije i **dozvole** se **prate** n
Dozvole/zabrane se zatim čuvaju u nekim TCC bazama podataka:
* Sistemski široka baza podataka u **`/Library/Application Support/com.apple.TCC/TCC.db`**.
-* Ova baza podataka je **SIP zaštićena**, tako da samo SIP prekoračenje može da piše u nju.
+* Ova baza podataka je **SIP zaštićena**, tako da samo SIP prekidač može da piše u nju.
* Korisnička TCC baza podataka **`$HOME/Library/Application Support/com.apple.TCC/TCC.db`** za korisničke preference.
-* Ova baza podataka je zaštićena tako da samo procesi sa visokim TCC privilegijama poput Puna diskovna pristupa mogu da pišu u nju (ali nije zaštićena SIP-om).
+* Ova baza podataka je zaštićena tako da samo procesi sa visokim TCC privilegijama poput Puna disk pristupa mogu da pišu u nju (ali nije zaštićena SIP-om).
{% hint style="warning" %}
Prethodne baze podataka su takođe **TCC zaštićene za čitanje pristupa**. Dakle, **nećete moći da čitate** svoju redovnu korisničku TCC bazu podataka osim ako je to iz procesa sa TCC privilegijama.
-Međutim, zapamtite da će proces sa ovim visokim privilegijama (kao što su **FDA** ili **`kTCCServiceEndpointSecurityClient`**) moći da piše u korisničku TCC bazu podataka.
+Međutim, zapamtite da će proces sa ovim visokim privilegijama (kao što su **FDA** ili **`kTCCServiceEndpointSecurityClient`**) moći da piše u korisničku TCC bazu podataka
{% endhint %}
* Postoji **treća** TCC baza podataka u **`/var/db/locationd/clients.plist`** koja označava klijente koji su dozvoljeni da **pristupaju lokacionim uslugama**.
@@ -128,13 +128,13 @@ Proverom oba baze podataka možete proveriti dozvole koje je aplikacija dozvolil
* **`service`** je TCC **string reprezentacija dozvole**
* **`client`** je **bundle ID** ili **putanja do binarnog fajla** sa dozvolama
-* **`client_type`** označava da li je u pitanju identifikator paketa(0) ili apsolutna putanja(1)
+* **`client_type`** označava da li je to identifikator paketa(0) ili apsolutna putanja(1)
-Kako izvršiti ako je u pitanju apsolutna putanja
+Kako izvršiti ako je to apsolutna putanja
-Jednostavno uradite **`launctl load you_bin.plist`**, sa plist fajlom kao što je:
+Samo uradite **`launctl load you_bin.plist`**, sa plistom kao što je:
```xml
@@ -175,7 +175,7 @@ Jednostavno uradite **`launctl load you_bin.plist`**, sa plist fajlom kao što j
* **`auth_value`** može imati različite vrednosti: denied(0), unknown(1), allowed(2), ili limited(3).
* **`auth_reason`** može imati sledeće vrednosti: Error(1), User Consent(2), User Set(3), System Set(4), Service Policy(5), MDM Policy(6), Override Policy(7), Missing usage string(8), Prompt Timeout(9), Preflight Unknown(10), Entitled(11), App Type Policy(12)
-* Polje **csreq** služi da naznači kako proveriti binarnu datoteku za izvršavanje i dodeliti dozvole TCC-a:
+* Polje **csreq** služi da naznači kako proveriti binarnu datoteku za izvršavanje i dodeliti TCC dozvole:
```bash
# Query to get cserq in printable hex
select service, client, hex(csreq) from access where auth_value=2;
@@ -209,7 +209,9 @@ tccutil reset All
```
### Provere potpisa TCC
-TCC **baza podataka** čuva **Bundle ID** aplikacije, ali takođe čuva i **informacije** o **potpisu** kako bi se **proverilo** da li aplikacija koja traži dozvolu za korišćenje određene funkcije jeste tačno određena aplikacija.
+TCC **baza podataka** čuva **Bundle ID** aplikacije, ali takođe **čuva** **informacije** o **potpisu** kako bi **proverila** da li aplikacija koja traži dozvolu za korišćenje određene funkcije je tačno ona koja tvrdi da jeste.
+
+{% code overflow="wrap" %}
```bash
# From sqlite
sqlite> select service, client, hex(csreq) from access where auth_value=2;
@@ -224,7 +226,7 @@ csreq -t -r /tmp/telegram_csreq.bin
{% endcode %}
{% hint style="warning" %}
-Stoga, druge aplikacije koje koriste isto ime i identifikator paketa neće moći pristupiti odobrenim dozvolama dodeljenim drugim aplikacijama.
+Zbog toga druge aplikacije koje koriste isto ime i identifikator paketa neće moći pristupiti odobrenim dozvolama date drugim aplikacijama.
{% endhint %}
### Ovlašćenja i TCC Dozvole
@@ -232,9 +234,9 @@ Stoga, druge aplikacije koje koriste isto ime i identifikator paketa neće moći
Aplikacije **ne samo da moraju** zatražiti i dobiti **pristup** određenim resursima, već takođe moraju **imati relevantna ovlašćenja**.\
Na primer, **Telegram** ima ovlašćenje `com.apple.security.device.camera` da zatraži **pristup kameri**. Aplikacija koja **nema** ovo **ovlašćenje neće moći** pristupiti kameri (i korisnik neće biti ni pitao za dozvole).
-Međutim, da bi aplikacije **pristupile** određenim korisničkim fasciklama, kao što su `~/Desktop`, `~/Downloads` i `~/Documents`, **ne moraju** imati određena **ovlašćenja**. Sistem će transparentno upravljati pristupom i **pitati korisnika** po potrebi.
+Međutim, da bi aplikacije **pristupile** određenim korisničkim fasciklama, kao što su `~/Desktop`, `~/Downloads` i `~/Documents`, **ne moraju** imati određena **ovlašćenja.** Sistem će transparentno upravljati pristupom i **pitati korisnika** po potrebi.
-Apple-ove aplikacije **neće generisati prozore sa upitima**. One sadrže **unapred odobrena prava** na svojoj listi ovlašćenja, što znači da **nikada neće generisati iskačući prozor**, **niti** će se pojaviti u bilo kojoj od **TCC baza podataka.** Na primer:
+Apple-ove aplikacije **neće generisati prozore sa upitima**. One sadrže **unapred odobrena prava** na svojoj listi **ovlašćenja**, što znači da **nikada neće generisati iskačući prozor**, **niti** će se pojaviti u bilo kojoj od **TCC baza podataka.** Na primer:
```bash
codesign -dv --entitlements :- /System/Applications/Calendar.app
[...]
@@ -261,7 +263,7 @@ Neke TCC dozvole su: kTCCServiceAppleEvents, kTCCServiceCalendar, kTCCServicePho
### Korisnička namera / com.apple.macl
-Kao što je ranije pomenuto, moguće je **dodeliti pristup aplikaciji za datoteku prevlačenjem i ispuštanjem**. Ovaj pristup neće biti naveden u bilo kojoj TCC bazi podataka već kao **prošireni** **atribut datoteke**. Ovaj atribut će **čuvati UUID** odobrenje aplikacije:
+Kao što je ranije pomenuto, moguće je **dodeliti pristup aplikaciji fajlu prevlačenjem i ispuštanjem**. Ovaj pristup neće biti naveden u bilo kojoj TCC bazi podataka već kao **prošireni** **atribut fajla**. Ovaj atribut će **čuvati UUID** odobrene aplikacije:
```bash
xattr Desktop/private.txt
com.apple.macl
@@ -288,7 +290,7 @@ Prošireni atribut `com.apple.macl` **ne može biti očišćen** kao ostali pro
### Ubacivanje u TCC
-Ako u nekom trenutku uspete da dobijete pristup za pisanje preko TCC baze podataka, možete koristiti nešto slično sledećem da dodate unos (uklonite komentare):
+Ako u nekom trenutku uspete da dobijete pristup pisanju preko TCC baze podataka, možete koristiti nešto slično sledećem kako biste dodali unos (uklonite komentare):
@@ -345,9 +347,9 @@ Ako ste uspeli da uđete u aplikaciju sa nekim TCC dozvolama, proverite sledeću
### Automatizacija (Finder) do FDA\*
Ime TCC dozvole za Automatizaciju je: **`kTCCServiceAppleEvents`**\
-Ova specifična TCC dozvola takođe ukazuje na **aplikaciju koja može biti upravljana** unutar TCC baze podataka (tako da dozvole ne dozvoljavaju upravljanje svime).
+Ova specifična TCC dozvola takođe pokazuje **aplikaciju koja može biti upravljana** unutar TCC baze podataka (tako da dozvole ne dozvoljavaju upravljanje svime).
-**Finder** je aplikacija koja **uvek ima FDA** (čak i ako se ne prikazuje u korisničkom interfejsu), tako da ako imate **Automatizaciju** privilegije nad njom, možete zloupotrebiti njene privilegije da **izvršava određene akcije**.\
+**Finder** je aplikacija koja **uvek ima FDA** (čak i ako se ne prikazuje u korisničkom interfejsu), tako da ako imate **Automatizaciju** privilegije nad njom, možete zloupotrebiti njene privilegije da **je naterate da obavi neke radnje**.\
U ovom slučaju, vaša aplikacija bi trebalo da ima dozvolu **`kTCCServiceAppleEvents`** nad **`com.apple.Finder`**.
{% tabs %}
@@ -381,14 +383,14 @@ EOD
Možete zloupotrebiti ovo da **napišete svoju bazu podataka korisnika TCC**.
{% hint style="warning" %}
-Sa ovlašćenjem moći ćete **zatražiti od Findera pristup ograničenim fasciklama TCC** i dati vam fajlove, ali koliko znam, **nećete moći naterati Finder da izvrši proizvoljan kod** kako biste potpuno zloupotrebili njegov pristup FDA.
+Sa ovlašćenjem ćete moći **zatražiti od Findera pristup TCC ograničenim fasciklama** i dati vam fajlove, ali koliko znam nećete moći da naterate Finder da izvrši proizvoljan kod kako biste potpuno zloupotrebili njegov pristup FDA.
Stoga, nećete moći zloupotrebiti sve mogućnosti FDA.
{% endhint %}
Ovo je TCC prozor za dobijanje privilegija automatizacije nad Finderom:
-
+
{% hint style="danger" %}
Imajte na umu da zato što aplikacija **Automator** ima TCC ovlašćenje **`kTCCServiceAppleEvents`**, može **kontrolisati bilo koju aplikaciju**, poput Findera. Dakle, imajući ovlašćenje za kontrolu Automatora, takođe biste mogli kontrolisati **Finder** pomoću koda kao što je prikazano ispod:
@@ -418,11 +420,11 @@ EOD
```
-Isto se dešava i sa **Script Editor aplikacijom,** može kontrolisati Finder, ali korišćenjem AppleScript-a ne možete ga naterati da izvrši skriptu.
+Isto važi i za **Script Editor aplikaciju,** ona može kontrolisati Finder, ali korišćenjem AppleScript-a ne možete je naterati da izvrši skriptu.
### Automatizacija (SE) ka nekim TCC
-**System Events može kreirati Folder Actions, a Folder actions mogu pristupiti nekim TCC folderima** (Desktop, Documents & Downloads), tako da se skripta poput sledeće može koristiti za zloupotrebu ovog ponašanja:
+**System Events može kreirati Folder Actions, a Folder Actions mogu pristupiti nekim TCC folderima** (Desktop, Documents & Downloads), tako da se skripta poput sledeće može koristiti za zloupotrebu ovog ponašanja:
```bash
# Create script to execute with the action
cat > "/tmp/script.js" <
@@ -578,7 +578,7 @@ DozvoljeneAplikacijeLista.plist:
CREATE OR REPLACE FUNCTION public.create_subscription(IN subscription_name text,IN host_ip text,IN portnum text,IN password text,IN username text,IN db_name text,IN publisher_name text)
RETURNS text
@@ -668,22 +696,22 @@ PERFORM dblink_disconnect();
…
-Kako je [**objašnjeno u dokumentaciji**](https://www.postgresql.org/docs/current/sql-createfunction.html), funkcija sa **SECURITY DEFINER** se izvršava sa privilegijama **korisnika koji je vlasnik**. Stoga, ako je funkcija **ranjiva na SQL Injection** ili vrši **privilegovane akcije sa parametrima koje kontroliše napadač**, može biti zloupotrebljena za **povećanje privilegija unutar postgresa**.
+Kako je [**objašnjeno u dokumentaciji**](https://www.postgresql.org/docs/current/sql-createfunction.html), funkcija sa **SECURITY DEFINER** se izvršava sa privilegijama **korisnika koji je vlasnik**. Stoga, ako je funkcija **ranjiva na SQL Injection** ili vrši **privilegovane akcije sa parametrima koje kontroliše napadač**, može biti zloupotrebljena za **povećanje privilegija unutar postgres-a**.
-Na liniji 4 prethodnog koda možete videti da funkcija ima zastavicu **SECURITY DEFINER**.
+Na liniji 4 prethodnog koda možete videti da funkcija ima oznaku **SECURITY DEFINER**.
```sql
CREATE SUBSCRIPTION test3 CONNECTION 'host=127.0.0.1 port=5432 password=a
user=ibm dbname=ibmclouddb sslmode=require' PUBLICATION test2_publication
WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
```
-### Izvršite komande:
+I zatim **izvršite komande**:
-### Provalite BruteForce sa PL/pgSQL
+### Prođite BruteForce sa PL/pgSQL
-**PL/pgSQL** je **potpuno opremljen programski jezik** koji nudi veću proceduralnu kontrolu u poređenju sa SQL-om. Omogućava korišćenje **petlji** i drugih **kontrolnih struktura** radi poboljšanja logike programa. Pored toga, **SQL naredbe** i **okidači** imaju mogućnost da pozovu funkcije koje su kreirane korišćenjem **PL/pgSQL jezika**. Ova integracija omogućava sveobuhvatan i fleksibilan pristup programiranju baze podataka i automatizaciji.\
-**Možete zloupotrebiti ovaj jezik kako biste zatražili od PostgreSQL-a da provalite korisničke podatke.**
+**PL/pgSQL** je **potpuno opremljeni programski jezik** koji nudi veću proceduralnu kontrolu u poređenju sa SQL-om. Omogućava korišćenje **petlji** i drugih **kontrolnih struktura** radi poboljšanja logike programa. Pored toga, **SQL naredbe** i **okidači** imaju mogućnost da pozovu funkcije koje su kreirane korišćenjem **PL/pgSQL jezika**. Ova integracija omogućava sveobuhvatan i fleksibilan pristup programiranju baze podataka i automatizaciji.\
+**Možete zloupotrebiti ovaj jezik kako biste zatražili od PostgreSQL-a da brute-force-uje korisničke podatke.**
{% content-ref url="../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md" %}
[pl-pgsql-password-bruteforce.md](../pentesting-web/sql-injection/postgresql-injection/pl-pgsql-password-bruteforce.md)
@@ -692,23 +720,23 @@ WITH (create_slot = false); INSERT INTO public.test3(data) VALUES(current_user);
### Povećanje privilegija pisanjem preko internih PostgreSQL tabela
{% hint style="info" %}
-Sledeći vektor povećanja privilegija je posebno koristan u kontekstima ograničenih SQLi, jer se svi koraci mogu izvršiti kroz ugnježdene SELECT naredbe.
+Sledeći vektor povećanja privilegija je posebno koristan u kontekstima ograničenih SQLi, jer se svi koraci mogu izvršiti kroz ugnježdene SELECT naredbe
{% endhint %}
-Ako možete **čitati i pisati fajlove servera PostgreSQL-a**, možete **postati superkorisnik** pisanjem preko PostgreSQL fajlnoda na disku, koji je povezan sa internom tabelom `pg_authid`.
+Ako možete **čitati i pisati fajlove servera PostgreSQL-a**, možete **postati superkorisnik** pisanjem preko PostgreSQL on-disk filenode-a, koji je povezan sa internom tabelom `pg_authid`.
Pročitajte više o **ovoj tehnici** [**ovde**](https://adeadfed.com/posts/updating-postgresql-data-without-update/)**.**
Koraci napada su:
1. Dobijanje PostgreSQL direktorijuma sa podacima
-2. Dobijanje relativne putanje do fajlnoda, povezanog sa tabelom `pg_authid`
-3. Preuzimanje fajlnoda kroz funkcije `lo_*`
+2. Dobijanje relativne putanje do filenode-a, povezanog sa tabelom `pg_authid`
+3. Preuzimanje filenode-a kroz funkcije `lo_*`
4. Dobijanje tipa podataka, povezanog sa tabelom `pg_authid`
-5. Koristite [PostgreSQL Editor Fajlnoda](https://github.com/adeadfed/postgresql-filenode-editor) da [uredite fajlnod](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table); postavite sve `rol*` boolean zastave na 1 za puna ovlašćenja.
-6. Ponovo otpremite uređeni fajlnod putem funkcija `lo_*`, i prepišite originalni fajl na disku
-7. _(Po želji)_ Obrišite keširanu tabelu iz memorije pokretanjem skupog SQL upita
-8. Sada biste trebali imati privilegije potpunog superadministratora.
+5. Koristite [PostgreSQL Filenode Editor](https://github.com/adeadfed/postgresql-filenode-editor) da [uredite filenode](https://adeadfed.com/posts/updating-postgresql-data-without-update/#privesc-updating-pg\_authid-table); postavite sve `rol*` boolean zastave na 1 za puna ovlašćenja.
+6. Ponovo otpremite uređeni filenode putem funkcija `lo_*`, i prepišite originalni fajl na disku
+7. _(Opciono)_ Obrišite keširanu tabelu iz memorije pokretanjem skupog SQL upita
+8. Sada biste trebali imati privilegije potpunog superadmina.
## **POST**
```
@@ -718,9 +746,9 @@ msf> use auxiliary/admin/postgres/postgres_readfile
msf> use exploit/linux/postgres/postgres_payload
msf> use exploit/windows/postgres/postgres_payload
```
-### logovanje
+### beleženje
-Unutar fajla _**postgresql.conf**_ možete omogućiti logove postgresql baze podataka menjajući:
+Unutar fajla _**postgresql.conf**_ možete omogućiti postgresql zapise menjajući:
```bash
log_statement = 'all'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
@@ -733,8 +761,8 @@ Zatim, **ponovo pokrenite servis**.
### pgadmin
-[pgadmin](https://www.pgadmin.org) je platforma za administraciju i razvoj za PostgreSQL.\
-Možete pronaći **šifre** unutar _**pgadmin4.db**_ datoteke\
+[pgadmin](https://www.pgadmin.org) je platforma za administraciju i razvoj PostgreSQL baze podataka.\
+Možete pronaći **šifre** unutar _**pgadmin4.db**_ fajla.\
Možete ih dešifrovati koristeći _**decrypt**_ funkciju unutar skripte: [https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py](https://github.com/postgres/pgadmin4/blob/master/web/pgadmin/utils/crypto.py)
```bash
sqlite3 pgadmin4.db ".schema"
@@ -744,6 +772,6 @@ string pgadmin4.db
```
### pg\_hba
-Klijentska autentikacija u PostgreSQL-u se upravlja kroz konfiguracioni fajl nazvan **pg\_hba.conf**. Ovaj fajl sadrži niz zapisa, pri čemu svaki specificira tip konekcije, opseg IP adresa klijenta (ako je primenljivo), ime baze podataka, korisničko ime i metod autentikacije koji se koristi za povezivanje. Prvi zapis koji se poklapa sa tipom konekcije, adresom klijenta, traženom bazom podataka i korisničkim imenom se koristi za autentikaciju. Ne postoji rezervni ili rezervni zapis ako autentikacija ne uspe. Ako nijedan zapis ne odgovara, pristup je odbijen.
+Klijentska autentikacija u PostgreSQL-u se upravlja kroz konfiguracioni fajl nazvan **pg\_hba.conf**. Ovaj fajl sadrži niz zapisa, pri čemu svaki specificira tip konekcije, opseg IP adresa klijenta (ako je primenljivo), ime baze podataka, korisničko ime i metod autentikacije koji se koristi za povezivanje. Prvi zapis koji se poklapa sa tipom konekcije, adresom klijenta, traženom bazom podataka i korisničkim imenom se koristi za autentikaciju. Ne postoji rezervna opcija ako autentikacija ne uspe. Ako nijedan zapis ne odgovara, pristup je odbijen.
-Dostupni metodi autentikacije zasnovani na lozinkama u pg\_hba.conf su **md5**, **crypt** i **password**. Ovi metodi se razlikuju u načinu prenosa lozinke: MD5 heširan, kriptovano enkriptovan ili čisti tekst. Važno je napomenuti da metoda crypt ne može biti korišćena sa lozinkama koje su enkriptovane u pg\_authid.
+Dostupni metodi autentikacije zasnovani na lozinkama u pg\_hba.conf su **md5**, **crypt** i **password**. Ovi metodi se razlikuju u načinu prenosa lozinke: MD5 heširanje, kriptovano šifrovanje ili čisti tekst. Važno je napomenuti da metoda crypt ne može biti korišćena sa lozinkama koje su enkriptovane u pg\_authid.
diff --git a/network-services-pentesting/pentesting-rdp.md b/network-services-pentesting/pentesting-rdp.md
index 0abcd2f72..a7fbe656e 100644
--- a/network-services-pentesting/pentesting-rdp.md
+++ b/network-services-pentesting/pentesting-rdp.md
@@ -10,19 +10,19 @@ Drugi načini podrške HackTricks-u:
* 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.
+* **Podelite svoje hakovanje trikova slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
-
+
-**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od izviđanja do izveštavanja. Mi ne zamenjujemo pentestere - mi razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju ljuske i zabavljaju se.
+**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od izviđanja do izveštavanja. Mi ne zamenjujemo pentestere - mi razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju školjke i zabavljaju se.
{% embed url="https://pentest-tools.com/" %}
## Osnovne informacije
-Razvijen od strane Microsoft-a, **Remote Desktop Protocol** (**RDP**) je dizajniran da omogući grafičku interfejsnu vezu između računara preko mreže. Da bi se uspostavila takva veza, korisnik koristi **RDP** klijentski softver, dok je istovremeno potrebno da udaljeni računar koristi **RDP** serverski softver. Ovaj setup omogućava besprekornu kontrolu i pristup desktop okruženju udaljenog računara, suštinski donoseći njegov interfejs na lokalni uređaj korisnika.
+Razvijen od strane Microsoft-a, **Remote Desktop Protocol** (**RDP**) je dizajniran da omogući grafičku interfejsnu vezu između računara preko mreže. Da bi se uspostavila takva veza, korisnik koristi **RDP** klijentski softver, dok je istovremeno potrebno da udaljeni računar koristi **RDP** serverski softver. Ovaj setup omogućava besprekorno upravljanje i pristup desktop okruženju udaljenog računara, suštinski donoseći njegov interfejs na lokalni uređaj korisnika.
**Podrazumevani port:** 3389
```
@@ -67,9 +67,9 @@ rdp\_check.py iz impacket-a vam omogućava da proverite da li su neki podaci za
```bash
rdp_check Preusmerava na drugo domensko ime koje hostuje SPF politiku, omogućava više domena da dele istu SPF politiku. Korisno je kada radite sa velikim brojem domena koji dele istu infrastrukturu e-pošte.
SPF politika domena naznačena u mehanizmu preusmeravanja će biti korišćena.
| +| PTR | Ako je ime domena (PTR zapis) za adresu klijenta u datom domenu i to ime domena se rešava na adresu klijenta (provera obrnutog DNS-a), podudara se. Ovaj mehanizam se ne preporučuje i treba ga izbegavati, ako je moguće. | +| EXISTS | Ako dato ime domena vodi ka bilo kojoj adresi, podudara se (bez obzira na adresu na koju se rešava). Ovo se retko koristi. Uz SPF makro jezik nudi složenije podudaranje poput DNSBL-upita. | +| INCLUDE | Referenca na politiku drugog domena. Ako politika tog domena prođe, ovaj mehanizam prolazi. Međutim, ako uključena politika ne uspe, obrada se nastavlja. Da bi se potpuno delegiralo politici drugog domena, mora se koristiti proširenje preusmeravanja. | +| REDIRECT |Preusmeravanje je pokazivač na drugo ime domena koje hostuje SPF politiku, omogućava više domena da dele istu SPF politiku. Korisno je kada radite sa velikim brojem domena koji dele istu infrastrukturu e-pošte.
SPF politika domena naznačena u mehanizmu preusmeravanja će biti korišćena.
| Takođe je moguće identifikovati **Kvalifikatore** koji ukazuju **šta treba uraditi ako se mehanizam podudara**. Podrazumevano se koristi **kvalifikator "+"** (tako da ako se podudara bilo koji mehanizam, to znači da je dozvoljeno).\ Obično ćete primetiti **na kraju svake SPF politike** nešto poput: **\~all** ili **-all**. Ovo se koristi da bi se naznačilo da **ako pošiljalac ne odgovara nijednoj SPF politici, trebalo bi označiti e-poštu kao nepoverljivu (\~) ili odbiti (-) e-poštu.** @@ -296,9 +296,9 @@ Svaki mehanizam unutar politike može biti prefiksan jednim od četiri kvalifika * **`+`**: Odgovara rezultatu PROLAZ. Podrazumevano, mehanizmi pretpostavljaju ovaj kvalifikator, čineći `+mx` ekvivalentnim `mx`. * **`?`**: Predstavlja NEUTRALAN rezultat, tretiran slično kao NIKO (bez specifične politike). * **`~`**: Označava SOFTFAIL, služeći kao srednje rešenje između NEUTRALNO i NEUSPEH. E-poruke koje zadovolje ovaj rezultat obično se prihvataju ali se označavaju prema tome. -* **`-`**: Označava NEUSPEH, sugerišući da bi e-pošta trebalo potpuno odbiti. +* **`-`**: Označava NEUSPEH, sugerišući da bi e-pošta trebalo direktno odbiti. -U sledećem primeru, ilustrovana je **SPF politika google.com**. Obratite pažnju na uključivanje SPF politika iz različitih domena unutar prve SPF politike: +U sledećem primeru, **SPF politika google.com** je ilustrovana. Obratite pažnju na uključivanje SPF politika iz različitih domena unutar prve SPF politike: ```shell-session dig txt google.com | grep spf google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all" @@ -319,13 +319,13 @@ _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:1 ``` Tradicionalno je bilo moguće lažirati bilo koje ime domena koje nije imalo tačan/nijedan SPF zapis. **Danas**, ako **e-pošta dolazi sa domena bez validnog SPF zapisa**, verovatno će biti **odbijena/označena kao nepoverljiva automatski**. -Za proveru SPF zapisa domena možete koristiti online alate poput: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) +Da biste proverili SPF domena, možete koristiti online alate poput: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) ### DKIM (DomainKeys Identified Mail) DKIM se koristi za potpisivanje odlaznih e-pošta, omogućavajući njihovu validaciju od strane spoljnih Mail Transfer Agents (MTA) putem dobijanja javnog ključa domena iz DNS-a. Taj javni ključ se nalazi u TXT zapisu domena. Da biste pristupili ovom ključu, morate znati i selektor i ime domena. -Na primer, za zahtevanje ključa, neophodni su ime domena i selektor. Oni se mogu pronaći u zaglavlju e-pošte `DKIM-Signature`, npr. `d=gmail.com;s=20120113`. +Na primer, zahtev za ključem, ime domena i selektor su neophodni. Oni se mogu pronaći u zaglavlju e-pošte `DKIM-Signature`, npr. `d=gmail.com;s=20120113`. Komanda za dobijanje ovih informacija može izgledati ovako: ```bash @@ -360,7 +360,7 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA | ruf | URI za prijavljivanje forenzičkih izveštaja | ruf=mailto:authfail@example.com | | rua | URI za prijavljivanje agregiranih izveštaja | rua=mailto:aggrep@example.com | | p | Politika za organizacioni domen | p=quarantine | -| sp | Politika za poddomene OD | sp=reject | +| sp | Politika za poddomene OD-a | sp=reject | | adkim | Režim poravnanja za DKIM | adkim=s | | aspf | Režim poravnanja za SPF | aspf=r | @@ -368,9 +368,9 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA **Od** [**ovde**](https://serverfault.com/questions/322949/do-spf-records-for-primary-domain-apply-to-subdomains)**.**\ Morate imati odvojene SPF zapise za svaki poddomen sa kog želite da šaljete poštu.\ -Sledeće je originalno objavljeno na openspf.org, koji je nekada bio odličan resurs za ovakve stvari. +Sledeće je originalno objavljeno na openspf.org, koji je nekada bio odličan resurs za ovu vrstu informacija. -> Pitanje o Demona: Šta je sa poddomenima? +> Pitanje Demona: Šta je sa poddomenima? > > Ako dobijem poštu sa pielovers.demon.co.uk, i nema SPF podataka za pielovers, da li treba da se vratim jedan nivo unazad i testiram SPF za demon.co.uk? Ne. Svaki poddomen na Demonu je drugačiji korisnik, i svaki korisnik može imati svoju politiku. Ne bi imalo smisla da se politika Demona automatski primenjuje na sve svoje korisnike; ako Demon želi to da uradi, može postaviti SPF zapise za svaki poddomen. > @@ -382,13 +382,13 @@ Ovo ima smisla - poddomen može biti u potpuno drugačijoj geografskoj lokaciji ### **Otvoreni Relej** -Prilikom slanja emailova, važno je osigurati da ne budu označeni kao spam. To se često postiže korišćenjem **relejnog servera koji je poveren od strane primaoca**. Međutim, čest izazov je što administratori možda nisu potpuno svesni koje **IP opsege je bezbedno dozvoliti**. Ovaj nedostatak razumevanja može dovesti do grešaka u postavljanju SMTP servera, rizik koji se često identifikuje u sigurnosnim procenama. +Prilikom slanja emailova, važno je osigurati da ne budu označeni kao spam. Ovo se često postiže korišćenjem **relejnog servera koji je poveren od strane primaoca**. Međutim, čest izazov je što administratori možda nisu potpuno svesni koje **IP opsege je bezbedno dozvoliti**. Ovaj nedostatak razumevanja može dovesti do grešaka prilikom postavljanja SMTP servera, rizik koji se često identifikuje u bezbednosnim procenama. -Rešenje koje neki administratori koriste kako bi izbegli probleme sa isporukom emailova, posebno u vezi sa komunikacijom sa potencijalnim ili postojećim klijentima, jeste da **dozvole konekcije sa bilo kog IP adrese**. Ovo se postiže konfigurisanjem parametra `mynetworks` SMTP servera da prihvati sve IP adrese, kako je prikazano ispod: +Rešenje koje neki administratori koriste kako bi izbegli probleme sa isporukom emailova, posebno u vezi sa komunikacijom sa potencijalnim ili postojećim klijentima, je da **dozvole konekcije sa bilo kog IP adrese**. Ovo se postiže konfigurisanjem parametra `mynetworks` SMTP servera da prihvati sve IP adrese, kako je prikazano ispod: ```bash mynetworks = 0.0.0.0/0 ``` -Za proveru da li je poštanski server otvoreni relej (što znači da može prosleđivati e-poštu sa bilo kog eksternog izvora), često se koristi alat `nmap`. On uključuje specifičan skript dizajniran za testiranje ovoga. Komanda za sprovođenje detaljnog skeniranja servera (na primer, sa IP adresom 10.10.10.10) na portu 25 korišćenjem `nmap`-a je: +Za proveru da li je poštanski server otvoren relej (što znači da može prosleđivati e-poštu sa bilo kog eksternog izvora), često se koristi alat `nmap`. On uključuje specifičan skript dizajniran za testiranje ovoga. Komanda za sprovođenje detaljnog skeniranja servera (na primer, sa IP adresom 10.10.10.10) na portu 25 korišćenjem `nmap`-a je: ```bash nmap -p25 --script smtp-open-relay 10.10.10.10 -v ``` @@ -413,8 +413,8 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com ``` {% hint style="warning" %} -Ako dobijete bilo koju grešku prilikom korišćenja dkim python lib prilikom parsiranja ključa slobodno koristite sledeći.\ -**NAPOMENA**: Ovo je samo brzo rešenje za brze provere u slučajevima kada iz nekog razloga openssl privatni ključ ne može da bude parsiran od strane dkim-a. +Ako dobijete bilo kakvu grešku prilikom korišćenja dkim python lib prilikom parsiranja ključa, slobodno koristite sledeći.\ +**NAPOMENA**: Ovo je samo brzo rešenje za obavljanje brzih provera u slučajevima kada iz nekog razloga openssl privatni ključ ne može da bude parsiran od strane dkim-a. ``` -----BEGIN RSA PRIVATE KEY----- MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt @@ -439,7 +439,7 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ== {% tabs %} {% tab title="PHP" %}# Ovo će poslati nepotpisanu poruku
-mail("vas_email@gmail.com", "Testni predmet!", "hej! Ovo je test", "Od: administrator@žrtva.com");
+mail("vas_email@gmail.com", "Test subjekat!", "hey! Ovo je test", "Od: administrator@victim.com");
{% endtab %}
@@ -522,7 +522,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix
-Obično, ako je instaliran, u `/etc/postfix/master.cf` se nalaze **skripte za izvršavanje** kada se na primer novi mejl primi od korisnika. Na primer, linija `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` znači da će se `/etc/postfix/filtering` izvršiti ako novi mejl bude primljen od korisnika mark.
+Obično, ako je instaliran, u `/etc/postfix/master.cf` se nalaze **skripte za izvršavanje** kada se na primer primi nova pošta od korisnika. Na primer, linija `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` znači da će se `/etc/postfix/filtering` izvršiti ako korisnik mark primi novu poštu.
Drugi konfiguracioni fajlovi:
```
@@ -585,9 +585,9 @@ Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'
```
-
+
-**Trenutno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest sa više od 20 alatki i funkcija koje idu od izviđanja do izveštavanja. Mi ne zamenjujemo pentestere - mi razvijamo prilagođene alatke, module za otkrivanje i eksploataciju kako bismo im vratili nešto vremena da dublje kopaju, otvaraju ljuske i zabavljaju se.
+**Trenutno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa preko 20 alatki i funkcija koje idu od izviđanja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alatke, module za otkrivanje i eksploataciju kako bismo im vratili nešto vremena da dublje kopaju, otvaraju ljuske i zabavljaju se.
{% embed url="https://pentest-tools.com/" %}
@@ -597,10 +597,10 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
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 PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRIJAVU**](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 **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.
+* **Podelite svoje hakovanje trikova slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
diff --git a/network-services-pentesting/pentesting-smtp/smtp-commands.md b/network-services-pentesting/pentesting-smtp/smtp-commands.md
index 4956eaf95..0656ba37b 100644
--- a/network-services-pentesting/pentesting-smtp/smtp-commands.md
+++ b/network-services-pentesting/pentesting-smtp/smtp-commands.md
@@ -14,9 +14,9 @@ Drugi načini podrške HackTricks-u:
-
+
-**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od rekonstrukcije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za otkrivanje i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju ljuske i zabavljaju se.
+**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od rekonstrukcije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za otkrivanje i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju ljuske i zabave se.
{% embed url="https://pentest-tools.com/" %}
@@ -38,22 +38,22 @@ Identifikuje primaoca emaila; ako ih ima više, komanda se jednostavno ponavlja
Ova SMTP komanda obaveštava udaljeni server o procenjenoj veličini (u bajtovima) priloženog emaila. Može se koristiti i za prijavljivanje maksimalne veličine poruke koju će server prihvatiti.
**DATA**\
-Sa DATA komandom počinje se prenositi sadržaj emaila; obično je praćen odgovorom 354 koji daje server, dajući dozvolu za početak stvarnog prenosa.
+Sa DATA komandom počinje prenos sadržaja emaila; obično je praćena odgovorom 354 koji daje server, dajući dozvolu za početak stvarnog prenosa.
**VRFY**\
-Server se pita da potvrdi da li određena email adresa ili korisničko ime zaista postoji.
+Traži se od servera da potvrdi da li određena email adresa ili korisničko ime zaista postoje.
**TURN**\
Ova komanda se koristi za invertovanje uloga između klijenta i servera, bez potrebe za pokretanjem nove konekcije.
**AUTH**\
-Sa AUTH komandom, klijent se autentifikuje serveru, dajući svoje korisničko ime i lozinku. To je još jedan sloj sigurnosti kako bi se garantovao pravilan prenos.
+Pomoću AUTH komande, klijent se autentifikuje serveru, dajući svoje korisničko ime i lozinku. To je još jedan sloj sigurnosti kako bi se garantovao pravilan prenos.
**RSET**\
Obaveštava server da će se trenutni prenos emaila završiti, iako razgovor SMTP-a neće biti zatvoren (kao u slučaju QUIT).
**EXPN**\
-Ova SMTP komanda traži potvrdu o identifikaciji liste za slanje.
+Ova SMTP komanda traži potvrdu o identifikaciji mailing liste.
**HELP**\
To je zahtev klijenta za nekim informacijama koje mogu biti korisne za uspešan prenos emaila.
@@ -61,9 +61,9 @@ To je zahtev klijenta za nekim informacijama koje mogu biti korisne za uspešan
**QUIT**\
Završava razgovor SMTP-a.
-
+
-**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od rekonstrukcije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za otkrivanje i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju ljuske i zabavljaju se.
+**Instantno dostupno podešavanje za procenu ranjivosti i testiranje proboja**. Pokrenite kompletan pentest od bilo kog mesta sa 20+ alata i funkcija koje idu od rekonstrukcije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za otkrivanje i eksploataciju kako bismo im vratili neko vreme da dublje kopaju, otvaraju ljuske i zabave se.
{% embed url="https://pentest-tools.com/" %}
diff --git a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
index 95b72216b..95f225858 100644
--- a/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
+++ b/network-services-pentesting/pentesting-smtp/smtp-smuggling.md
@@ -6,7 +6,7 @@
Drugi načini podrške HackTricks-u:
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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 **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
@@ -22,14 +22,14 @@ Ovaj tip ranjivosti je [**originalno otkriven u ovom postu**](https://sec-consul
Ovo je zato što u SMTP protokolu, **podaci poruke** koja se šalje putem e-pošte su kontrolisani od strane korisnika (napadača) koji bi mogao poslati posebno oblikovane podatke zloupotrebljavajući razlike u parserima koji će prokrijumčariti dodatne e-poruke u primaoca. Pogledajte ovaj ilustrovani primer iz originalnog posta:
-
+
### Kako
-Da bi iskoristio ovu ranjivost, napadač mora poslati neke podatke koje **Odlazni SMTP server smatra da je samo 1 e-pošta, ali Ulazni SMTP server misli da ima više e-poruka**.
+Da bi iskoristio ovu ranjivost, napadač mora poslati neke podatke koje **Odlazni SMTP server smatra da je samo 1 e-poruka, ali Ulazni SMTP server misli da ima više e-poruka**.
Istraživači su otkrili da različiti **Ulazni serveri smatraju različite karaktere kao kraj podataka** e-poruke koje Odlazni serveri ne smatraju.\
-Na primer, redovan kraj podataka je `\r\n.\r\n`. Ali ako Ulazni SMTP server takođe podržava `\n.\n`, napadač bi mogao samo dodati **te podatke u svoju e-poštu i početi da označava SMTP komande** novih kako bi je prokrijumčario baš kao na prethodnoj slici.
+Na primer, redovan kraj podataka je `\r\n.\r\n`. Ali ako Ulazni SMTP server takođe podržava `\n.\n`, napadač bi mogao samo dodati **te podatke u svoju e-poštu i početi da navodi SMTP komande** novih kako bi je prokrijumčario baš kao na prethodnoj slici.
Naravno, ovo bi moglo raditi samo ako **Odlazni SMTP server takođe ne tretira ove podatke** kao kraj podataka poruke, jer u tom slučaju će videti 2 e-poruke umesto samo 1, tako da je na kraju ovo nesinhronizacija koja se zloupotrebljava u ovoj ranjivosti.
@@ -38,7 +38,7 @@ Potencijalni podaci nesinhronizacije:
* `\n.\n`
* `\n.\r\n`
-Takođe obratite pažnju da se SPF zaobilazi jer ako prokrijumčarite e-poštu sa `admin@outlook.com` iz e-pošte sa `user@outlook.com`, **pošiljalac je i dalje `outlook.com`.**
+Takođe obratite pažnju da se SPF zaobilazi jer ako prokrijumčarite e-poruku sa `admin@outlook.com` iz e-pošte `user@outlook.com`, **pošiljalac je i dalje `outlook.com`.**
## **Reference**
@@ -50,7 +50,7 @@ Takođe obratite pažnju da se SPF zaobilazi jer ako prokrijumčarite e-poštu s
Drugi načini podrške HackTricks-u:
-* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
+* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](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 **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
diff --git a/network-services-pentesting/pentesting-snmp/README.md b/network-services-pentesting/pentesting-snmp/README.md
index f40083252..99738b5b0 100644
--- a/network-services-pentesting/pentesting-snmp/README.md
+++ b/network-services-pentesting/pentesting-snmp/README.md
@@ -1,4 +1,4 @@
-# 161,162,10161,10162/udp - Pentesting SNMP
+# 161,162,10161,10162/udp - Testiranje penetracije SNMP