GCP Pentesting
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Antes de começar o pentesting em um GCP ambiente, há algumas coisas básicas que você precisa saber sobre como funciona para ajudá-lo a entender o que você precisa fazer, como encontrar configurações incorretas e como explorá-las.
Conceitos como hierarquia de organização, permissões e outros conceitos básicos são explicados em:
GCP - Basic InformationPara auditar um ambiente GCP, é muito importante saber: quais serviços estão sendo usados, o que está sendo exposto, quem tem acesso ao que, e como os serviços internos do GCP e os serviços externos estão conectados.
Do ponto de vista de um Red Team, o primeiro passo para comprometer um ambiente GCP é conseguir obter algumas credenciais. Aqui estão algumas ideias sobre como fazer isso:
Vazamentos no github (ou similar) - OSINT
Engenharia Social (Verifique a página Workspace Security)
Reutilização de senhas (vazamentos de senhas)
Vulnerabilidades em Aplicações Hospedadas no GCP
Server Side Request Forgery com acesso ao endpoint de metadados
Leitura de Arquivo Local
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
terceiros comprometidos
Funcionário Interno
Ou comprometendo um serviço não autenticado exposto:
GCP - Unauthenticated Enum & AccessOu se você estiver fazendo uma revisão, você poderia apenas pedir credenciais com esses papéis:
GCP - Permissions for a PentestDepois de conseguir obter credenciais, você precisa saber de quem pertencem essas credenciais, e a que elas têm acesso, então você precisa realizar alguma enumeração básica:
Para mais informações sobre como enumerar metadados do GCP, verifique a seguinte página do hacktricks:
No GCP, você pode tentar várias opções para tentar adivinhar quem você é:
Você também pode usar o endpoint da API /userinfo
para obter mais informações sobre o usuário:
Se você tiver permissões suficientes, verificar os privilégios de cada entidade dentro da conta GCP ajudará você a entender o que você e outras identidades podem fazer e como escalar privilégios.
Se você não tiver permissões suficientes para enumerar o IAM, você pode roubar ou forçar a descoberta para descobrir. Verifique como fazer a enumeração e a força bruta em:
GCP - IAM, Principals & Org Policies EnumAgora que você tem algumas informações sobre suas credenciais (e se você é um red team, espero que você não tenha sido detectado). É hora de descobrir quais serviços estão sendo usados no ambiente. Na seção a seguir, você pode verificar algumas maneiras de enumerar alguns serviços comuns.
O GCP tem uma quantidade impressionante de serviços, na página a seguir você encontrará informações básicas, cheatsheets de enumeração, como evitar detecção, obter persistência e outros truques de pós-exploração sobre alguns deles:
GCP - ServicesNote que você não precisa realizar todo o trabalho manualmente, abaixo neste post você pode encontrar uma seção sobre ferramentas automáticas.
Além disso, nesta fase você pode ter descoberto mais serviços expostos a usuários não autenticados, você pode ser capaz de explorá-los:
GCP - Unauthenticated Enum & AccessA maneira mais comum, uma vez que você obteve algumas credenciais de nuvem ou comprometeu algum serviço em execução dentro de uma nuvem, é abusar de privilégios mal configurados que a conta comprometida pode ter. Portanto, a primeira coisa que você deve fazer é enumerar seus privilégios.
Além disso, durante essa enumeração, lembre-se de que as permissões podem ser definidas no nível mais alto de "Organização" também.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceAo enumerar os serviços do GCP, você pode ter encontrado alguns deles expondo elementos à Internet (portas de VM/Containers, bancos de dados ou serviços de fila, snapshots ou buckets...). Como pentester/red teamer, você deve sempre verificar se pode encontrar informações sensíveis / vulnerabilidades neles, pois podem fornecer a você acesso adicional à conta AWS.
Neste livro, você deve encontrar informações sobre como encontrar serviços GCP expostos e como verificá-los. Sobre como encontrar vulnerabilidades em serviços de rede expostos, eu recomendaria que você pesquisasse pelo serviço específico em:
Comprometer princípios em uma plataforma pode permitir que um atacante comprometa a outra, verifique em:
GCP <--> Workspace PivotingNo console GCloud, em https://console.cloud.google.com/iam-admin/asset-inventory/dashboard, você pode ver recursos e IAMs sendo usados por projeto.
Aqui você pode ver os ativos suportados por esta API: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Verifique ferramentas que podem ser usadas em várias nuvens aqui.
gcp_scanner: Este é um scanner de recursos GCP que pode ajudar a determinar qual nível de acesso certas credenciais possuem no GCP.
gcp_enum: Script Bash para enumerar um ambiente GCP usando gcloud cli e salvando os resultados em um arquivo.
GCP-IAM-Privilege-Escalation: Scripts para enumerar altos privilégios IAM e para escalar privilégios no GCP abusando deles (não consegui fazer o script de enumeração rodar).
BF My GCP Permissions: Script para forçar suas permissões.
Lembre-se de que você pode usar o parâmetro --log-http
com o gcloud
cli para imprimir as requisições que a ferramenta está realizando. Se você não quiser que os logs ocultem o valor do token, use gcloud config set log_http_redact_token false
Além disso, para interceptar a comunicação:
Para usar um token OAuth de conta de serviço exfiltrado do endpoint de metadados, você pode simplesmente fazer:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)