As máquinas comprometidas na rede de destino são gerenciadas por meio de uma infraestrutura de Comando e Controle (C&C, C2) especialmente projetada. Este artigo descreve a lógica de design do C2 e fornece a configuração passo a passo do redirecionador C2.
O relatório pode ser útil aos analistas de defesa no entendimento das operações dos grupos inimigos, além de fornecer as informações necessárias para quem deseja modelar os canais C2 inimigos. Mostraremos como criar um redirecionador HTTPS usando ferramentas básicas - nginx, um VPS minimalista, DNS gratuito e serviços de certificado PKI.
Introdução
A infra-estrutura C2 é construída com a intenção de servir a vários propósitos:
- ocultar a verdadeira localização do servidor C2;
- imitar a comunicação legítima;
- permitir acesso ao servidor C2 real apenas para tráfego de controle de malware;
- ser confiável - após a detecção de uma parte da infra-estrutura C2, no entanto, mantenha o canal C2 para o alvo.
O encaminhamento de porta simples usando ferramentas como socat ou SSH pode resolver o problema nº 1 e parcialmente nº 4. No entanto, para resolver os problemas nº 2 e nº 3, precisamos introduzir encaminhadores mais complexos - hosts que atuam como proxies reversos. tráfego para o servidor C2 real enquanto ainda fornece conteúdo falso para um visitante arbitrário. Neste artigo, vamos nos concentrar no HTTPS como um protocolo para comunicação externa C2. Uma visão geral de tal projeto é mostrada na Figura 1 abaixo:
Configuração de software
O recurso mais valioso para qualquer redirecionador é o endereço IP público e não requer nenhuma CPU poderosa ou recursos de memória para atingir seus objetivos. Portanto, imagens minimalistas de provedores de nuvem comuns, como AWS ou Azure, são adequadas (por exemplo, t3a.nano da AWS com 2 vCPUs, 500 MB de RAM e 8 GB de espaço em disco).
Depois de acessar tal host, estamos prontos para construir nossa configuração nginx:
Algumas configurações podem ser alteradas antes de reiniciar o nginx em nginx.conf na seção http para suportar tráfego HTTP específico, como nomes de domínio C2 potencialmente longos ou transferências de arquivos:
Domínio e certificado
Para prova de conceito, vamos utilizar um dos serviços que permite configurar o seu subdomínio DNS sem ter de registar o seu domínio, o freeDNS [1]. Aqui você pode registrar seus próprios registros A, AAAA, TXT em alguns domínios atraentes como allow.org, ignorelist.com, awiki.org etc.
Esteja ciente de que alguns ambientes maduros são rígidos sobre esses serviços DNS dinâmicos! Para tais fins, é sempre benéfico ter um domínio pré-comprado com um histórico longo e limpo. Equipes vermelhas profissionais possuem vários domínios de redirecionamento, apontando para serviços legítimos antes da interação real, enquanto invasores reais podem usar servidores da Web comprometidos.
Depois que o subdomínio recém-registrado for distribuído e pudermos ver o conteúdo de seu /usr/share/nginx/html/ por trás dele, é hora de solicitar um certificado HTTPS para nosso domínio usando certbot como este:
Isso criará certificados HTTPS em /etc/letsencrypt/live/<domain>/.
Condições de proxy
Agora estamos prontos para configurar o site no nginx. Antes disso, seria útil discutir a solução construtiva da lista introdutória: "Permitir acesso ao servidor C2 real apenas para tráfego de controle do agente."
Ao simular um adversário ético, seu principal objetivo é não prejudicar terceiros e permanecer dentro do acordo legal. Como resultado, você é responsável por reduzir o risco de comprometimento de máquinas não autorizadas, por exemplo, se um funcionário abrir uma macro infectada em seu PC doméstico. Além disso, além da funcionalidade real do C2, o servidor C2 pode conter ferramentas de pós-exploração, revelando informações adicionais sobre o invasor.
Portanto, é uma consideração crítica de segurança operacional para controlar o que perdemos. Vários métodos podem ser úteis aqui:
- Consultar ou identificar (por exemplo,
registros ASN públicos) o intervalo de endereços IP dos serviços de destino; defina o canal C2 apenas para solicitações provenientes desta área.
- Somente solicitações com uma substring específica de User-Agent são permitidas.
Além das vantagens listadas, a primeira ajuda a evitar a detonação completa de agentes em sandboxes de fornecedores, a segunda protege contra ações defensivas de analistas. Para ser honesto, não há como esconder o servidor C2 real de caçadores de ameaças experientes, mas esses dois métodos reduzem muito ou pelo menos atrasam esse cenário. No entanto, a segurança operacional madura deve ser complementada pela limpeza de impacto C2 e orquestração de redirecionador sensata (desativando proxies identificados).
A configuração do Nginx segue abaixo:
- cria uma página HTTPS com subdomínios e certificados cadastrados, servindo o conteúdo de /opt/paloaltonetworks.update.allowed.org/;
- tráfego de proxy para localhost:8080 somente se a solicitação contiver a substring "41.0.2228.0' e vier de 123.123.123.0/24 ou 213.213.213.0/24;
No servidor C2, inicie um ouvinte HTTPS em qualquer porta arbitrária, como 443, e encaminhe essa porta do redirecionamento localmente:
Estamos pulando intencionalmente a parte de configuração do servidor C2 deste artigo. Este é um tópico separado, existem muitos servidores C2, o que significa que a variabilidade está disponível [7]. Algumas observações são:
- Certifique-se de apontar o retorno de chamada do agente para seu subdomínio e não para o endereço de ligação do ouvinte C2;
- Se o servidor C2 exigir o formato de certificado PKCS12 HTTPS, monte-o a partir dos arquivos letsencrypt usando openssl. Exemplo para a plataforma Covenant C2:
Imitação de páginas da Web
As redes modernas dependem da análise de reputação de domínios e sites. Por exemplo, se um domínio for conhecido por distribuir malware, todos os fornecedores de proxy e firewall responsáveis usarão essas informações para impedir que os usuários de seus clientes visitem essa página da web.
A mesma lógica de categorização ajuda a controlar o tráfego do usuário para páginas de mídia social, jogos de azar ou pornografia. É importante que seu redirecionador se enquadre em alguma categoria legítima durante a fase operacional, como negócios ou educação. Além disso, alguns ambientes restritivos (como fintech) podem introduzir listas brancas para essas categorias.
A categorização inicial de novas páginas ocorre principalmente usando modelos de aprendizado de máquina de classificação multi-rótulo e é um tópico amplamente publicado [2][3]. As características de entrada são formadas usando as metainformações da página - o título, certas palavras no corpo do texto, comportamento do javascript, etc.
A melhor maneira de imitar uma página comercial legítima e entrar na categoria certa é clonar a empresa página. A falsificação inteligente pode funcionar bem mesmo se um analista de segurança visitar manualmente sua página durante uma resposta a um incidente - se o conteúdo da página e o domínio refletirem bem a funcionalidade de sua infraestrutura, o canal C2 pode passar despercebido e, portanto, ficar ativo por um longo período de tempo.
O subdomínio que registramos sugere informações atualizadas para qualquer produto da Palo Alto Networks (PAN), então decidimos clonar a página correspondente em docs.paloaltonetworks.com. O wget é bom para isso, mas certifique-se de usar a sessão tmux ou nohup para separar o processo de download da sessão SSH, pois isso pode demorar um pouco:
Se sua página de destino não estiver sendo exibida corretamente, considere adicionar as seguintes opções de wget durante a clonagem:
Depois de algum tempo, podemos verificar a classificação de nossa página pelos principais provedores: PAN [4], Symantec (ou seja, proxy BlueCoat) [5], CheckPoint [6], etc.
Se o confidente do alvo for conhecido ou puder ser determinado a partir de descrições de cargos anteriores, perfis de funcionários no LinkedIn ou registros de compras públicas, é fundamental apontar para um fornecedor específico.
A captura
Neste ponto, nossa estrutura C2 é totalmente funcional e pode ser usada para simular um inimigo real. Embora todos os trabalhos anteriores não digam respeito ao ponto Nr. 4 da lista original: "ser confiável - quando uma parte da infraestrutura C2 for encontrada, no entanto, mantenha o canal C2 para o destino." Esta subseção não aborda nenhuma configuração adicional, mas levanta a questão de como os invasores reais atendem a esse requisito.
Como você se lembra, na Fig. A Figura 1 mostra dois grupos de redirecionadores ocultos atrás de diferentes domínios e endereços IP. Um deles é usado para manipular interativamente recursos comprometidos para movimentação lateral e saída de dados (chamado de Short Haul [8] na literatura profissional), enquanto o segundo atua como um canal passivo de callback e Long Haul.
Long Haul usa um canal de rede separado (por exemplo, pode usar encapsulamento DNS em vez de transporte HTTPS) e pode usar uma família de malware diferente ou técnica de persistência. Os agentes por trás desse canal podem ter retornos de chamada raros (talvez uma vez por mês) e são usados apenas para restaurar o Short Haul.
Portanto, os analistas de segurança devem considerar a descoberta de um link redundante com uma pegada de rede completamente diferente. Qualquer conexão de um host comprometido a um host não autorizado deve ser suspeita.
Para operadores oponentes simulados, todo o trabalho descrito acima deve ser feito pelo menos duas vezes. É possível usar o mesmo servidor C2 para o link de longa distância, mas os invasores maduros usam infraestruturas separadas para ambas as redes.
achados
Neste artigo, discutiremos os conceitos-chave de uma infraestrutura real de comando e controle do adversário. Com esse conhecimento, os engenheiros de segurança entendem as abordagens e métodos dos agentes de ameaças e, portanto, são mais capazes de responder a incidentes. Propomos um design de redirecionador C2 simples para que outros grupos éticos da equipe vermelha possam usar essa abordagem. Isso deve levar a uma melhor simulação de grupos inimigos e fornecer treinamento mais valioso para infraestruturas defensivas.
Referências
[1] (Jan. 2021), Free DNS - Dynamic DNS - Static DNS subdomain and domain hosting, [Online], Disponível: https://freedns.afraid.org
[2] PD Woogue, GAA Pineda, CV Maderazo, Automatic Web Page Categorization Using Machine Learning and Educational-Based Corpus, International Journal of Computer Theory and Engineering, 2017.
[3] FD Fausti, F. Pugliese, D. Zardetto , Toward Automated Website Classification by Deep Learning, 2019.
[4] (janeiro de 2021), Palo Alto Networks URL filtering Test A Site, [online], disponível: https://urlfiltering.paloaltonetworks.com
[ 5] (Jan. 2021), Symantec Sitereview, [Online], Disponível: https://sitereview.bluecoat.com
[6] (Jan. 2021), URL Categorization | Check Point Software Technologies, [Online], Disponível: https://urlcat.checkpoint.com/urlcat/
[7] (Jan. 2021), The C2 Matrix, [Online], Disponível:https://www.thec2matrix.com/matrix
[8] (set. 2014), Infrastructure for Ongoing Red Team Operations, [online], disponível: https://blog.cobaltstrike.com/2014/09/09 /infraestrutura-para-operações-red-team-em andamento /