mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-05 09:17:24 -08:00
76 lines
1.9 KiB
Markdown
76 lines
1.9 KiB
Markdown
# GCP - Cloud Functions Unauthenticated Enum
|
|
|
|
{{#include ../../../banners/hacktricks-training.md}}
|
|
|
|
## Cloud Functions
|
|
|
|
Maggiore informazione sulle Cloud Functions può essere trovata in:
|
|
|
|
{{#ref}}
|
|
../gcp-services/gcp-cloud-functions-enum.md
|
|
{{#endref}}
|
|
|
|
### Brute Force URls
|
|
|
|
**Brute Force il formato dell'URL**:
|
|
|
|
- `https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>`
|
|
|
|
È più facile se conosci i nomi dei progetti.
|
|
|
|
Controlla questa pagina per alcuni strumenti per eseguire questo brute force:
|
|
|
|
{{#ref}}
|
|
./
|
|
{{#endref}}
|
|
|
|
### Enumerare le Cloud Functions Aperte
|
|
|
|
Con il seguente codice [preso da qui](https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_misc/-/blob/master/find_open_functions.sh) puoi trovare le Cloud Functions che permettono invocazioni non autenticate.
|
|
```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}}
|