mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-04 19:11:41 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-services/aws-cognito-
This commit is contained in:
@@ -35,7 +35,7 @@ print(response)
|
||||
```
|
||||
### Cognito Sync
|
||||
|
||||
要生成身份池会话,您首先需要**生成身份 ID**。这个身份 ID 是**该用户会话的标识**。这些标识可以有多达 20 个数据集,可以存储多达 1MB 的键值对。
|
||||
要生成身份池会话,您首先需要**生成身份 ID**。这个身份 ID 是**该用户会话的标识**。这些标识可以有多达 20 个数据集,最多可以存储 1MB 的键值对。
|
||||
|
||||
这对于**保持用户信息**(用户将始终使用相同的身份 ID)是**有用的**。
|
||||
|
||||
@@ -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
|
||||
```
|
||||
示例 cognito\_\_enum 用法,以收集当前 AWS 账户中可见的所有用户池、用户池客户端、身份池、用户等:
|
||||
示例 cognito__enum 用法以收集当前 AWS 账户中可见的所有用户池、用户池客户端、身份池、用户等:
|
||||
```bash
|
||||
Pacu (new:test) > run cognito__enum
|
||||
```
|
||||
@@ -75,10 +75,10 @@ $ cognito-scanner --help
|
||||
|
||||
### 未认证
|
||||
|
||||
攻击者需要知道的唯一信息,以便在 Cognito 应用中作为未认证用户**获取 AWS 凭证**,就是**身份池 ID**,并且此**ID 必须在**web/mobile **应用中硬编码**以供使用。ID 看起来像这样:`eu-west-1:098e5341-8364-038d-16de-1865e435da3b`(无法通过暴力破解获得)。
|
||||
攻击者需要知道的唯一信息是 **在 Cognito 应用中获取 AWS 凭证** 的 **身份池 ID**,并且此 **ID 必须硬编码** 在 web/mobile **应用程序** 中以供使用。ID 的格式如下:`eu-west-1:098e5341-8364-038d-16de-1865e435da3b`(无法通过暴力破解获得)。
|
||||
|
||||
> [!TIP]
|
||||
> 通过创建的**IAM Cognito 未认证角色默认称为** `Cognito_<Identity Pool name>Unauth_Role`
|
||||
> 默认情况下,通过创建的 **IAM Cognito 未认证角色** 被称为 `Cognito_<Identity Pool name>Unauth_Role`
|
||||
|
||||
如果您发现一个硬编码的身份池 ID 并且它允许未认证用户,您可以使用以下方法获取 AWS 凭证:
|
||||
```python
|
||||
@@ -131,25 +131,25 @@ 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]
|
||||
> 如果您收到此 **错误**,则是因为 **基本流程未启用(默认)**
|
||||
> 如果您收到此**错误**,则是因为**基本流程未启用(默认)**
|
||||
|
||||
> `发生错误(InvalidParameterException),调用 GetOpenIdToken 操作时:基本(经典)流程未启用,请使用增强流程。`
|
||||
|
||||
拥有一组 IAM 凭证后,您应该检查 [您拥有的访问权限](../../index.html#whoami) 并尝试 [提升权限](../../aws-privilege-escalation/index.html)。
|
||||
拥有一组 IAM 凭证后,您应该检查[您拥有的访问权限](../../index.html#whoami)并尝试[提升权限](../../aws-privilege-escalation/index.html)。
|
||||
|
||||
### 已认证
|
||||
|
||||
> [!NOTE]
|
||||
> 请记住,**已认证用户**可能会被授予 **不同的权限**,因此如果您可以 **在应用程序内注册**,请尝试这样做并获取新的凭证。
|
||||
> 请记住,**已认证用户**可能会被授予**不同的权限**,因此如果您可以**在应用程序内注册**,请尝试这样做并获取新凭证。
|
||||
|
||||
对于 **访问身份池的已认证用户**,可能还有 **角色** 可用。
|
||||
对于**访问身份池的已认证用户**,可能还有**角色**可用。
|
||||
|
||||
为此,您可能需要访问 **身份提供者**。如果这是 **Cognito 用户池**,也许您可以利用默认行为 **自己创建一个新用户**。
|
||||
为此,您可能需要访问**身份提供者**。如果这是一个**Cognito 用户池**,也许您可以利用默认行为**自己创建一个新用户**。
|
||||
|
||||
> [!TIP]
|
||||
> 通过 **IAM Cognito 认证角色创建的角色** 默认称为 `Cognito_<Identity Pool name>Auth_Role`
|
||||
> 通过创建的**IAM Cognito 认证角色**默认称为 `Cognito_<Identity Pool name>Auth_Role`
|
||||
|
||||
无论如何,**以下示例** 假设您已经登录到用于访问身份池的 **Cognito 用户池**(不要忘记,其他类型的身份提供者也可以被配置)。
|
||||
无论如何,**以下示例**假设您已经登录到用于访问身份池的**Cognito 用户池**(不要忘记,其他类型的身份提供者也可以被配置)。
|
||||
|
||||
<pre class="language-bash"><code class="lang-bash">
|
||||
# 更新格式
|
||||
@@ -184,6 +184,6 @@ aws cognito-identity get-credentials-for-identity \
|
||||
</code></pre>
|
||||
|
||||
> [!WARNING]
|
||||
> 可以 **根据用户登录的身份提供者** 配置不同的 IAM 角色,甚至仅仅根据 **用户**(使用声明)。因此,如果您通过相同或不同的提供者访问不同的用户,可能 **值得登录并访问他们的所有 IAM 角色**。
|
||||
> 可以**根据用户登录的身份提供者**或甚至**根据用户**(使用声明)配置不同的 IAM 角色。因此,如果您通过相同或不同的提供者访问不同的用户,**登录并访问他们所有的 IAM 角色可能是值得的**。
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user