GCP - Enumération des Cloud Functions
Reading time: 5 minutes
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
Cloud Functions
Google Cloud Functions sont conçues pour héberger votre code, qui est exécuté en réponse à des événements, sans nécessiter la gestion d'un système d'exploitation hôte. De plus, ces fonctions prennent en charge le stockage de variables d'environnement, que le code peut utiliser.
Stockage
Le code des Cloud Functions est stocké dans GCP Storage. Par conséquent, toute personne ayant un accès en lecture sur les buckets dans GCP pourra lire le code des Cloud Functions.
Le code est stocké dans un bucket comme l'un des suivants :
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
Par exemple :
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
warning
Tout utilisateur ayant des privilèges de lecture sur le bucket stockant la Cloud Function pourrait lire le code exécuté.
Artifact Registry
Si la fonction cloud est configurée de sorte que le conteneur Docker exécuté soit stocké à l'intérieur d'un dépôt Artifact Registry dans le projet, toute personne ayant un accès en lecture sur le dépôt pourra télécharger l'image et vérifier le code source. Pour plus d'infos, consultez :
SA
Si non spécifié, par défaut, le Compte de Service par Défaut de l'App Engine avec des permissions d'Éditeur sur le projet sera attaché à la Cloud Function.
Déclencheurs, URL & Authentification
Lorsqu'une Cloud Function est créée, le déclencheur doit être spécifié. Un déclencheur courant est HTTPS, cela créera une URL où la fonction peut être déclenchée via la navigation web.
D'autres déclencheurs sont pub/sub, Storage, Filestore...
Le format de l'URL est https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
Lorsque le déclencheur HTTPS est utilisé, il est également indiqué si le demandeur doit avoir une autorisation IAM pour appeler la fonction ou si tout le monde peut simplement l'appeler :
.png)
À l'intérieur de la Cloud Function
Le code est téléchargé à l'intérieur du dossier /workspace
avec les mêmes noms de fichiers que ceux des fichiers dans la Cloud Function et est exécuté avec l'utilisateur www-data
.
Le disque n'est pas monté en lecture seule.
Énumération
# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>
# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]
# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'
# If you know the name of projects you could try to BF cloud functions names
# Get events that could be used to trigger a cloud function
gcloud functions event-types list
# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'
Escalade de Privilèges
Dans la page suivante, vous pouvez vérifier comment abuser des permissions des fonctions cloud pour escalader les privilèges :
Accès Non Authentifié
GCP - Cloud Functions Unauthenticated Enum
Post Exploitation
GCP - Cloud Functions Post Exploitation
Persistance
GCP - Cloud Functions Persistence
Références
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
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.