# GCP - Cloud Functions Unauthenticated Enum {{#include ../../../banners/hacktricks-training.md}} ## Cloud Functions Weitere Informationen zu Cloud Functions finden Sie unter: {{#ref}} ../gcp-services/gcp-cloud-functions-enum.md {{#endref}} ### Brute Force URls **Brute Force das URL-Format**: - `https://-.cloudfunctions.net/` Es ist einfacher, wenn Sie die Projektnamen kennen. Überprüfen Sie diese Seite für einige Tools, um diesen Brute Force durchzuführen: {{#ref}} ./ {{#endref}} ### Offene Cloud Functions auflisten Mit dem folgenden Code [hierher entnommen](https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_misc/-/blob/master/find_open_functions.sh) können Sie Cloud Functions finden, die nicht authentifizierte Aufrufe zulassen. ```bash #!/bin/bash ############################ # Run this tool to find Cloud Functions that permit unauthenticated invocations # anywhere in your GCP organization. # Enjoy! ############################ for proj in $(gcloud projects list --format="get(projectId)"); do echo "[*] scraping project $proj" enabled=$(gcloud services list --project "$proj" | grep "Cloud Functions API") if [ -z "$enabled" ]; then continue fi for func_region in $(gcloud functions list --quiet --project "$proj" --format="value[separator=','](NAME,REGION)"); do # drop substring from first occurence of "," to end of string. func="${func_region%%,*}" # drop substring from start of string up to last occurence of "," region="${func_region##*,}" ACL="$(gcloud functions get-iam-policy "$func" --project "$proj" --region "$region")" all_users="$(echo "$ACL" | grep allUsers)" all_auth="$(echo "$ACL" | grep allAuthenticatedUsers)" if [ -z "$all_users" ] then : else echo "[!] Open to all users: $proj: $func" fi if [ -z "$all_auth" ] then : else echo "[!] Open to all authenticated users: $proj: $func" fi done done ``` {{#include ../../../banners/hacktricks-training.md}}