GWS - Google Platforms Phishing
Reading time: 9 minutes
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Generic Phishing Methodology
Phishing Methodology - HackTricks
Google Groups Phishing
Aparentemente, por padrão, em workspace os membros podem criar grupos e convidar pessoas para eles. Você pode então modificar o e-mail que será enviado ao usuário adicionando alguns links. O e-mail virá de um endereço google, então parecerá legítimo e as pessoas podem clicar no link.
Também é possível definir o endereço FROM como o e-mail do grupo Google para enviar mais e-mails para os usuários dentro do grupo, como na imagem a seguir, onde o grupo google--support@googlegroups.com
foi criado e um e-mail foi enviado a todos os membros do grupo (que foram adicionados sem qualquer consentimento)
 (1).png)
Google Chat Phishing
Você pode ser capaz de iniciar um chat com uma pessoa apenas tendo seu endereço de e-mail ou enviar um convite para conversar. Além disso, é possível criar um Espaço que pode ter qualquer nome (por exemplo, "Suporte Google") e convidar membros para ele. Se eles aceitarem, podem pensar que estão conversando com o Suporte Google:
.png)
tip
Nos meus testes, no entanto, os membros convidados nem sequer receberam um convite.
Você pode verificar como isso funcionou no passado em: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
Google Doc Phishing
No passado, era possível criar um documento aparentemente legítimo e em um comentário mencionar algum e-mail (como @user@gmail.com). O Google enviou um e-mail para esse endereço de e-mail notificando que eles foram mencionados no documento.
Hoje em dia, isso não funciona, mas se você der ao e-mail da vítima acesso ao documento, o Google enviará um e-mail indicando isso. Esta é a mensagem que aparece quando você menciona alguém:
.png)
tip
As vítimas podem ter mecanismos de proteção que não permitem que e-mails indicando que um documento externo foi compartilhado com elas cheguem ao seu e-mail.
Google Calendar Phishing
Você pode criar um evento de calendário e adicionar quantos endereços de e-mail da empresa que você está atacando tiver. Programe este evento de calendário em 5 ou 15 min a partir do horário atual. Faça o evento parecer legítimo e coloque um comentário e um título indicando que eles precisam ler algo (com o link de phishing).
Este é o alerta que aparecerá no navegador com um título de reunião "Demissão de Pessoas", então você poderia definir um título mais parecido com phishing (e até mesmo mudar o nome associado ao seu e-mail).
.png)
Para parecer menos suspeito:
- Configure para que os destinatários não possam ver as outras pessoas convidadas
- NÃO envie e-mails notificando sobre o evento. Assim, as pessoas verão apenas seu aviso sobre uma reunião em 5 minutos e que precisam ler aquele link.
- Aparentemente, usando a API, você pode definir como True que as pessoas aceitaram o evento e até mesmo criar comentários em nome delas.
App Scripts Redirect Phishing
É possível criar um script em https://script.google.com/ e expor como uma aplicação web acessível por todos que usará o domínio legítimo script.google.com
.
Com algum código como o seguinte, um atacante poderia fazer o script carregar conteúdo arbitrário nesta página sem parar de acessar o domínio:
function doGet() {
return HtmlService.createHtmlOutput(
'<meta http-equiv="refresh" content="0;url=https://cloud.hacktricks.wiki/en/pentesting-cloud/workspace-security/gws-google-platforms-phishing/index.html#app-scripts-redirect-phishing">'
).setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL)
}
Por exemplo, acessando https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec você verá:
 (1).png)
tip
Note que um aviso aparecerá enquanto o conteúdo é carregado dentro de um iframe.
Phishing de OAuth de App Scripts
É possível criar App Scripts anexados a documentos para tentar obter acesso ao token OAuth de uma vítima, para mais informações consulte:
Phishing de Apps OAuth
Qualquer uma das técnicas anteriores pode ser usada para fazer o usuário acessar uma aplicação Google OAuth que solicitará ao usuário algum acesso. Se o usuário confiar na fonte, ele pode confiar na aplicação (mesmo que esteja pedindo permissões de alto privilégio).
note
Note que o Google apresenta um aviso feio informando que a aplicação é não confiável em vários casos e os administradores do Workspace podem até impedir que as pessoas aceitem aplicações OAuth.
Google permite criar aplicações que podem interagir em nome dos usuários com vários serviços Google: Gmail, Drive, GCP...
Ao criar uma aplicação para agir em nome de outros usuários, o desenvolvedor precisa criar um app OAuth dentro do GCP e indicar os escopos (permissões) que o app precisa para acessar os dados dos usuários.
Quando um usuário deseja usar essa aplicação, ele será solicitado a aceitar que a aplicação terá acesso aos seus dados especificados nos escopos.
Esta é uma maneira muito atraente de phish usuários não técnicos para usar aplicações que acessam informações sensíveis porque eles podem não entender as consequências. No entanto, em contas de organizações, existem maneiras de evitar que isso aconteça.
Aviso de App Não Verificado
Como foi mencionado, o Google sempre apresentará um aviso ao usuário para aceitar as permissões que estão concedendo à aplicação em seu nome. No entanto, se a aplicação for considerada perigosa, o Google mostrará primeiro um aviso indicando que é perigosa e dificultando mais para o usuário conceder as permissões ao app.
Esse aviso aparece em apps que:
- Usam qualquer escopo que pode acessar dados privados (Gmail, Drive, GCP, BigQuery...)
- Apps com menos de 100 usuários (apps > 100 um processo de revisão também é necessário para parar de mostrar o aviso de não verificado)
Escopos Interessantes
Aqui você pode encontrar uma lista de todos os escopos OAuth do Google.
- cloud-platform: Visualizar e gerenciar seus dados em serviços do Google Cloud Platform. Você pode se passar pelo usuário no GCP.
- admin.directory.user.readonly: Ver e baixar o diretório GSuite da sua organização. Obter nomes, telefones, URLs de calendário de todos os usuários.
Criar um App OAuth
Comece criando um ID de Cliente OAuth
- Vá para https://console.cloud.google.com/apis/credentials/oauthclient e clique em configurar a tela de consentimento.
- Em seguida, você será perguntado se o tipo de usuário é interno (apenas para pessoas na sua organização) ou externo. Selecione o que melhor se adequa às suas necessidades
- Interno pode ser interessante se você já comprometeu um usuário da organização e está criando este App para phish outro.
- Dê um nome ao app, um e-mail de suporte (note que você pode definir um e-mail de grupo do Google para tentar se anonimizar um pouco mais), um logo, domínios autorizados e outro e-mail para atualizações.
- Selecione os escopos OAuth.
- Esta página é dividida em permissões não sensíveis, permissões sensíveis e permissões restritas. Sempre que você adicionar uma nova permissão, ela é adicionada em sua categoria. Dependendo das permissões solicitadas, diferentes avisos aparecerão para o usuário indicando quão sensíveis essas permissões são.
- Tanto
admin.directory.user.readonly
quantocloud-platform
são permissões sensíveis.
- Adicione os usuários de teste. Enquanto o status do app for teste, apenas esses usuários poderão acessar o app, então certifique-se de adicionar o e-mail que você vai phish.
Agora vamos obter credenciais para uma aplicação web usando o ID de Cliente OAuth criado anteriormente:
- Volte para https://console.cloud.google.com/apis/credentials/oauthclient, uma opção diferente aparecerá desta vez.
- Selecione criar credenciais para uma aplicação Web
- Defina os origens Javascript e URIs de redirecionamento necessários
- Você pode definir em ambos algo como
http://localhost:8000/callback
para teste
- Obtenha suas credenciais da aplicação
Finalmente, vamos executar uma aplicação web que usará as credenciais da aplicação OAuth. Você pode encontrar um exemplo em https://github.com/carlospolop/gcp_oauth_phishing_example.
git clone ttps://github.com/carlospolop/gcp_oauth_phishing_example
cd gcp_oauth_phishing_example
pip install flask requests google-auth-oauthlib
python3 app.py --client-id "<client_id>" --client-secret "<client_secret>"
Vá para http://localhost:8000
, clique no botão Login with Google, você será solicitado com uma mensagem como esta:
.png)
O aplicativo mostrará o token de acesso e o token de atualização que podem ser facilmente usados. Para mais informações sobre como usar esses tokens, verifique:
Usando glcoud
É possível fazer algo usando gcloud em vez do console da web, verifique:
GCP - ClientAuthConfig Privesc
Referências
- https://www.youtube-nocookie.com/embed/6AsVUS79gLw - Matthew Bryant - Hacking G Suite: The Power of Dark Apps Script Magic
- https://www.youtube.com/watch?v=KTVHLolz6cE - Mike Felch e Beau Bullock - OK Google, How do I Red Team GSuite?
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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.