Cargas úteis e sinalizadores de malware: como as comunicações maliciosas começam
Entender os beacons de malware e saber como bloqueá-los pode ajudar a manter sua organização mais segura. Um beacon, também conhecido como payload, é um executável ou programa que se comunica com um ciberatacante por meio de algum canal de comunicação. Do ponto de vista do agente de ameaças, o gerenciamento de beacons é a base de sua campanha maliciosa. Dependendo do tipo e da capacidade de um beacon, é o meio pelo qual um agente de ameaças pode obter uma linha direta em sua rede, manter essa linha de comunicação e realizar suas metas e objetivos ilegais.
Por exemplo, o Ataque à cadeia de suprimentos SolarWinds envolveu um agente de ameaça indescritível usando beacon ou preparação de carga útil. Como vários relatórios de análise pós-incidente mostraram, esse foi um ataque sofisticado de vários estágios, no qual o malware Sunspot foi usado inicialmente para comprometer o fornecedor. Em seguida, veio a porta traseira Sunburst para os clientes do fornecedor. Depois que isso foi executado com sucesso, ele foi usado para entregar o conta-gotas somente de memória Teardrop, seguido pelo carregador Raindrop e pelo farol Cobalt Strike. Cada carga útil tinha um propósito e um conjunto de recursos exclusivos.
Etapas comuns em uma sequência de ataque de malware
Em casos de atividade maliciosa em que alguma vulnerabilidade está envolvida, seja do usuário final ou do sistema, a sequência de ataque normalmente segue o seguinte caminho:

É útil entender essas fases do ponto de vista do agente da ameaça. Ao aprender como os atacantes obtêm suas comunicações maliciosas para comando e controle, também podemos criar uma defesa contra eles. Vamos dar cada passo separadamente.
Infraestrutura do atacante
Do lado do atacante, haverá um ouvinte de comando e controle para receber e processar as comunicações de todas as máquinas vítimas comprometidas pela carga útil correspondente. O ouvinte será apoiado por servidores web, sistemas de e-mail, DNS, sistemas de alerta e servidores de ataque, que hospedam as ferramentas usadas na campanha de ameaças.
As comunicações do próprio atacante fora de sua infraestrutura provavelmente serão anonimizadas, ou seja, passarão por uma série de servidores proxy para ocultar sua verdadeira identidade. Aqui está um exemplo:

Para ataques mais sofisticados, os agentes de ameaças também podem implantar infraestruturas distribuídas dedicadas às suas campanhas específicas. Isso permite que eles criem ou destruam rapidamente a infraestrutura em várias localizações geográficas, conforme necessário. Uma parte importante dessa infraestrutura é o Sistema de Nomes de Domínio (DNS). Um invasor pode aproveitar o DNS para fornecer comunicações maliciosas à sua infraestrutura e também pode usar o DNS para exfiltrar (ou seja, roubar) dados.
Além da configuração da infraestrutura, provavelmente estarão os recursos humanos responsáveis pelo planejamento, implantação e gerenciamento da campanha maliciosa. A maioria das campanhas de ameaças tem toda uma equipe de pessoas e uma infraestrutura por trás delas; é improvável que sejam um programa individual.
O detalhamento a seguir mostra um exemplo de uma equipe de campanha de ataque. Observe como ela é semelhante à equipe de uma empresa típica de serviços de TI.

Para os agentes de ameaças, o processo de proteger sua própria infraestrutura e, ao mesmo tempo, evitar a detecção na rede da vítima é chamado de segurança operacional. Atores de ameaças sofisticados tendem a favorecer a alta segurança operacional. E para conseguir isso, eles usarão uma variedade de técnicas de evasão e ofuscação.
VULNERABILIDADE
Uma vulnerabilidade é simplesmente qualquer fraqueza inerente a um sistema de computador ou tecnologias relacionadas que um agente de ameaças procura explorar. Essa vulnerabilidade pode ter origem na origem (o fornecedor do equipamento) ou no destino (normalmente um usuário final). Por exemplo, em 2017, a vulnerabilidade SMBv1 da Microsoft foi explorada com sucesso por atacantes de ransomware em escala global. Aqui está uma olhada no relatório detalhado dessa vulnerabilidade:

Depois que uma vulnerabilidade do sistema ou do programa é descoberta, ela pode ser tornada pública; nesse caso, a vulnerabilidade recebe um número padrão de CVE (vulnerabilidades e exposições comuns). Ou pode ser conhecido apenas por alguns particulares e sem nenhuma correção disponível (também conhecida como “dia zero”). A fase de vulnerabilidade também pode se referir a vulnerabilidades mais comuns do usuário final, normalmente aproveitadas com engenharia social, como phishing e publicidade maliciosa. Nesse estágio, o objetivo geral do agente da ameaça é explorar a vulnerabilidade e transformá-la em uma oportunidade para um ataque bem-sucedido.
Ataque ou explore
A próxima fase significativa de um ataque ocorre quando o agente da ameaça obtém acesso a algum código que pode usar para aproveitar uma vulnerabilidade e, ao mesmo tempo, contornar os controles de segurança. Por exemplo, ao usar o Metasploit Framework como servidor atacante, um agente de ameaças encontrou três explorações disponíveis para a vulnerabilidade Windows SMBv1, conforme mostrado aqui:

Essas vulnerabilidades são do tipo aproveitado pelos infames WannaCry e NotPetya. campanhas de ransomware. Explorações como essas geralmente contêm o código de exploração da vulnerabilidade e um pequeno código de carga útil para comunicações maliciosas.
Um exploit geralmente é separado do farol ou da carga útil. No entanto, os dois geralmente são colocados juntos como shellcode. Quando o exploit obtém acesso ao sistema de destino, ele carrega um pequeno farol ou carga útil que pode chamar de volta ao atacante para concluir o ataque, um processo conhecido como preparação da carga útil.
Farol ou carga útil
Conforme mencionado acima, um farol ou carga útil é um executável ou programa que se comunica com o atacante por meio de algum canal de comunicação. Isso pode ser protegido por HTTPS ou usar um protocolo de texto simples, como DNS. O invasor, usando o que é conhecido como beacon ou retorno de chamada de carga útil, pode então transferir mais cargas úteis, geralmente com recursos adicionais para atingir os objetivos pretendidos.
No exemplo abaixo, você pode ver um Meterpreter carga útil como um EXE do Windows usando o Metasploit Framework veneno de msf:


Depois que essa carga útil for entregue e executada no sistema da vítima, ela criará silenciosamente uma conexão TCP reversa. A carga usa a porta padrão 4444 de dentro da rede da vítima até o endereço IP do atacante. Observe que o exemplo de carga útil acima teria uma grande chance de ser detectado no mundo real, pois foi gerado com valores padrão e sem codificação. Na verdade, é apenas um exemplo acadêmico.
Objetivos
Depois que um invasor executa o farol ou a carga útil, ele pode realizar sua campanha de ameaça. Isso pode envolver o roubo de dados, a instalação de ransomware ou a causa de algum outro tipo de interrupção.
Antes de prosseguir, aqui está um resumo das etapas que um invasor seguirá para atingir seu objetivo:
Etapa 1: Planeje a campanha e crie a infraestrutura correspondente, incluindo servidores web, servidores de e-mail, infraestrutura de DNS e servidores de ataque.
Etapa 2: Realize o reconhecimento dos alvos e sistemas selecionados.
Etapa 3: Selecione o ataque ou vulnerabilidade mais eficaz a ser explorado, usando uma combinação de humanos e sistemas.
Etapa 4: Desenvolva ou adquira as ferramentas de exploração correspondentes, incluindo os mecanismos de entrega.
Etapa 5: Configure a infraestrutura de ataque, incluindo a infraestrutura de comando e controle (também conhecida como “ouvinte”), para receber comunicações de beacon reverso.
Etapa 6: Execute a campanha maliciosa.
Etapa 7: Gerencie o farol e as cargas úteis para evitar a detecção e cumprir os objetivos da campanha.
Passo a passo do ataque
Depois que um agente de ameaças projeta e implementa a infraestrutura e a configuração relacionada, sua campanha maliciosa está pronta para começar. Para fazer isso, o agente da ameaça precisará que seus beacons ou cargas úteis sejam executados dentro da rede da vítima. Então, eles podem obter acesso, manter uma posição e realizar seus objetivos.
Vamos analisar algumas das etapas importantes do ponto de vista de um atacante.
Para começar, veja como gerar a carga útil desejada:

Nesse caso, a carga útil é gerada para se comunicar usando um domínio (app12.webcoms-meetings.com, mostrado como LHOST na primeira linha completa de verde) que imita alguns softwares de reunião e colaboração remota para o sistema operacional Windows. Uma verificação mostra que o domínio é resolvido para o endereço IP controlado pelo invasor.

A partir daqui, o atacante escolhe um mecanismo de entrega para sua entrada inicial no alvo. Neste exemplo, eles escolheram usar o spear phishing, um tipo de ataque de engenharia social que faz com que um usuário desavisado baixe o que acha ser uma atualização de seu software para reuniões remotas. O invasor configurou um domínio correspondente (e-mail e web) e uma infraestrutura de site para dar suporte a esse método de entrega de engenharia social, conforme mostrado abaixo:

O atacante espera que o usuário desavisado baixe e execute a carga. Ou, se o usuário visitar o site de phishing, a carga pode ser executada automaticamente por meio de um drive-by-download. De qualquer forma, a carga disfarçada está agora no computador do usuário e pronta para ser executada, conforme mostrado aqui:

Quando a carga está em execução, ela retorna silenciosamente ao comando e controle do atacante. UM ouvinte já estará funcionando do lado do atacante para receber as comunicações de retorno de chamada. No exemplo abaixo, um manipulador ou ouvinte de carga útil, exploração/multi/manipulador, foi configurado do lado do atacante para receber comunicações do reverso_tcp carga útil em execução na máquina da vítima por meio do domínio malicioso app12.webcoms-meetings.com.

Quando o beacon atinge a infraestrutura do invasor, o ouvinte ou manipulador relevante recebe a conexão e a carga inicial pode baixar uma carga principal muito maior, conhecida como Stage. Isso pode ser visto abaixo com a mensagem “estágio de envio (175174) para 203.0.113.1”. A máquina vítima está protegida por um firewall NAT com o IP externo 203.0.113.1. A carga útil do atacante neste exemplo é a versátil Meta-Split Meterpreter.

Depois que o farol inicial baixa a carga principal, ele está pronto para continuar o resto do ataque. Após a execução bem-sucedida, o controle do programa é então passado para essa carga principal (Stage) para entregar um projétil para o atacante. Tudo isso acontece na memória e envolve técnicas de injeção de código. A próxima captura de tela mostra o atacante com acesso prático pelo teclado à máquina da vítima. O invasor pode executar o comando “dir” e ver todos os arquivos na pasta de downloads do usuário.

A partir daqui, o atacante faz algum reconhecimento interno (também conhecido como “descoberta”) na máquina da vítima. O atacante agora pode obter as informações da conta e do diretório da vítima. Por exemplo, o nome de usuário registrado para a máquina comprometida é “ama”. Eles podem até mesmo capturar uma captura de tela da área de trabalho do Windows do sistema de destino, conforme mostrado aqui:

Nesse ponto, o invasor também pode escanear a rede interna para descobrir outros sistemas. A próxima captura de tela mostra uma varredura do protocolo ARP (Address Resolution Protocol) da rede interna. Isso será útil para movimento lateral, descrita posteriormente.

O atacante também pode realizar ações mais maliciosas, como exfiltrar (roubar) um Project_Progress.pdf arquivo da máquina da vítima. Conforme mostrado abaixo, eles também podem fazer o upload do Mimikatz, uma ferramenta maliciosa para roubar credenciais de usuários. Os atacantes precisam de credenciais com privilégios elevados para realizar ações no nível do sistema e movimentos laterais dentro de uma rede.

O exemplo abaixo mostra como o invasor pode executar a ferramenta de despejo de credenciais Mimikatz carregada para visualizar hashes de senha na máquina Windows comprometida.

Outra etapa crítica para o atacante é criar uma rota de volta para a máquina vítima, mesmo depois de ela ter sido reinicializada pelo usuário. É aqui que a técnica da persistência entra em jogo. Os atacantes têm várias maneiras de fazer isso, incluindo cargas úteis reversas de execução automática e backdoors persistentes.
Conforme mostrado abaixo, o invasor opta por executar um módulo de persistência pós-exploração, que envolve um Visual Basic Script (VBScript) colocado na pasta Windows Temp do usuário conectado, UOPFNWO.vbs. O invasor então instala uma entrada de registro do Windows para permitir que o script seja executado automaticamente após a inicialização da máquina.

Agora, o invasor garantiu que o script de carga útil possa se conectar novamente ao ouvinte, mesmo que a máquina seja reinicializada. No entanto, os arquivos no disco agora também podem ser detectados por uma verificação antivírus (AV) do sistema de arquivos.
Finalmente, o atacante desejará limpar todas as evidências em potencial. Para fazer isso, eles podem remover arquivos e entradas maliciosas originais e criptografar ou até mesmo misturar arquivos maliciosos entre arquivos legítimos do sistema. Para encobrir ainda mais seus rastros, eles também podem excluir cópias de sombra e registros do sistema.
Análise e perícia do ataque
Agora, examinarei algumas respostas iniciais a incidentes (IR) e a análise básica de componentes específicos do ataque. Isso lhe dará uma melhor compreensão de certas ações maliciosas.
Análise de rede e DNS
Começando com a análise da comunicação de rede da máquina vítima, observa-se que o IP interno (10.1.1.81) estabeleceu uma conexão TCP na porta remota 443 com o nome DNS externo do atacante. Essa é uma comunicação de comando e controle.


Em seguida, analisando os componentes típicos envolvidos em uma hierarquia regular de resolução de DNS, podemos detalhar o processo do invasor:
- Primeiro, o agente da ameaça registrou um domínio: webcoms-meetings.com
- O domínio aponta para o IP externo 203.0.113.123.
- O atacante usa o nome do subdomínio app12.webcoms-meetings.com para direcionar o tráfego das cargas úteis nas máquinas comprometidas para seu comando e controle.

Os agentes de ameaças também podem tentar extrair dados usando o DNS. Por exemplo, eles podem usar registros DNS TXT ou até mesmo informações exclusivas codificadas sobre suas vítimas como parte de uma suposta consulta de DNS de saída. Essas consultas serão recebidas pelo servidor DNS autoritário sob o controle do invasor. Um servidor DNS autoritário recebe e responde a consultas de DNS para um domínio específico.
Os agentes de ameaças também podem usar algoritmos de geração de domínio (DGAs) para gerar automaticamente milhares de domínios todos os dias. Com essa técnica, uma máquina infectada terá um código embutido (ou seja, um algoritmo) para gerar e depois tentar se conectar a vários desses domínios gerados durante um período especificado. Por exemplo, ele pode tentar se conectar a 1.000 domínios gerados a cada 24 horas até que um deles seja bem-sucedido. O invasor então registrará alguns desses domínios todos os dias e os manterá ativos por curtos períodos de tempo.
Esses domínios provavelmente receberão comunicações maliciosas de vez em quando. Essa técnica, popularizada pela família de malware Conficker, dificulta a criação de um lista de negações como um interruptor de interrupção. Para evitar ainda mais a detecção e manter a resiliência, os agentes de ameaças mais sofisticados também usam uma infraestrutura distribuída que combina proxies, redirecionadores e balanceadores de carga.
Análise do sistema
A maioria das operações típicas de pós-exploração de carga útil ou beacon envolve a manipulação de processos do Windows, que ocorrem inteiramente na memória. Um invasor com capacidade de manipulação de processos pode iniciar novos processos na máquina da vítima. Isso pode ser um shell interativo nativo (Windows). cmd.exe) que permite ao atacante usar comandos nativos do Windows. O atacante também pode iniciar processos de forma não interativa, conforme mostrado aqui:

Na máquina vítima, um despejo de processo (mostrado abaixo) exibe os processos recém-criados com seus respectivos IDs de processo, 2624 e 1972, ambos em execução.

A capacidade de iniciar novos processos é muito útil. O invasor pode iniciar um novo processo desavisado, como o notepad.exe, e depois migrar o original carga maliciosa processe até ele usando injeção de código/ DLL. É uma técnica que faz com que um processo malicioso no sistema pareça legítimo; discutirei isso com mais detalhes na segunda parte desta série.
O atacante, como parte de sua evasão pós-exploração, migra o processo malicioso original, web1_meeting_update.exe (2472), para um novo notepad.exe processo (1768), conforme mostrado aqui.

Na máquina da vítima, o processo malicioso original, PID 2472, foi migrado e agora está sendo executado como notepad.exe com ID de processo 1768. Conforme mostrado abaixo, somente o novo processo está sendo executado agora.

Com base na técnica de persistência anterior, a pasta Windows Temp (veja abaixo) mostra o VBScript usado e as chaves de execução automática correspondentes que foram criadas no registro para o script malicioso.

Uma análise estática inicial do arquivo de carga executável malicioso original mostra que ele tem vários fatores de risco associados. Por exemplo, ele carrega algumas bibliotecas (DLLs) interessantes do Windows, especialmente aquelas usadas para comunicações de rede. Uma análise dinâmica e de memória correspondente exibirá o comportamento suspeito de um processo notepad.exe fazendo conexões de rede.

Conclusões
Neste artigo, discuti algumas das considerações e ações típicas envolvidas em uma campanha de ameaças e suas comunicações maliciosas associadas. Espero que isso lhe dê algumas dicas sobre como e por que um agente de ameaças usa certas técnicas.
Podemos resumir o ciclo de ataque que leva à comunicação maliciosa em três fases:
- Entrada inicial
- Execução
- Comando e controle
Uma boa maneira de abordar as estratégias de mitigação é aplicar o presumir violação filosofia. Ou seja, suponha que o invasor já esteja dentro e que, portanto, seus principais objetivos de segurança sejam a detecção e a contenção. Além disso, seus resultados de segurança devem incluir pelo menos visibilidade automatizada, alerta e contenção (Segmentação Zero Trust). Discutirei as técnicas de mitigação com mais detalhes na terceira e última parte desta série do blog.
No próximo artigo, segunda parte desta série, analisarei mais detalhadamente os beacons e as cargas úteis e explicarei por que um agente de ameaças pode escolher um tipo em vez de outro. Também vou me aprofundar em algumas das técnicas avançadas que os atacantes usam para evasão e ofuscação.