Introdução
Com a constante evolução das ameaças, tornou-se inviável simular manualmente todas as técnicas de ataques existentes, mesmo mapeando as principais, ainda nos deparamos com uma série de desafios, seja para preparar um laboratório de simulação, realizar uma série de ataques, coletar evidências, e tudo isso em uma janela de tempo que, por vezes, não é grande. Para nos auxiliar com a simulação de ameaças, a Red Canary desenvolveu um projeto de código aberto, o Atomic Red Team. Com ele, podemos testar diversos cenários mapeados de acordo com o MITRE ATT&CK® ou podemos criar nossos próprios testes automatizados.
Nesta postagem, vamos abordar como utilizar o Atomic Red Team para realizar simulações de ataques em ambiente Windows.
Nota
A simulação de ataques é uma atividade de suma importância. Ao finalizar uma simulação, faça-se as seguintes perguntas:
Minha ferramenta de antimalware foi capaz de detectar e/ou bloquear?
Minha equipe de SOC (Security Operations Center) identificou?
Se eu desativar o antimalware, ainda serei capaz de detectar?
Quais logs me ajudam a identificar esse comportamento? O SOC está recebendo esses logs?
Pré-requisitos
Os requisitos listados aqui não interferem nos testes realizados pelo Atomic Red Team. Entretanto, como um bom analista de segurança, é importante termos logs para identificar incidentes e entender melhor o comportamento de cada ameaça. Nos próximos tópicos, vamos habilitar os logs do Sysmon e do PowerShell para enriquecer as informações de logs do Windows, o que ajudar a entender melhor o comportamento de cada teste executado.
Para a realização desta postagem, vamos utilizar uma máquina virtual com Windows 11.
Desabilitar Windows Defender
Em alguns casos, você pode querer se aprofundar mais no ataque e entender o que está acontecendo. Para isso, você não vai querer que o Defender bloqueie as simulações. Temos uma postagem falando sobre como desabilitar o Defender de forma persistente aqui.
Instalação do Sysmon (Opcional)
O Sysmon é uma ferramenta poderosa do Windows que nos permite ter visibilidade de uma série de eventos que, por padrão, não são habilitados no sistema operacional.
Para instalá-lo, acesse a página do Sysmon - Sysinternals e realize o download
Acesse o arquivo baixado e extraia-o
Após a extração, você deverá ver os arquivos
Abra o PowerShell no modo administrador e navegue até a pasta onde está o Sysmon. Em seguida, execute o seguinte comando
.\sysmon64.exe -accepteula -i
Feito isso, podemos visualizar os eventos gravados pelo Sysmon em "Applications and Services Logs" -> "Microsoft" -> "Windows" -> "Sysmon" -> "Operational".
Logs de PowerShell (Opcional)
O PowerShell é uma das ferramentas preferidas dos atacantes, e ter visibilidade das ações realizadas com ele é extremamente útil na detecção de ataques.
Para habilitar os logs, abra o "Local Group Policy Editor" pressionando "Windows" + "R", digite "gpedit.msc" e pressione "Enter"
Navegue até "Administrative Templates" -> "Windows Components" -> "Windows PowerShell" -> "Turn on PowerShell Script Block Logging" e altere para "Enabled"
Feito isso, os logs serão gravados todas as vezes que um script PowerShell for executado.
Os eventos poderão ser encontrados em "Applications and Services Logs" -> "Microsoft" -> "Windows" -> "PowerShell" -> "Operational" (Event ID 4104)
Atomic Red Team
Preparação
Para configurar o Atomic Red Team, abra o PowerShell como administrador e execute os seguintes comandos
powershell -ExecutionPolicy bypass
Install-Module -Name invoke-atomicredteam,powershell-yaml -Scope CurrentUser
Escolha "y" nas opções apresentadas
Em seguida, execute os comandos
IEX (IWR 'https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install-atomicredteam.ps1' -UseBasicParsing);
Install-AtomicRedTeam
Install-AtomicRedTeam -getAtomics -Force
Ao executar todos os comandos com sucesso, você deve ver uma pasta chamada "AtomicRedTeam" no diretório C:\
Uma vez instalado, podemos verificar se está funcionando utilizando o comando
help Invoke-AtomicTest
Sucesso, está funcionado!!
Simulação de ataque
Para o nosso teste, vamos simular a técnica "T1136.001 - Create Account: Local Account".
Execute o seguinte comando para listar as técnicas atômicas disponíveis para T1136.001.
invoke-atomictest T1136.001 -ShowDetails
O comando retorna os detalhes dos testes existentes e os comandos que serão executados em cada teste.
Temos algumas formas de executar esse teste. Por exemplo, podemos executar um teste específico, onde apenas o teste indicado será executado, no caso o 4
invoke-atomictest T1136.001 -TestNumbers 4
Podemos executar diversos testes de uma única vez, no caso o 4 e 5
invoke-atomictest T1136.001 -TestNumbers 4,5
Podemos executar pelo nome do teste
invoke-atomictest T1136.001 -TestNames "Create a new user in a command prompt"
Ou podemos simplesmente executar todos os testes de uma determinada técnica
invoke-atomictest T1136.001
Em todos os casos, podemos ver que os comandos foram executados com sucesso e os usuários criados. Podemos confirmar isso observando os usuários existentes
Com isso, assumo que a partir daqui você consiga realizar outros testes baseados nos testes atômicos e gerar insumos para sua equipe.
Essas ações geraram logs, e deixo aqui o desafio para identificar nos logs os comportamentos. Existem eventos de criação de usuário? Há algum log de criação de processo e linha de comando que execute a criação dos usuários? Existem logs de PowerShell que mostrem a criação do usuário via PowerShell?
Limpeza
Depois de executar os testes, algumas "sujeiras" podem permanecer no sistema operacional. O indicado em casos de laboratório é realizar um snapshot antes de executar os testes e depois restaurar esse snapshot. Entretanto, existem cenários em que isso pode não ser possível. Para esses casos, você pode executar o comando abaixo para realizar a limpeza dos artefatos deixados pelos testes.
invoke-atomictest T1136.001 -Cleanup
Extra
Alguns testes atômicos podem necessitar de dependências. Para verificar se as dependências são atendidas, podemos executar o seguinte comando
Invoke-AtomicTest TXXXX -GetPrereqs
ou
Invoke-AtomicTest T1053.005-5 -checkPrereqs
Por exemplo, o teste "T1053.005-5 Task Scheduler via VBA" necessita do Microsoft Word instalado na máquina.
Comments