GCP - Cloud Functions Enum
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Functions são projetadas para hospedar seu código, que é executado em resposta a eventos, sem necessitar da gestão de um sistema operacional host. Além disso, essas funções suportam o armazenamento de variáveis de ambiente, que o código pode utilizar.
O código das Cloud Functions é armazenado no GCP Storage. Portanto, qualquer pessoa com acesso de leitura sobre os buckets no GCP poderá ler o código das Cloud Functions. O código é armazenado em um bucket como um dos seguintes:
gcf-sources-<número>-<região>/<nome-da-função>-<uuid>/versão-<n>/function-source.zip
gcf-v2-sources-<número>-<região>/<nome-da-função>function-source.zip
Por exemplo:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/versão-4/function-source.zip
Qualquer usuário com privilégios de leitura sobre o bucket que armazena a Cloud Function poderá ler o código executado.
Se a função em nuvem estiver configurada para que o contêiner Docker executado seja armazenado dentro de um repositório do Artifact Registry dentro do projeto, qualquer um com acesso de leitura sobre o repositório poderá baixar a imagem e verificar o código-fonte. Para mais informações, consulte:
GCP - Artifact Registry EnumSe não especificado, por padrão a Conta de Serviço Padrão do App Engine com permissões de Editor sobre o projeto será anexada à Cloud Function.
Quando uma Cloud Function é criada, o gatilho precisa ser especificado. Um comum é HTTPS, isso criará uma URL onde a função pode ser acionada via navegação na web. Outros gatilhos são pub/sub, Storage, Filestore...
O formato da URL é https://<região>-<nome-do-projeto-gcp>.cloudfunctions.net/<func_name>
Quando o gatilho HTTPS é usado, também é indicado se o chamador precisa ter autorização IAM para chamar a Função ou se qualquer um pode apenas chamá-la:
O código é baixado dentro da pasta /workspace
com os mesmos nomes de arquivo que os arquivos têm na Cloud Function e é executado com o usuário www-data
.
O disco não é montado como somente leitura.
Na página a seguir, você pode verificar como abusar das permissões de funções em nuvem para escalar privilégios:
GCP - Cloudfunctions PrivescAprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)