mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-30 06:30:35 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-
This commit is contained in:
@@ -78,7 +78,7 @@ Für weitere Informationen siehe https://github.com/padok-team/cognito-scanner
|
||||
Das einzige, was ein Angreifer wissen muss, um **AWS-Anmeldeinformationen** in einer Cognito-App als unauthentifizierter Benutzer zu **erhalten**, ist die **Identity Pool ID**, und diese **ID muss im Web-/Mobilanwendung** fest codiert sein, damit sie verwendet werden kann. Eine ID sieht so aus: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (sie ist nicht bruteforcebar).
|
||||
|
||||
> [!TIP]
|
||||
> Die **IAM Cognito unautorisierte Rolle, die erstellt wurde, heißt** standardmäßig `Cognito_<Identity Pool name>Unauth_Role`
|
||||
> Die **IAM Cognito unauthentifizierte Rolle, die über erstellt wurde, heißt** standardmäßig `Cognito_<Identity Pool name>Unauth_Role`
|
||||
|
||||
Wenn Sie eine Identity Pools ID finden, die fest codiert ist und unauthentifizierte Benutzer zulässt, können Sie AWS-Anmeldeinformationen mit:
|
||||
```python
|
||||
@@ -112,13 +112,13 @@ 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]
|
||||
> Beachten Sie, dass ein nicht authentifizierter cognito **Benutzer standardmäßig KEINE Berechtigungen hat, selbst wenn diese über eine Richtlinie zugewiesen wurden**. Überprüfen Sie den folgenden Abschnitt.
|
||||
> Beachten Sie, dass ein nicht authentifizierter Cognito **Benutzer standardmäßig KEINE Berechtigungen hat, selbst wenn diese über eine Richtlinie zugewiesen wurden**. Überprüfen Sie den folgenden Abschnitt.
|
||||
|
||||
### Verbesserter vs. Basis-Authentifizierungsfluss
|
||||
|
||||
Der vorherige Abschnitt folgte dem **standardmäßigen verbesserten Authentifizierungsfluss**. Dieser Fluss setzt eine **einschränkende** [**Sitzungsrichtlinie**](../../aws-basic-information/#session-policies) für die generierte IAM-Rollen-Sitzung. Diese Richtlinie erlaubt es der Sitzung nur, [**die Dienste aus dieser Liste zu nutzen**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (auch wenn die Rolle Zugriff auf andere Dienste hatte).
|
||||
Der vorherige Abschnitt folgte dem **standardmäßigen verbesserten Authentifizierungsfluss**. Dieser Fluss setzt eine **einschränkende** [**Sitzungsrichtlinie**](../../aws-basic-information/index.html#session-policies) für die generierte IAM-Rollen-Sitzung. Diese Richtlinie erlaubt es der Sitzung nur, [**die Dienste aus dieser Liste zu nutzen**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (auch wenn die Rolle Zugriff auf andere Dienste hatte).
|
||||
|
||||
Es gibt jedoch eine Möglichkeit, dies zu umgehen. Wenn der **Identitätspool den "Basis (Klassisch) Fluss" aktiviert hat**, kann der Benutzer eine Sitzung mit diesem Fluss erhalten, die **nicht über diese einschränkende Sitzungsrichtlinie verfügt**.
|
||||
Es gibt jedoch eine Möglichkeit, dies zu umgehen. Wenn der **Identitätspool den "Basis (Klassischen) Fluss" aktiviert hat**, kann der Benutzer eine Sitzung mit diesem Fluss erhalten, die **nicht über diese einschränkende Sitzungsrichtlinie verfügt**.
|
||||
```bash
|
||||
# Get auth ID
|
||||
aws cognito-identity get-id --identity-pool-id <identity_pool_id> --no-sign
|
||||
@@ -135,7 +135,7 @@ aws sts assume-role-with-web-identity --role-arn "arn:aws:iam::<acc_id>:role/<ro
|
||||
|
||||
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
|
||||
|
||||
Wenn Sie über ein Set von IAM-Anmeldeinformationen verfügen, sollten Sie [überprüfen, auf welchen Zugriff Sie haben](../../#whoami) und versuchen, [Berechtigungen zu eskalieren](../../aws-privilege-escalation/).
|
||||
Wenn Sie über ein Set von IAM-Anmeldeinformationen verfügen, sollten Sie [überprüfen, auf welchen Zugriff Sie haben](../../index.html#whoami) und versuchen, [Privilegien zu eskalieren](../../aws-privilege-escalation/index.html).
|
||||
|
||||
### Authentifiziert
|
||||
|
||||
@@ -144,32 +144,32 @@ Wenn Sie über ein Set von IAM-Anmeldeinformationen verfügen, sollten Sie [übe
|
||||
|
||||
Es könnten auch **Rollen** für **authentifizierte Benutzer, die auf den Identity Pool zugreifen**, verfügbar sein.
|
||||
|
||||
Dafür müssen Sie möglicherweise Zugriff auf den **Identitätsanbieter** haben. Wenn es sich um einen **Cognito User Pool** handelt, können Sie möglicherweise das Standardverhalten ausnutzen und **selbst einen neuen Benutzer erstellen**.
|
||||
Dafür müssen Sie möglicherweise Zugriff auf den **Identitätsanbieter** haben. Wenn das ein **Cognito User Pool** ist, können Sie möglicherweise das Standardverhalten ausnutzen und **selbst einen neuen Benutzer erstellen**.
|
||||
|
||||
> [!TIP]
|
||||
> Die **IAM Cognito authentifizierte Rolle, die erstellt wurde, heißt** standardmäßig `Cognito_<Identity Pool name>Auth_Role`
|
||||
> Die **IAM Cognito authentifizierte Rolle, die erstellt wird, heißt** standardmäßig `Cognito_<Identity Pool name>Auth_Role`
|
||||
|
||||
Jedenfalls erwartet das **folgende Beispiel**, dass Sie sich bereits in einem **Cognito User Pool** angemeldet haben, der verwendet wird, um auf den Identity Pool zuzugreifen (vergessen Sie nicht, dass auch andere Arten von Identitätsanbietern konfiguriert sein könnten).
|
||||
|
||||
<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/<YOUR_USER_POOL_ID>=<ID_TOKEN>
|
||||
--identity-pool-id <identity_pool_id> \
|
||||
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
|
||||
|
||||
# Holen Sie sich die identity_id aus der vorherigen Befehlsantwort
|
||||
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 <identity_id> \
|
||||
--logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
|
||||
|
||||
|
||||
# Im IdToken finden Sie Rollen, auf die ein Benutzer aufgrund von Benutzerpoolgruppen Zugriff hat
|
||||
# Verwenden Sie die --custom-role-arn, um Anmeldeinformationen für eine bestimmte Rolle zu erhalten
|
||||
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>
|
||||
--identity-id <identity_id> \
|
||||
<strong> --custom-role-arn <role_arn> \
|
||||
</strong> --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
|
||||
</code></pre>
|
||||
|
||||
> [!WARNING]
|
||||
> Es ist möglich, **verschiedene IAM-Rollen je nach Identitätsanbieter** zu konfigurieren, bei dem der Benutzer angemeldet ist, oder sogar nur abhängig **vom Benutzer** (unter Verwendung von Ansprüchen). Daher könnte es **lohnenswert sein, sich anzumelden und auf die IAM-Rollen von allen zuzugreifen**.
|
||||
> Es ist möglich, **verschiedene IAM-Rollen zu konfigurieren, abhängig von dem Identitätsanbieter**, bei dem der Benutzer angemeldet ist, oder sogar nur abhängig **vom Benutzer** (unter Verwendung von Ansprüchen). Daher könnte es **lohnenswert sein, sich anzumelden und auf die IAM-Rollen von allen zuzugreifen**.
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user