GCP - Cloud Shell Persistence
Cloud Shell
Pour plus d'informations, consultez :
GCP - Cloud Shell EnumBackdoor Persistante
Google Cloud Shell vous offre 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 offre certaines capacités intéressantes pour les attaquants :
Tout utilisateur Google ayant accès à Google Cloud a accès à une instance Cloud Shell entièrement authentifiée (les comptes de service peuvent, même en étant propriétaires de l'organisation).
Cette instance conservera son répertoire personnel pendant au moins 120 jours s'il n'y a pas d'activité.
Il n'y a aucune capacité pour une organisation de surveiller l'activité de cette instance.
Cela signifie essentiellement qu'un attaquant peut placer une backdoor dans le répertoire personnel de l'utilisateur et tant que l'utilisateur se connecte au GC Shell tous les 120 jours au moins, la backdoor survivra et l'attaquant obtiendra un shell à chaque fois qu'elle sera exécutée simplement en faisant :
Il y a un autre fichier dans le dossier personnel appelé .customize_environment
qui, s'il existe, sera exécuté à chaque fois que l'utilisateur accède au cloud shell (comme dans la technique précédente). Il suffit d'insérer la porte dérobée précédente ou une similaire pour maintenir la persistance aussi longtemps que l'utilisateur utilise "fréquemment" le cloud shell:
Il est important de noter que la première fois qu'une action nécessitant une authentification est effectuée, une fenêtre d'autorisation contextuelle 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 des soupçons et compromettre potentiellement la méthode de persistance utilisée.
Ceci est la fenêtre contextuelle lors 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 ne s'affichera pas et vous pouvez collecter les jetons de l'utilisateur avec :
Comment la connexion SSH est établie
Essentiellement, ces 3 appels API sont utilisés :
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:addPublicKey [POST] (vous permet d'ajouter votre clé publique créée localement)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default:start [POST] (vous permet de démarrer l'instance)
https://content-cloudshell.googleapis.com/v1/users/me/environments/default [GET] (vous indique l'adresse IP du cloud shell Google)
Mais vous pouvez trouver plus d'informations sur 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
Last updated