Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-

This commit is contained in:
Translator
2025-08-18 14:21:02 +00:00
parent f55367735d
commit d3a9f1840b

View File

@@ -4,7 +4,7 @@
## Osnovne informacije
Identity pools igraju ključnu ulogu omogućavajući vašim korisnicima da **dobiju privremene akreditive**. Ovi akreditive su neophodni za pristup raznim AWS uslugama, uključujući, ali ne ograničavajući se na Amazon S3 i DynamoDB. Značajna karakteristika identity pools je njihova podrška za anonimne gostujuće korisnike i niz provajdera identiteta za autentifikaciju korisnika. Podržani provajderi identiteta uključuju:
Identity pools imaju ključnu ulogu omogućavajući vašim korisnicima da **dobiju privremene akreditive**. Ovi akreditivi su neophodni za pristup raznim AWS uslugama, uključujući, ali ne ograničavajući se na Amazon S3 i DynamoDB. Istaknuta karakteristika identity pools je njihova podrška za anonimne gostujuće korisnike i niz provajdera identiteta za autentifikaciju korisnika. Podržani provajderi identiteta uključuju:
- Amazon Cognito user pools
- Opcije prijave putem društvenih mreža kao što su Facebook, Google, Login with Amazon i Sign in with Apple
@@ -43,13 +43,13 @@ Ovo je **korisno za čuvanje informacija o korisniku** (koji će uvek koristiti
### Tools for pentesting
- [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.
- [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 identity pool-a, 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 identitetskog bazena i klijenta korisničkog bazena:
Primer korišćenja cognito\_\_attack za pokušaj kreiranja korisnika i svih privesc vektora protiv datog identity pool-a i korisničkog pool klijenta:
```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 identitetskog bazena.
- [Cognito Scanner](https://github.com/padok-team/cognito-scanner) je CLI alat u pythonu koji implementira različite napade na Cognito, uključujući neželjeno kreiranje naloga i eskalaciju identitetskog bazena.
#### Instalacija
```bash
@@ -71,11 +71,11 @@ $ cognito-scanner --help
```
Za više informacija proverite https://github.com/padok-team/cognito-scanner
## Pristup IAM rolama
## Pristupanje IAM rolama
### 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 brute force).
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).
> [!TIP]
> **IAM Cognito neautentifikovana uloga kreirana putem** se po defaultu zove `Cognito_<Ime identitetskog bazena>Unauth_Role`
@@ -112,7 +112,7 @@ aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --no-sign
```
> [!WARNING]
> Imajte na umu da po default-u neautentifikovani cognito **korisnik NE MOŽE imati nikakva prava, čak i ako su dodeljena putem politike**. Proverite sledeću sekciju.
> Imajte na umu da po defaultu neautentifikovani cognito **korisnik NE MOŽE imati nikakva prava, čak i ako su dodeljena putem politike**. Proverite sledeću sekciju.
### Poboljšan vs Osnovni tok autentifikacije
@@ -142,31 +142,45 @@ Imajući set IAM kredencijala, trebali biste proveriti [koje pristupe imate](../
> [!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 mogle biti dostupne **uloge** za **autentifikovane korisnike koji pristupaju Identity Pool-u**.
Takođe mogu postojati **uloge** dostupne za **autentifikovane korisnike koji pristupaju Identity Pool**.
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**.
Za to možda treba 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_<Ime Identity Pool-a>Auth_Role`
> **IAM Cognito autentifikovana uloga kreirana putem** se podrazumevano naziva `Cognito_<Ime Identity Pool>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 bi drugi tipovi provajdera identiteta takođe mogli biti konfigurisani).
U svakom slučaju, **sledeći primer** očekuje da ste se već prijavili unutar **Cognito User Pool** koji se koristi za pristup Identity Pool-u (ne zaboravite da se drugi tipovi provajdera identiteta takođe mogu konfigurisati).
<pre class="language-bash"><code class="lang-bash">aws cognito-identity get-id \
<pre class="language-bash"><code class="lang-bash">
# Ažurirani format
aws cognito-identity get-id \
--identity-pool-id <identity_pool_id> \
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
--logins '{"cognito-idp.<region>.amazonaws.com/<user_pool_id>": "<ID_TOKEN>"}'
# 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>
--logins '{"cognito-idp.<region>.amazonaws.com/<user_pool_id>": "<ID_TOKEN>"}'
# 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> \
<strong> --custom-role-arn <role_arn> \
</strong> --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
--custom-role-arn <role_arn> \
--logins '{"cognito-idp.<region>.amazonaws.com/<user_pool_id>": "<ID_TOKEN>"}'
</code></pre>
> **Zastarjeli format** — ovi možda više ne rade sa trenutnim AWS CLI:
<pre class="language-bash"><code class="lang-bash">
aws cognito-identity get-id \
--identity-pool-id <identity_pool_id> \
--logins cognito-idp.<region>.amazonaws.com/<user_pool_id>=<ID_TOKEN>
aws cognito-identity get-credentials-for-identity \
--identity-id <identity_id> \
--logins cognito-idp.<region>.amazonaws.com/<user_pool_id>=<ID_TOKEN>
aws cognito-identity get-credentials-for-identity \
--identity-id <identity_id> \
--custom-role-arn <role_arn> \
--logins cognito-idp.<region>.amazonaws.com/<user_pool_id>=<ID_TOKEN>
</code></pre>
> [!WARNING]