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

This commit is contained in:
Translator
2025-08-18 14:40:07 +00:00
parent 90b1955962
commit ddf899f0f0
2 changed files with 16 additions and 16 deletions
@@ -4,7 +4,7 @@
## Basic Information
Identity pools hutoa jukumu muhimu kwa kuwezesha watumiaji wako **kupata akreditivu za muda mfupi**. Akreditivu hizi ni muhimu kwa kufikia huduma mbalimbali za AWS, ikiwa ni pamoja na lakini sio tu Amazon S3 na DynamoDB. Kipengele muhimu cha identity pools ni msaada wao kwa watumiaji wa wageni wasiojulikana na anuwai ya watoa huduma za utambulisho kwa uthibitishaji wa mtumiaji. Watoa huduma wa utambulisho wanaoungwa mkono ni pamoja na:
Identity pools hutoa jukumu muhimu kwa kuruhusu watumiaji wako **kupata akreditif za muda mfupi**. Akreditif hizi ni muhimu kwa kufikia huduma mbalimbali za AWS, ikiwa ni pamoja na lakini sio tu Amazon S3 na DynamoDB. Kipengele muhimu cha identity pools ni msaada wao kwa watumiaji wa wageni wasiojulikana na anuwai ya watoa huduma za utambulisho kwa uthibitishaji wa mtumiaji. Watoa huduma wa utambulisho wanaoungwa mkono ni pamoja na:
- Amazon Cognito user pools
- Chaguzi za kuingia za kijamii kama Facebook, Google, Login with Amazon, na Sign in with Apple
@@ -37,7 +37,7 @@ print(response)
Ili kuunda vikao vya Identity Pool, kwanza unahitaji **kuunda na Identity ID**. Hii Identity ID ni **kitambulisho cha kikao cha mtumiaji huyo**. Vitambulisho hivi vinaweza kuwa na hadi seti 20 za data ambazo zinaweza kuhifadhi hadi 1MB ya jozi za funguo-thamani.
Hii ni **faida kwa kuhifadhi taarifa za mtumiaji** (ambaye atakuwa akitumia kila wakati Identity ID ile ile).
Hii ni **faida kwa ajili ya kuhifadhi taarifa za mtumiaji** (ambaye atakuwa akitumia kila wakati Identity ID ile ile).
Zaidi ya hayo, huduma **cognito-sync** ni huduma inayoruhusu **kusimamia na kusawazisha taarifa hizi** (katika seti za data, kutuma taarifa katika mitiririko na ujumbe wa SNS...).
@@ -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
```
Mfano wa matumizi ya cognito\_\_enum kukusanya kila mzunguko wa watumiaji, wateja wa mzunguko wa watumiaji, mizunguko ya utambulisho, watumiaji, nk. wanaoonekana katika akaunti ya sasa ya AWS:
Mfano wa cognito\_\_enum matumizi ya kukusanya kila mzunguko wa mtumiaji, wateja wa mzunguko wa mtumiaji, mizunguko ya utambulisho, watumiaji, nk. wanaoonekana katika akaunti ya sasa ya AWS:
```bash
Pacu (new:test) > run cognito__enum
```
@@ -78,7 +78,7 @@ Kwa maelezo zaidi angalia https://github.com/padok-team/cognito-scanner
Jambo pekee ambalo mshambuliaji anahitaji kujua ili **kupata AWS credentials** katika programu ya Cognito kama mtumiaji asiye na uthibitisho ni **Identity Pool ID**, na **ID hii inapaswa kuwa imeandikwa kwa nguvu** katika **programu** ya wavuti/mobail ili kuitumia. ID inaonekana kama hii: `eu-west-1:098e5341-8364-038d-16de-1865e435da3b` (haiwezi kufanywa kwa nguvu).
> [!TIP]
> **IAM Cognito unauthenticated role iliyoundwa kupitia inaitwa** kwa default `Cognito_<Identity Pool name>Unauth_Role`
> **IAM Cognito role isiyo na uthibitisho iliyoundwa kupitia inaitwa** kwa default `Cognito_<Identity Pool name>Unauth_Role`
Ikiwa utapata Identity Pools ID iliyowekwa kwa nguvu na inaruhusu watumiaji wasiokuwa na uthibitisho, unaweza kupata AWS credentials kwa:
```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]
> Kumbuka kwamba kwa kawaida, **mtumiaji wa cognito asiye na uthibitisho HANA haki yoyote, hata kama ilitolewa kupitia sera**. Angalia sehemu ifuatayo.
> Kumbuka kwamba kwa kawaida **mtumiaji asiye na uthibitisho wa cognito HANA na ruhusa yoyote, hata kama ilitolewa kupitia sera**. Angalia sehemu ifuatayo.
### Mchakato wa Uthibitishaji wa Juu vs Msingi
Sehemu ya awali ilifuata **mchakato wa uthibitishaji wa juu wa kawaida**. Mchakato huu unakagua **sera ya kikao** [**inayozuia**](../../aws-basic-information/index.html#session-policies) kwa kikao cha jukumu la IAM kilichoundwa. Sera hii itaruhusu kikao [**kutumia huduma kutoka orodha hii**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (hata kama jukumu lilikuwa na ufikiaji wa huduma nyingine).
Sehemu ya awali ilifuata **mchakato wa uthibitishaji wa juu wa kawaida**. Mchakato huu unakagua **sera ya kikao** [**iliyopangwa**](../../aws-basic-information/index.html#session-policies) kwa kikao cha jukumu la IAM kilichoundwa. Sera hii itaruhusu kikao [**kutumia huduma kutoka orodha hii**](https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#access-policies-scope-down-services) (hata kama jukumu lilikuwa na ufikiaji wa huduma nyingine).
Hata hivyo, kuna njia ya kupita hii, ikiwa **hifadhi ya Kitambulisho ina "Mchakato wa Msingi (Classic) ulioanzishwa"**, mtumiaji ataweza kupata kikao kwa kutumia mchakato huo ambao **hautakuwa na sera hiyo ya kikao inayozuia**.
Hata hivyo, kuna njia ya kupita hii, ikiwa **Hifadhi ya Kitambulisho ina "Mchakato wa Msingi (Classic) ulioanzishwa"**, mtumiaji ataweza kupata kikao kwa kutumia mchakato huo ambao **hautakuwa na sera hiyo ya kikao ya kikandamiza**.
```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]
> Ikiwa unapokea **makosa** haya, ni kwa sababu **mchakato wa msingi haujawezeshwa (default)**
> Ikiwa unapokea **kosa** hili, ni kwa sababu **mchakato wa msingi haujawezeshwa (default)**
> `Makosa yamepatikana (InvalidParameterException) wakati wa kuita operesheni ya GetOpenIdToken: Mchakato wa msingi (classic) haujawezeshwa, tafadhali tumia mchakato ulioimarishwa.`
> `An error occurred (InvalidParameterException) when calling the GetOpenIdToken operation: Basic (classic) flow is not enabled, please use enhanced flow.`
Kuwa na seti ya akreditif za IAM unapaswa kuangalia [ni upatikanaji gani unao](../../index.html#whoami) na kujaribu [kuinua mamlaka](../../aws-privilege-escalation/index.html).
@@ -144,15 +144,15 @@ Kuwa na seti ya akreditif za IAM unapaswa kuangalia [ni upatikanaji gani unao](.
Pia kunaweza kuwa na **majukumu** yanayopatikana kwa **watumiaji walioidhinishwa wanaofikia Hifadhi ya Utambulisho**.
Kwa hili unaweza kuhitaji kuwa na ufikiaji wa **mtoa huduma wa utambulisho**. Ikiwa hiyo ni **Cognito User Pool**, labda unaweza kutumia tabia ya kawaida na **kuunda mtumiaji mpya mwenyewe**.
Kwa hili unaweza kuhitaji kuwa na ufikiaji wa **mtoa huduma wa utambulisho**. Ikiwa hiyo ni **Cognito User Pool**, labda unaweza kutumia tabia ya default na **kuunda mtumiaji mpya mwenyewe**.
> [!TIP]
> **Majukumu ya IAM Cognito yaliyoundwa kupitia** yanaitwa kwa default `Cognito_<Jina la Hifadhi ya Utambulisho>Auth_Role`
> **IAM Cognito authenticated role created via** inaitwa kwa default `Cognito_<Identity Pool name>Auth_Role`
Hata hivyo, **mfano ufuatao** unatarajia kwamba tayari umeingia ndani ya **Cognito User Pool** inayotumika kufikia Hifadhi ya Utambulisho (usisahau kwamba aina nyingine za watoa huduma wa utambulisho zinaweza pia kuanzishwa).
Hata hivyo, **mfano ufuatao** unatarajia kwamba tayari umeingia ndani ya **Cognito User Pool** inayotumika kufikia Hifadhi ya Utambulisho (usisahau kwamba aina nyingine za watoa huduma wa utambulisho zinaweza pia kuwekewa mipangilio).
<pre class="language-bash"><code class="lang-bash">
# Muundo uliosasishwa
# Updated format
aws cognito-identity get-id \
--identity-pool-id <identity_pool_id> \
--logins '{"cognito-idp.<region>.amazonaws.com/<user_pool_id>": "<ID_TOKEN>"}'
@@ -167,7 +167,7 @@ aws cognito-identity get-credentials-for-identity \
--logins '{"cognito-idp.<region>.amazonaws.com/<user_pool_id>": "<ID_TOKEN>"}'
</code></pre>
> **Muundo ulioachwa** — haya yanaweza yasifanye kazi tena na AWS CLI ya sasa:
> **Deprecated format** — hizi zinaweza zisifanye kazi na AWS CLI ya sasa:
<pre class="language-bash"><code class="lang-bash">
aws cognito-identity get-id \
--identity-pool-id <identity_pool_id> \
@@ -20,7 +20,7 @@ task-$(date '+%Y%m%d%H%M%S') \
```
### `cloudtasks.tasks.run`, `cloudtasks.tasks.list`
Mshambuliaji mwenye ruhusa hizi anaweza **kuendesha kazi zilizopangwa zilizopo** bila kuwa na ruhusa kwenye akaunti ya huduma inayohusishwa na kazi hiyo. Hii inaruhusu kutekeleza kazi ambazo zilikuwa zimetengenezwa na akaunti za huduma zenye ruhusa za juu.
Mshambuliaji mwenye ruhusa hizi anaweza **kuendesha kazi zilizopangwa zilizopo** bila kuwa na ruhusa kwenye akaunti ya huduma inayohusishwa na kazi hiyo. Hii inaruhusu kuendesha kazi ambazo zilikuwa zimetengenezwa na akaunti za huduma zenye ruhusa za juu.
```bash
gcloud tasks run projects/<project_id>/locations/us-central1/queues/<queue_name>/tasks/<task_id>
```
@@ -28,7 +28,7 @@ Msimamizi anayetekeleza amri hii **hapahitaji ruhusa ya `iam.serviceAccounts.act
### `cloudtasks.queues.setIamPolicy`
Mshambuliaji mwenye ruhusa hii anaweza **kujipe mwenyewe au wengine majukumu ya Cloud Tasks** kwenye foleni maalum, ambayo inaweza kusababisha kupanda hadi `roles/cloudtasks.admin` ambayo inajumuisha uwezo wa kuunda na kuendesha kazi.
Mshambuliaji mwenye ruhusa hii anaweza **kujipe mwenyewe au wengine majukumu ya Cloud Tasks** kwenye foleni maalum, ambayo inaweza kupelekea kupanda hadi `roles/cloudtasks.admin` ambayo inajumuisha uwezo wa kuunda na kuendesha kazi.
```bash
gcloud tasks queues add-iam-policy-binding \
<queue_name> \