GWS - Google Platforms Phishing
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)
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 do 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 do 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)
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 do Google") e convidar membros para ele. Se aceitarem, podem pensar que estão conversando com o Suporte do Google:
Nos meus testes, no entanto, os membros convidados não receberam nem mesmo um convite.
Você pode verificar como isso funcionou no passado em: https://www.youtube.com/watch?v=KTVHLolz6cE&t=904s
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 enviava um e-mail para esse endereço de e-mail notificando que ele foi mencionado 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:
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.
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).
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 só verão seu aviso sobre uma reunião em 5 minutos e que precisam ler aquele link.
Aparentemente, usando a API você pode definir como Verdadeiro que as pessoas aceitaram o evento e até mesmo criar comentários em nome delas.
É 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:
Por exemplo, acessando https://script.google.com/macros/s/AKfycbwuLlzo0PUaT63G33MtE6TbGUNmTKXCK12o59RKC7WLkgBTyltaS3gYuH_ZscKQTJDC/exec você verá:
Observe que um aviso aparecerá à medida que o conteúdo for carregado dentro de um iframe.
É possível criar App Scripts anexados a documentos para tentar obter acesso ao token OAuth de uma vítima, para mais informações, consulte:
GWS - App ScriptsQualquer 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).
Observe 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.
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 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)
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.
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á questionado 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 (observe 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 será adicionada à 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
quanto cloud-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 as origens Javascript e URIs de redirecionamento necessárias
Você pode definir em ambos algo como http://localhost:8000/callback
para testes
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.
Vá para http://localhost:8000
, clique no botão Login with Google, você será solicitado com uma mensagem como esta:
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:
GCP - Token Persistanceglcoud
É possível fazer algo usando gcloud em vez do console da web, verifique:
GCP - ClientAuthConfig Priveschttps://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, Como faço para Red Team GSuite?
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)