GCP - IAM Post Exploitation

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

IAM

Você pode encontrar mais informações sobre o IAM em:

GCP - IAM, Principals & Org Policies Enum

Concedendo acesso ao console de gerenciamento

O acesso ao GCP management console é fornecido a contas de usuário, não a contas de serviço. Para entrar na interface web, você pode conceder acesso a uma conta do Google que você controla. Isso pode ser uma conta genérica “@gmail.com”, que não precisa ser membro da organização alvo.

Para conceder o papel primitivo de Owner a uma conta genérica “@gmail.com”, entretanto, você precisará usar o console web. gcloud retornará um erro se você tentar conceder uma permissão acima de Editor.

Você pode usar o seguinte comando para conceder a um usuário o papel primitivo de Editor ao seu projeto existente:

gcloud projects add-iam-policy-binding [PROJECT] --member user:[EMAIL] --role roles/editor

Se você teve sucesso aqui, tente acessar a interface web e explorar a partir dela.

Este é o nível mais alto que você pode atribuir usando a ferramenta gcloud.

Excluir componentes do IAM iam.*.delete

As permissões iam.*.delete (por exemplo, iam.roles.delete, iam.serviceAccountApiKeyBindings.delete, iam.serviceAccountKeys.delete, etc.) permitem que uma identidade exclua componentes críticos do IAM, como funções personalizadas, bindings de API key, chaves de service account e as próprias service accounts. Nas mãos de um atacante, isso possibilita remover mecanismos legítimos de acesso para causar uma negação de serviço.

Para realizar tal ataque, é possível, por exemplo, excluir funções usando:

gcloud iam roles delete <ROLE_ID> --project=<PROJECT_ID>

iam.serviceAccountKeys.disable || iam.serviceAccounts.disable

As permissões iam.serviceAccountKeys.disable e iam.serviceAccounts.disable permitem desativar chaves ativas de contas de serviço ou as próprias contas de serviço, o que, nas mãos de um atacante, pode ser usado para interromper operações, causar negação de serviço ou dificultar a resposta a incidentes ao impedir o uso de credenciais legítimas.

Para desativar uma conta de serviço, você pode usar o seguinte comando:

gcloud iam service-accounts disable <SA_EMAIL> --project=<PROJECT_ID>

Para desabilitar as chaves de um Service Account, você pode usar o seguinte comando:

gcloud iam service-accounts keys disable <KEY_ID> --iam-account=<SA_EMAIL>

iam.*.undelete

As permissões iam.*.undelete permitem restaurar elementos anteriormente excluídos, como vínculos de chaves de API, funções personalizadas ou contas de serviço. Nas mãos de um atacante, isso pode ser usado para reverter ações defensivas (recuperar acessos removidos), restabelecer vetores de comprometimento excluídos para manter persistência ou contornar esforços de remediação, complicando a contenção do incidente.

gcloud iam service-accounts undelete "${SA_ID}" --project="${PROJECT}"

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks