Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-unauthenticated-enum-and-access/gcp-cloud-functions-unauthenticated-enum.md

76 lines
1.9 KiB
Markdown

# 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://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>`
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}}