mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-26 20:54:14 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# Cognito Identiteitspoele
|
||||
# Cognito Identity Pools
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te verkry. Hierdie geloofsbriewe is noodsaaklik om toegang te verkry tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerkelijke kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in:
|
||||
Identiteitspoele speel 'n belangrike rol deur jou gebruikers in staat te stel om **tydelike geloofsbriewe** te verkry. Hierdie geloofsbriewe is noodsaaklik om toegang te verkry tot verskeie AWS-dienste, insluitend maar nie beperk tot Amazon S3 en DynamoDB nie. 'n Opmerklike kenmerk van identiteitspoele is hul ondersteuning vir beide anonieme gasgebruikers en 'n verskeidenheid identiteitsverskaffers vir gebruikersverifikasie. Die ondersteunde identiteitsverskaffers sluit in:
|
||||
|
||||
- Amazon Cognito gebruikerspoele
|
||||
- Sosiale aanmeldopsies soos Facebook, Google, Aanmeld met Amazon, en Meld aan met Apple
|
||||
@@ -43,7 +43,7 @@ Boonop is die diens **cognito-sync** die diens wat toelaat om **hierdie inligtin
|
||||
|
||||
### Tools for pentesting
|
||||
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook gebruikersskepping outomatiseer (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteits pool akkrediteer, aanneembare rolle in id tokens, ens.
|
||||
- [Pacu](https://github.com/RhinoSecurityLabs/pacu), die AWS eksploitering raamwerk, sluit nou die "cognito\_\_enum" en "cognito\_\_attack" modules in wat die enumerasie van alle Cognito bates in 'n rekening outomatiseer en swak konfigurasies, gebruikersattributen wat vir toegangbeheer gebruik word, ens., merk, en ook gebruikersskepping outomatiseer (insluitend MFA-ondersteuning) en privilige-eskalasie gebaseer op aanpasbare aangepaste attributen, bruikbare identiteits pool krediete, aanneembare rolle in id tokens, ens.
|
||||
|
||||
Vir 'n beskrywing van die modules se funksies, sien deel 2 van die [blog pos](https://rhinosecuritylabs.com/aws/attacking-aws-cognito-with-pacu-p2). Vir installasie instruksies, sien die hoof [Pacu](https://github.com/RhinoSecurityLabs/pacu) bladsy.
|
||||
|
||||
@@ -55,7 +55,7 @@ Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gma
|
||||
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
|
||||
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX
|
||||
```
|
||||
Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening, te versamel:
|
||||
Voorbeeld cognito\_\_enum gebruik om al die gebruikerspoele, gebruikerspoel kliënte, identiteitspoele, gebruikers, ens. wat sigbaar is in die huidige AWS-rekening te versamel:
|
||||
```bash
|
||||
Pacu (new:test) > run cognito__enum
|
||||
```
|
||||
@@ -106,7 +106,7 @@ r = requests.post(url, json=params, headers=headers)
|
||||
|
||||
print(r.json())
|
||||
```
|
||||
Of jy kan die volgende **aws cli-opdragte** gebruik:
|
||||
Of jy kan die volgende **aws cli opdragte** gebruik:
|
||||
```bash
|
||||
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
|
||||
@@ -118,7 +118,7 @@ aws cognito-identity get-credentials-for-identity --identity-id <identity_id> --
|
||||
|
||||
Die vorige afdeling het die **standaard verbeterde verifikasievloei** gevolg. Hierdie vloei stel 'n **beperkende** [**sessiebeleid**](../../aws-basic-information/index.html#session-policies) in vir die IAM rol sessie wat gegenereer is. Hierdie beleid sal slegs toelaat dat die sessie [**die dienste van hierdie lys gebruik**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (selfs al het die rol toegang tot ander dienste).
|
||||
|
||||
Daar is egter 'n manier om dit te omseil; as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**.
|
||||
Daar is egter 'n manier om dit te omseil, as die **Identiteitspoel "Basiese (Klassieke) Vloei" geaktiveer het**, sal die gebruiker in staat wees om 'n sessie te verkry met behulp van daardie vloei wat **nie daardie beperkende sessiebeleid sal hê nie**.
|
||||
```bash
|
||||
# Get auth ID
|
||||
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
@@ -131,9 +131,9 @@ aws cognito-identity get-open-id-token --identity-id <identity_id> --no-sign
|
||||
aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<role_name>" --role-session-name sessionname --web-identity-token <token> --no-sign
|
||||
```
|
||||
> [!WARNING]
|
||||
> As jy hierdie **fout** ontvang, is dit omdat die **basiese vloei nie geaktiveer is nie (standaard)**
|
||||
> As jy hierdie **fout** ontvang, is dit omdat die **basiese vloei nie geaktiveer is (standaard)** nie.
|
||||
|
||||
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
|
||||
> `Daar het 'n fout voorgekom (InvalidParameterException) toe die GetOpenIdToken operasie aangeroep is: Basiese (klassieke) vloei is nie geaktiveer nie, gebruik asseblief die verbeterde vloei.`
|
||||
|
||||
As jy 'n stel IAM-akkrediteerings het, moet jy [kyk watter toegang jy het](../../index.html#whoami) en probeer om [privileges te verhoog](../../aws-privilege-escalation/index.html).
|
||||
|
||||
@@ -144,32 +144,46 @@ As jy 'n stel IAM-akkrediteerings het, moet jy [kyk watter toegang jy het](../..
|
||||
|
||||
Daar kan ook **rolle** beskikbaar wees vir **geverifieerde gebruikers wat toegang tot die Identiteitspoel** het.
|
||||
|
||||
Vir dit mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito-gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**.
|
||||
Hiervoor mag jy toegang tot die **identiteitsverskaffer** nodig hê. As dit 'n **Cognito Gebruikerspoel** is, kan jy dalk die standaardgedrag misbruik en **self 'n nuwe gebruiker skep**.
|
||||
|
||||
> [!TIP]
|
||||
> Die **IAM Cognito geverifieerde rol wat geskep is via** word standaard `Cognito_<Identiteitspoel naam>Auth_Role` genoem.
|
||||
> Die **IAM Cognito geverifieerde rol wat via geskep is** word standaard `Cognito_<Identiteitspoel naam>Auth_Role` genoem.
|
||||
|
||||
In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito-gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook gekonfigureer kan word nie).
|
||||
In elk geval, die **volgende voorbeeld** verwag dat jy reeds binne 'n **Cognito Gebruikerspoel** aangemeld het wat gebruik word om toegang tot die Identiteitspoel te verkry (moet nie vergeet dat ander tipes identiteitsverskaffers ook geconfigureer kan word nie).
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash">aws cognito-identity get-id \
|
||||
<pre class="language-bash"><code class="lang-bash">
|
||||
# Opgedateerde formaat
|
||||
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>"}'
|
||||
|
||||
# Kry die identity_id van die vorige opdrag se antwoord
|
||||
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>"}'
|
||||
|
||||
|
||||
# In die IdToken kan jy rolle vind waartoe 'n gebruiker toegang het as gevolg van Gebruikerspoel Groepe
|
||||
# Gebruik die --custom-role-arn om akkrediteerings vir 'n spesifieke rol te kry
|
||||
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>
|
||||
|
||||
> **Verouderde formaat** — hierdie mag dalk nie meer werk met die huidige AWS CLI nie:
|
||||
<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]
|
||||
> Dit is moontlik om **verskillende IAM rolle te konfigureer afhangende van die identiteitsverskaffer** waarteen die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang het tot verskillende gebruikers deur dieselfde of verskillende verskaffers, kan dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**.
|
||||
> Dit is moontlik om **verskillende IAM rolle te configureer afhangende van die identiteitsverskaffer** waarmee die gebruiker aangemeld is of selfs net afhangende **van die gebruiker** (met behulp van aansprake). Daarom, as jy toegang het tot verskillende gebruikers deur dieselfde of verskillende verskaffers, mag dit **die moeite werd wees om aan te meld en toegang te verkry tot die IAM rolle van al hulle**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user