
Código-fonte que ilustra um servidor C2 de demonstração para o cenário de execução do CVE-2024-23700.
Projeto que demonstra o projeto e a construção de um servidor de comando e controle (C2 Server) para o cenário experimental de exploração da vulnerabilidade de escalonamento de privilégios CVE-2024-23700. Este servidor atua recebendo, processando, classificando e exibindo dados sensíveis roubados de dispositivos Android alvo.
A documentação e o código-fonte neste repositório destinam-se exclusivamente a fins educacionais, análise de segurança e testes em ambientes autorizados. Não utilize em dispositivos, contas ou dados fora do escopo de testes legítimos.
Disciplina do projeto: Segurança em dispositivos móveis
Equipe responsável: Projeto realizado por um grupo de 4 membros.
Durante o processo de pesquisa e conclusão do projeto de design deste Servidor C2, a equipe foi responsável pelas seguintes tarefas:
data.json, otimizado para um PoC rápido e leve.O sistema C2 Server adota o modelo Cliente-Servidor, no qual o aplicativo Android malicioso (PoC) atua como Cliente, enviando dados continuamente. A arquitetura C2 é dividida em dois componentes de processamento independentes para garantir alta velocidade e flexibilidade.
Fluxo operacional principal do C2 Server:
/ é projetado com um mecanismo de processamento duplo. Se acessado pelo método GET (varredura de navegador), o servidor retorna um erro 404 falso para se esconder. Se receber um método POST contendo formato JSON do malware, o servidor o aceita e extrai o identificador do dispositivo.s_cache, gps_cache).data.json./api/data e ler o banco de dados.device_id), faz uma varredura profunda na estrutura para extrair parâmetros de hardware (RAM, Bateria, SO) e os exibe visualmente no radar.Código da vulnerabilidade: CVE-2024-23700
Nível de gravidade no Android: Crítico
Componente relacionado: Android Companion Device Manager
Patch de referência: Android Wear Security Bulletin 2024-05-01
Este servidor C2 foi projetado como parte de uma rede experimental, recebendo fluxos de dados de inteligência de dispositivos Android comprometidos com sucesso por meio da vulnerabilidade acima.
CVE-2024-23700-C2-Server/
├── backend/
│ ├── app.py - Inicializa o Endpoint da API, processa disfarce e classificação JSON
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── pages/
│ │ │ ├── Dashboard.jsx - Tela de radar com visão geral dos dispositivos
│ │ │ └── DeviceDetails.jsx - Diálogo de análise aprofundada do payload
│ │ ├── App.jsx
│ │ └── App.css
│ ├── package.json
│ └── nginx.conf - Personalização do Reverse Proxy para o frontend
├── data.json - Banco de dados de arquivo simples para armazenar registros (montado por volume)
├── docker-compose.yml - Gerencia contêineres e rede interna
├── .gitignore
└── README.md
| Componente | Descrição | Caminho |
|---|---|---|
Backend Flask (app.py) | Centro de controle (C2), escuta, classifica e armazena dados em data.json. | backend/app.py |
| Dashboard Radar | Painel de controle central, agrupa alvos e exibe parâmetros de HW/SO e quantidade de payloads. | frontend/src/pages/Dashboard.jsx |
| Device Details Modal | Interface de análise detalhada dos dados da vítima (Modal XL), fornecendo sistema Accordion e tabela de dados dinâmica. | frontend/src/pages/DeviceDetails.jsx |
| Arquivo de configuração Docker | Coordena a implantação do Backend (porta 5000) e do Nginx Frontend (porta 80) via Reverse Proxy. | docker-compose.yml |
Em vez de usar lógica complexa, o servidor identifica e rotula automaticamente com base nos blocos de dados (cache) retornados, e a interface Frontend integra um dicionário inteligente (MODULE_MAP e COLUMN_TRANSLATIONS) para padronizar e "traduzir" os resultados:
s_cache).c_cache).cal_cache).n_cache).gps_cache).Além disso, o sistema converte automaticamente timestamps brutos para o horário local legível e interpreta códigos numéricos em estados reais (ex.: Tipo de chamada 1 = "↙️ Chamada recebida").
Toda a infraestrutura C2 é operada com docker compose para garantir consistência e eliminar discrepâncias de ambiente. A estrutura executa 2 serviços principais:
data.json na área de memória /app/data.json dentro do contêiner. Isso garante que os dados de inteligência sejam salvos permanentemente, mesmo que o contêiner seja excluído ou reiniciado. O serviço aplica a política restart: always./api/ são encaminhadas automaticamente (proxy_pass) para o Backend para maior segurança. Este contêiner deve iniciar após o Backend (depends_on) para evitar erros de perda de conexão inicial.data.json tenha permissões de leitura/gravação adequadas no servidor físico antes de iniciar o Docker.