mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-ci-cd/ansible-tower-awx-automation-controlle
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
# GCP - Dozvole za Pentest
|
||||
|
||||
Ako želite da radite pentest u GCP okruženju, potrebno je da zatražite dovoljno dozvola da **proverite sve ili većinu usluga** korišćenih u **GCP**. Idealno bi bilo da tražite od klijenta da kreira:
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Ako želite da izvršite pentest u GCP okruženju, potrebno je da zatražite dovoljno dozvola da **proverite sve ili većinu usluga** korišćenih u **GCP**. Idealno bi bilo da tražite od klijenta da kreira:
|
||||
|
||||
* **Kreirajte** novi **projekat**
|
||||
* **Kreirajte** **Service Account** unutar tog projekta (dobijte **json kredencijale**) ili kreirajte **novog korisnika**.
|
||||
* **Dajte** **Service account** ili **korisniku** **uloge** koje će biti pomenute kasnije na ORGANIZACIJI
|
||||
* **Omogućite** **APIs** koji će biti pomenuti kasnije u ovom postu u kreiranom projektu
|
||||
* **Kreirajte** **Servisni nalog** unutar tog projekta (dobijte **json kredencijale**) ili kreirajte **novog korisnika**.
|
||||
* **Dajte** **Servisnom nalogu** ili **korisniku** **uloge** pomenute kasnije na ORGANIZACIJI
|
||||
* **Omogućite** **API-e** pomenute kasnije u ovom postu u kreiranom projektu
|
||||
|
||||
**Skup dozvola** za korišćenje alata koji će biti predloženi kasnije:
|
||||
**Skup dozvola** za korišćenje alata predloženih kasnije:
|
||||
```bash
|
||||
roles/viewer
|
||||
roles/resourcemanager.folderViewer
|
||||
@@ -129,4 +131,4 @@ roles/iam.securityReviewer
|
||||
roles/iam.organizationRoleViewer
|
||||
roles/bigquery.metadataViewer
|
||||
```
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# GCP - Persistencija
|
||||
# GCP - Održavanje
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# GCP - Post Eksploatacija
|
||||
# GCP - Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -12,14 +12,14 @@ Pronađite informacije o Cloud Functions u:
|
||||
|
||||
### `cloudfunctions.functions.sourceCodeGet`
|
||||
|
||||
Sa ovom dozvolom možete dobiti **potpisanu URL adresu za preuzimanje izvornog koda** Cloud Function-a:
|
||||
Sa ovom dozvolom možete dobiti **potpisanu URL adresu za preuzimanje izvornog koda** Cloud Function:
|
||||
```bash
|
||||
curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/locations/{location}/functions/{function-name}:generateDownloadUrl \
|
||||
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{}'
|
||||
```
|
||||
### Ukradi Cloud Function Zahteve
|
||||
### Steal Cloud Function Requests
|
||||
|
||||
Ako Cloud Function upravlja osetljivim informacijama koje korisnici šalju (npr. lozinke ili tokeni), sa dovoljno privilegija mogli biste **modifikovati izvorni kod funkcije i exfiltrirati** ove informacije.
|
||||
|
||||
@@ -98,7 +98,7 @@ return "/tmp/function.py doesn't exists"
|
||||
|
||||
# Get relevant function names
|
||||
handler_fname = os.environ.get("FUNCTION_TARGET") # Cloud Function env variable indicating the name of the function to habdle requests
|
||||
source_path = os.environ.get("FUNCTION_SOURCE", "./main.py") # Path to the source file of the Cloud Function (./main.py by default)
|
||||
source_path = os.environ.get("FUNCTION_SOURCE", "./main.py") # Path to the source file of the Cloud Function (main.py by default)
|
||||
realpath = os.path.realpath(source_path) # Get full path
|
||||
|
||||
# Get the modules representations
|
||||
@@ -122,4 +122,4 @@ return "Injection completed!"
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
```
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1,20 +1,18 @@
|
||||
# GCP - Dodavanje prilagođenih SSH metapodataka
|
||||
|
||||
## GCP - Dodavanje prilagođenih SSH metapodataka
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Modifikacija metapodataka <a href="#modifying-the-metadata" id="modifying-the-metadata"></a>
|
||||
## Modifikacija metapodataka <a href="#modifying-the-metadata" id="modifying-the-metadata"></a>
|
||||
|
||||
Modifikacija metapodataka na instanci može dovesti do **značajnih bezbednosnih rizika ako napadač dobije potrebne dozvole**.
|
||||
|
||||
#### **Uključivanje SSH ključeva u prilagođene metapodatke**
|
||||
### **Uključivanje SSH ključeva u prilagođene metapodatke**
|
||||
|
||||
Na GCP-u, **Linux sistemi** često izvršavaju skripte iz [Python Linux Guest Environment for Google Compute Engine](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts). Kritična komponenta ovoga je [accounts daemon](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts), koji je dizajniran da **redovno proverava** krajnju tačku metapodataka instance za **ažuriranja autorizovanih SSH javnih ključeva**.
|
||||
|
||||
Stoga, ako napadač može da modifikuje prilagođene metapodatke, mogao bi da natera daemon da pronađe novi javni ključ, koji će biti obrađen i **integrisan u lokalni sistem**. Ključ će biti dodat u `~/.ssh/authorized_keys` datoteku **postojećeg korisnika ili potencijalno kreirati novog korisnika sa `sudo` privilegijama**, u zavisnosti od formata ključa. I napadač će moći da kompromituje host.
|
||||
|
||||
#### **Dodavanje SSH ključa postojećem privilegovanom korisniku**
|
||||
### **Dodavanje SSH ključa postojećem privilegovanom korisniku**
|
||||
|
||||
1. **Istražite postojeće SSH ključeve na instanci:**
|
||||
|
||||
@@ -27,7 +25,7 @@ gcloud compute instances describe [INSTANCE] --zone [ZONE]
|
||||
- Obratite pažnju na format SSH ključeva: korisničko ime prethodi ključevi, odvojeni dvotačkom.
|
||||
|
||||
2. **Pripremite tekstualnu datoteku za SSH ključ metapodatke:**
|
||||
- Sačuvajte detalje korisničkih imena i njihovih odgovarajućih SSH ključeva u tekstualnu datoteku pod imenom `meta.txt`. Ovo je neophodno za očuvanje postojećih ključeva dok dodajete nove.
|
||||
- Sačuvajte detalje korisničkih imena i njihovih odgovarajućih SSH ključeva u tekstualnu datoteku nazvanu `meta.txt`. Ovo je neophodno za očuvanje postojećih ključeva dok dodajete nove.
|
||||
3. **Generišite novi SSH ključ za ciljanog korisnika (`alice` u ovom primeru):**
|
||||
|
||||
- Koristite komandu `ssh-keygen` da generišete novi SSH ključ, osiguravajući da polje komentara (`-C`) odgovara ciljanom korisničkom imenu.
|
||||
@@ -55,7 +53,7 @@ ssh -i ./key alice@localhost
|
||||
sudo id
|
||||
```
|
||||
|
||||
#### **Kreirajte novog privilegovanog korisnika i dodajte SSH ključ**
|
||||
### **Kreirajte novog privilegovanog korisnika i dodajte SSH ključ**
|
||||
|
||||
Ako nijedan zanimljiv korisnik nije pronađen, moguće je kreirati novog koji će dobiti `sudo` privilegije:
|
||||
```bash
|
||||
@@ -75,7 +73,7 @@ gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-k
|
||||
# ssh to the new account
|
||||
ssh -i ./key "$NEWUSER"@localhost
|
||||
```
|
||||
#### SSH ključevi na nivou projekta <a href="#sshing-around" id="sshing-around"></a>
|
||||
### SSH ključevi na nivou projekta <a href="#sshing-around" id="sshing-around"></a>
|
||||
|
||||
Moguće je proširiti domet SSH pristupa na više Virtuelnih Mašina (VM) u cloud okruženju primenom **SSH ključeva na nivou projekta**. Ovaj pristup omogućava SSH pristup bilo kojoj instanci unutar projekta koja nije eksplicitno blokirala SSH ključeve na nivou projekta. Evo sažetog vodiča:
|
||||
|
||||
@@ -88,7 +86,7 @@ gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
|
||||
```
|
||||
|
||||
2. **SSH u instance koristeći ključeve na nivou projekta:**
|
||||
- Sa SSH ključevima na nivou projekta, možete SSH u bilo koju instancu unutar projekta. Instance koje ne blokiraju ključeve na nivou projekta će prihvatiti SSH ključ, omogućavajući pristup.
|
||||
- Sa SSH ključevima na nivou projekta, možete se SSH-ovati u bilo koju instancu unutar projekta. Instance koje ne blokiraju ključeve na nivou projekta će prihvatiti SSH ključ, omogućavajući pristup.
|
||||
- Direktna metoda za SSH u instancu je korišćenje komande `gcloud compute ssh [INSTANCE]`. Ova komanda koristi vaše trenutno korisničko ime i SSH ključeve postavljene na nivou projekta da pokuša pristup.
|
||||
|
||||
## Reference
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## serviceusage
|
||||
|
||||
Sledeće dozvole su korisne za kreiranje i krađu API ključeva, ne zaboravite ovo iz dokumentacije: _API ključ je jednostavna enkriptovana niska koja **identifikuje aplikaciju bez ikakvog principala**. Korisni su za pristup **javnim podacima anonimno**, i koriste se za **povezivanje** API zahteva sa vašim projektom za kvote i **naplatu**._
|
||||
Sledeće dozvole su korisne za kreiranje i krađu API ključeva, ne zaboravite ovo iz dokumentacije: _API ključ je jednostavna enkriptovana niska koja **identifikuje aplikaciju bez ikakvog principala**. Korisni su za pristupanje **javnim podacima anonimno**, i koriste se za **povezivanje** API zahteva sa vašim projektom za kvotu i **naplatu**._
|
||||
|
||||
Dakle, sa API ključem možete naterati tu kompaniju da plati za vašu upotrebu API-a, ali nećete moći da eskalirate privilegije.
|
||||
Dakle, sa API ključem možete naterati tu kompaniju da plati za vaše korišćenje API-ja, ali nećete moći da eskalirate privilegije.
|
||||
|
||||
Da biste saznali druge dozvole i načine za generisanje API ključeva, proverite:
|
||||
|
||||
@@ -16,7 +16,7 @@ gcp-apikeys-privesc.md
|
||||
|
||||
### `serviceusage.apiKeys.create`
|
||||
|
||||
Pronađena je nedokumentovana API koja se može koristiti za **kreiranje API ključeva:**
|
||||
Pronađen je nedokumentovani API koji se može koristiti za **kreiranje API ključeva:**
|
||||
```bash
|
||||
curl -XPOST "https://apikeys.clients6.google.com/v1/projects/<project-uniq-name>/apiKeys?access_token=$(gcloud auth print-access-token)"
|
||||
```
|
||||
@@ -28,26 +28,30 @@ curl "https://apikeys.clients6.google.com/v1/projects/<project-uniq-name>/apiKey
|
||||
```
|
||||
### **`serviceusage.services.enable`** , **`serviceusage.services.use`**
|
||||
|
||||
Sa ovim dozvolama, napadač može omogućiti i koristiti nove usluge u projektu. To bi moglo omogućiti **napadaču da omogući uslugu kao što je admin ili cloudidentity** da pokuša da pristupi informacijama iz Workspace-a, ili drugim uslugama za pristup zanimljivim podacima.
|
||||
Sa ovim dozvolama napadač može omogućiti i koristiti nove usluge u projektu. To bi moglo omogućiti **napadaču da omogući uslugu kao što je admin ili cloudidentity** da pokuša da pristupi informacijama iz Workspace-a, ili drugim uslugama za pristup zanimljivim podacima.
|
||||
|
||||
## **Reference**
|
||||
## **References**
|
||||
|
||||
- [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/)
|
||||
|
||||
<details>
|
||||
|
||||
<summary><strong>Podržite HackTricks i ostvarite benefite!</strong></summary>
|
||||
<summary><strong>Support HackTricks and get benefits!</strong></summary>
|
||||
|
||||
Da li radite u **cybersecurity kompaniji**? Da li želite da vidite vašu **kompaniju oglašenu u HackTricks**? ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF-u**? Proverite [**PLANOVE ČLANSTVA**](https://github.com/sponsors/carlospolop)!
|
||||
Da li radite u **cybersecurity company**? Da li želite da vidite vašu **company advertised in HackTricks**? ili želite da imate pristup **latest version of the PEASS or download HackTricks in PDF**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
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 [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
Dobijte [**službeni PEASS & HackTricks merch**](https://peass.creator-spring.com)
|
||||
Dobijte [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
**Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** me na **Twitteru** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
**Join the** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** me on **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/carlospolopm)**.**
|
||||
|
||||
**Podelite svoje hakerske trikove slanjem PR-ova na** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)\*\*\*\*
|
||||
**Share your hacking tricks submitting PRs to the** [**hacktricks github repo**](https://github.com/carlospolop/hacktricks)\*\*\*\*
|
||||
|
||||
**.**
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# GCP - Usluge
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user