mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 11:07:37 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-
This commit is contained in:
@@ -4,13 +4,13 @@
|
||||
|
||||
## Osnovne informacije
|
||||
|
||||
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:
|
||||
Identity pools imaju 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. 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
|
||||
- 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 koje autentifikuje programer
|
||||
- Identiteti koje autentifikuju programeri
|
||||
```python
|
||||
# Sample code to demonstrate how to integrate an identity provider with an identity pool can be structured as follows:
|
||||
import boto3
|
||||
@@ -45,7 +45,7 @@ Ovo je **korisno za čuvanje informacija o korisniku** (koji će uvek koristiti
|
||||
|
||||
- [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.
|
||||
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 stranicu [Pacu](https://github.com/RhinoSecurityLabs/pacu).
|
||||
|
||||
#### Usage
|
||||
|
||||
@@ -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 pythonu 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 python-u koji implementira različite napade na Cognito, uključujući neželjeno kreiranje naloga i eskalaciju identiteta.
|
||||
|
||||
#### Instalacija
|
||||
```bash
|
||||
@@ -71,16 +71,16 @@ $ cognito-scanner --help
|
||||
```
|
||||
Za više informacija proverite https://github.com/padok-team/cognito-scanner
|
||||
|
||||
## Pristupanje IAM rolama
|
||||
## Pristup 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 bruteforce).
|
||||
Jedina stvar koju napadač treba da zna da bi **dobio AWS kredencijale** u Cognito aplikaciji kao neautentifikovani korisnik je **ID identiteta**, 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`
|
||||
> **IAM Cognito neautentifikovana uloga kreirana putem se zove** po defaultu `Cognito_<Ime identiteta>Unauth_Role`
|
||||
|
||||
Ako pronađete ID identitetskog bazena hardkodiran i omogućava neautentifikovanim korisnicima, možete dobiti AWS kredencijale sa:
|
||||
Ako pronađete ID identiteta hardkodiran i omogućava neautentifikovanim korisnicima, možete dobiti AWS kredencijale sa:
|
||||
```python
|
||||
import requests
|
||||
|
||||
@@ -142,14 +142,14 @@ 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 mogu postojati **uloge** dostupne za **autentifikovane korisnike koji pristupaju Identity Pool**.
|
||||
Takođe bi mogle biti dostupne **uloge** za **autentifikovane korisnike koji pristupaju Identity Pool**.
|
||||
|
||||
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**.
|
||||
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 **napraviti novog korisnika sami**.
|
||||
|
||||
> [!TIP]
|
||||
> **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** 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** koji se koristi za pristup Identity Pool-u (ne zaboravite da bi drugi tipovi provajdera identiteta takođe mogli biti konfigurisani).
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash">
|
||||
# Ažurirani format
|
||||
@@ -167,7 +167,7 @@ aws cognito-identity get-credentials-for-identity \
|
||||
--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:
|
||||
> **Zastarjeli format** — ovi možda više ne funkcionišu sa trenutnim AWS CLI:
|
||||
<pre class="language-bash"><code class="lang-bash">
|
||||
aws cognito-identity get-id \
|
||||
--identity-pool-id <identity_pool_id> \
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
### `cloudtasks.tasks.create`, `iam.serviceAccounts.actAs`
|
||||
|
||||
Napadač sa ovim dozvolama može **imitirati druge servisne naloge** kreiranjem zadataka koji se izvršavaju sa identitetom određenog servisnog naloga. To omogućava slanje **autentifikovanih HTTP zahteva ka IAM-zaštićenim Cloud Run ili Cloud Functions** servisima.
|
||||
Napadač sa ovim dozvolama može **imitirati druge servisne naloge** kreiranjem zadataka koji se izvršavaju sa identitetom specificiranog servisnog naloga. Ovo omogućava slanje **autentifikovanih HTTP zahteva ka IAM-zaštićenim Cloud Run ili Cloud Functions** servisima.
|
||||
```bash
|
||||
gcloud tasks create-http-task \
|
||||
task-$(date '+%Y%m%d%H%M%S') \
|
||||
|
||||
Reference in New Issue
Block a user