GCP - Cloudfunctions Privesc

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

cloudfunctions

Mais informações sobre Cloud Functions:

pageGCP - Cloud Functions Enum

cloudfunctions.functions.create , cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Um atacante com esses privilégios pode criar uma nova Cloud Function com código arbitrário (malicioso) e atribuir a ela uma Conta de Serviço. Em seguida, vazar o token da Conta de Serviço nos metadados para escalar os privilégios para ela. Alguns privilégios para acionar a função podem ser necessários.

Scripts de exploração para este método podem ser encontrados aqui e aqui e o arquivo .zip pré-construído pode ser encontrado aqui.

cloudfunctions.functions.update , cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

Um atacante com esses privilégios pode modificar o código de uma Função e até mesmo modificar a conta de serviço anexada com o objetivo de extrair o token. Alguns privilégios para acionar a função podem ser necessários.

O script de exploração para este método pode ser encontrado aqui.

cloudfunctions.functions.sourceCodeSet

Com essa permissão, você pode obter um URL assinado para poder fazer upload de um arquivo para um bucket de função (mas o código da função não será alterado, você ainda precisa atualizá-lo)

# Generate the URL
curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/locations/{location}/functions:generateUploadUrl \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'

Não tenho certeza de quão útil apenas essa permissão é do ponto de vista de um atacante, mas é bom saber.

cloudfunctions.functions.setIamPolicy, iam.serviceAccounts.actAs

Dê a si mesmo qualquer um dos privilégios anteriores de .update ou .create para escalar.

cloudfunctions.functions.update

Apenas tendo permissões de cloudfunctions, sem iam.serviceAccounts.actAs, você não poderá atualizar a função, PORTANTO ISSO NÃO É UMA PRIVILÉGIO VÁLIDO.

Permissões de Escrita no Bucket

Um atacante com permissões de escrita sobre o bucket onde o código das Cloud Functions está armazenado poderá modificar o código sobrescrevendo o function_code.zip e poderá executar código arbitrário uma vez que seja executado.

Referências

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización