/
Ransomware Containment

Desmistificando técnicas de ransomware usando assemblies.Net: um ataque em vários estágios

Na primeira parte desta série, analisamos exemplos de recursos de programação que podem ser usados pelo ransomware em suas técnicas maliciosas. Em seguida, na segunda parte, também examinamos os fundamentos da estrutura de software.Net da Microsoft e os conjuntos associados de EXE e DLL para entender como esses recursos são possíveis.  

Nesta parte final, combinaremos tudo o que foi discutido até agora em um conjunto de cargas úteis em estágios para demonstrar os fundamentos de um ataque de carga útil em vários estágios.

Configuração de carga útil e ataque

Começamos definindo as cargas que serão usadas para o ataque. Todos os recursos anteriores, incluindo os novos, serão levados em consideração para criar as cargas úteis escalonadas. Isso é para demonstrar em geral como as diferentes táticas e técnicas que vimos até agora podem ser reunidas, como é normalmente o caso do ransomware.

Vamos usar as seguintes cargas úteis:

  • Aplicação EXE inicial: carga útil do Stager
  • EXE principal do ransomware: Carga útil do estágio 1
  • DLL principal de ransomware: carga útil do estágio 2

O uso de várias cargas para realizar tarefas diferentes neste exemplo de ataque constitui um ataque em vários estágios. Analisando a série anterior sobre cargas úteis e beacons de malware, a segunda parte discutiu os tipos de cargas maliciosas com mais detalhes. Lá, expliquei a diferença entre os tipos de carga útil escalonada e escalonada. Em resumo, um stager geralmente é um aplicativo executável inicial menor que pode atuar como baixador, dropper e/ou carga útil de um arquivo de carga principal mais capaz e geralmente maior, conhecido como stage. O objetivo da carga útil do stager é configurar o palco principal. Neste exemplo de ataque, usando o teste de carga útil conforme descrito acima, as diferentes cargas terão as várias tarefas a seguir:

A carga útil do Stager EXE fará o seguinte:

  • Técnicas de evasão
  • Faz o download de dois arquivos de “texto” para o disco. Esses arquivos são, na verdade, um EXE e uma DLL.
  • Inicie o arquivo EXE
  • O encenador então sai
  • O EXE em execução (estágio 1) carrega a DLL (estágio 2)

As cargas de EXE e DLL do Stage-1 e Stage-2 executam então as seguintes ações maliciosas de ransomware:

  • Técnicas de evasão
  • Descoberta
  • Manipulação de processos
  • Enumeração de unidades e arquivos
  • Criptografia de arquivos

Stager: Executável de carga útil inicial (EXE)

O ataque começa com nossa carga inicial, o stager entregue à máquina vítima. Muitas vezes, isso ocorre por meio de técnicas de engenharia social, como phishing. Depois que a carga inicial for entregue e executada, ela começará a executar o conjunto malicioso de instruções.

Evasão

Primeiro, ele aguardará um tempo especificado sem realizar nenhuma ação. Essa é uma técnica de evasão projetada para superar a análise de ameaças de máquinas virtuais. Depois disso, ele baixará um executável conhecido da Internet, como um aplicativo de bloco de notas. Isso é uma isca e outra tática de evasão para evitar a detecção.

Sequência de ataque de ransomware: carga inicial - Stager

Outras técnicas podem incluir a verificação de cliques do mouse ou a verificação de diretórios de documentos em busca de evidências de arquivos associados ao uso normal de um sistema de computador, em vez de uma máquina virtual sandbox usada para análise de ameaças.

Baixador, dropper e carregador

Depois que essas ações iniciais de evasão forem executadas, a carga útil do stager (inicial) executará novamente uma terceira ação de hibernação. Ele aguardará novamente por um tempo especificado antes de continuar com o próximo conjunto de instruções, que será baixar os arquivos de carga útil do estágio. Esses arquivos são hospedados remotamente pelo atacante, conforme mostrado abaixo.

Sequência de ataque de ransomware: baixador do sistema de arquivos virtual

O stager então faz o download de dois arquivos de texto “notepadlog0120231224.txt” e “notepadlog0120231513.txt”. A próxima fase é mostrada em texto vermelho no exemplo abaixo.

Observe que os links de download dos arquivos de carga útil são, na verdade, ofuscados usando a codificação base64, que foi discutida como a quarta técnica na primeira parte desta série.

Sequência de ataque de ransomware: carga inicial - Download por etapas

A carga inicial converte a base64 internamente em tempo real nos links de download originais.

Os dois arquivos de texto baixados são, na verdade, um executável (EXE) e uma biblioteca de vínculo dinâmico (DLL), respectivamente, disfarçados de arquivos de texto. Essas são as cargas úteis de estágio 1 e estágio 2 para este exemplo de ataque de ransomware em vários estágios. Após downloads bem-sucedidos, esses arquivos são renomeados para seus tipos originais.

Sequência de ataque de ransomware: Bloco de notas

A carga útil do stager então inicia a carga executável do estágio 1 para iniciar o ataque real do ransomware. O stager agora completou sua finalidade e sai quando a carga útil do estágio 1 é carregada na memória e começa a ser executada. Portanto, conforme discutido na primeira técnica da primeira parte desta série, essa carga útil do estágio inicial é o downloader e o dropper para a carga útil do EXE e do estágio 2 da DLL e o carregador somente para a carga do estágio 1. A carga útil da DLL será carregada como uma carga útil de estágio 2 pela carga EXE de estágio 1 em execução, portanto, um ataque de carga útil de vários estágios.

Executável de estágio 1 (EXE)

Depois que a execução for passada para o executável de estágio 1, ele primeiro dormirá por um determinado período de tempo, conforme mostrado abaixo.

Sequência de ataque de ransomware: EXE Payload Stage 1

Em seguida, ele excluirá o arquivo de carga útil do stager “payload_initial_stager.exe” do sistema de arquivos como forma de remover qualquer evidência. No exemplo abaixo, o arquivo foi excluído e não está mais no diretório.

Sequência de ataque de ransomware: pasta de download

A carga útil do estágio 1 agora está pronta para executar seu conjunto de ações para continuar o resto do ataque.

Descoberta

Em seguida, ele executará algumas técnicas de descoberta no sistema infectado. Essas técnicas de descoberta permitem que um agente de ameaças entenda um pouco mais sobre o sistema infectado. O Discovery ajuda o operador da ameaça a fazer algumas considerações cruciais de segurança operacional para garantir o sucesso geral do ataque. Neste exemplo, a carga útil do estágio 1 executa uma verificação da lista de processos. Alguns processos que podem ser interessantes serão processos de Detecção e Resposta de Endpoint (EDR), antivírus (AV) ou de máquina virtual. Isso ajuda a entender a probabilidade de a carga ser detectada.

Sequência de ataque de ransomware: EXE Payload Discovery

Com base nos resultados das informações de descoberta, um agente de ameaças pode tomar algumas decisões importantes de segurança operacional. Por exemplo, se um processo EDR conhecido for encontrado no sistema ou a carga detectar processos da máquina virtual, a carga útil poderá ser instruída a sair para evitar a detecção.

Sequência de ataque de ransomware: ator implanta EDR

Como alternativa, o agente da ameaça pode decidir empregar técnicas adicionais de evasão para evitar o EDR ou até mesmo tentar usar outros meios para encerrar completamente o processo de EDR.

O Discovery também ajuda a determinar o valor do sistema comprometido. Por exemplo, é um servidor de banco de dados de produção ou um sistema de pagamento com dados valiosos do cliente? Quanto mais crítico for o sistema para uma empresa, maior a probabilidade de um resgate ser pago por ele.

Manipulação de processos: binários Living-off-the-Land (LoTL)

Outroconjunto de informações úteis são as informações relacionadas ao sistema, como sistema operacional, idioma local e hotfixes e atualizações instaladas ou ausentes no sistema. Esse tipo de informação pode ajudar a planejar ataques adicionais, como explorações de vulnerabilidades.

Supondo que o processo de EDR não tenha sido encontrado, a carga útil continuará porque o agente da ameaça pode estar confiante em lidar com outros. Portanto, depois de verificar as informações do processo, a carga executável do estágio 1 usa a técnica Living-off-the-Land e inicia um prompt de comando separado do Windows, conforme mostrado no exemplo abaixo.

Sequência de ataque de ransomware: ator implanta processos de máquina virtual EDR

Depois que o prompt de comando é iniciado, a carga passa alguns comandos do Windows para que ela seja executada. Esse comando gerará informações do sistema, como tipo de sistema, informações do processador, tempo de atividade e hotfixes. Um instantâneo da saída é mostrado em texto vermelho no exemplo abaixo.

Sequência de ataque de ransomware: binários LoTL de estágio 1

Biblioteca de links dinâmicos (DLL) de estágio 2

Conforme discutido nos artigos anteriores, um arquivo DLL contém código de computador que não pode ser executado sozinho. Então, em nosso exemplo, o EXE de estágio 1 também usa código na DLL de estágio 2 para finalizar o resto do ciclo de ataque.

Carga útil de DLL do estágio 1 de carregamento de EXE do estágio2 ․

Depois que a carga EXE de estágio 1 concluir suas ações, ela continuará carregando a carga de DLL de estágio 2. A carga útil da DLL contém o código que será usado nos estágios finais do ataque, que é verificar as unidades no sistema e, em seguida, criptografar os arquivos selecionados nessas unidades.

Sequência de ataque de ransomware: CMD iniciado

O código DLL primeiro executa uma verificação de unidade para encontrar as unidades no sistema infectado, listando informações úteis sobre cada uma delas. Na tela acima, são de particular interesse as informações sobre as unidades do sistema que estão prontas para acesso versus as que não estão. Isso ajuda a direcionar os arquivos nas unidades certas para criptografia e evitar erros ao tentar operar em unidades que são somente para leitura ou que não podem ser acessadas.

Criptografia

Neste ponto, a criptografia do resgate está pronta para prosseguir. O código de criptografia na DLL de estágio 2 primeiro verifica uma lista de arquivos de texto no diretório. Isso ocorre porque criptografaremos somente arquivos de texto nesta última demonstração. Em seguida, a carga útil exibe todos os arquivos de texto encontrados.

Sequência de ataque de ransomware: DLL de estágio 2

Os arquivos descobertos são então criptografados pela carga. As extensões de arquivo também são alteradas para “.encrypted” para mostrar os arquivos de texto criptografados.

Sequência de ataque de ransomware: DLL criptografada

Abaixo, também podemos ver as imagens de antes e depois do diretório em que os arquivos de texto estão localizados, mostrando as alterações após a criptografia.

Sequência de ataque de ransomware: arquivos criptografados na pasta de downloads

Finalmente, vem a nota de resgate: Isso normalmente alerta o usuário sobre o fato de que seus arquivos foram criptografados. Ele também os instrui sobre como pagar o resgate e obter a chave de descriptografia para descriptografar os arquivos. Em muitos casos, pagar o resgate não garante automaticamente o acesso à chave de decodificação.

Sequência de ataque de ransomware: resgate de carga útil em vários estágios

Observe que, em nosso exemplo, optamos por colocar todo o código de criptografia em um arquivo DLL que se tornou nossa carga útil de estágio 2. Isso ocorre principalmente porque, conforme discutido nos artigos anteriores, uma DLL é um arquivo de biblioteca, o que significa que ela pode ser reutilizada. Por exemplo, se, como atacante, optarmos por usar uma carga EXE de estágio 1 completamente diferente, talvez devido a novos aprimoramentos de evasão no futuro, não precisaremos reescrever a parte de criptografia do nosso código de carga para finalizar essa nova campanha de ataque. Podemos simplesmente emparelhar nossa nova carga com o arquivo DLL de estágio 2 existente e fazer com que o novo EXE carregue a DLL para criptografar arquivos.

Mitigação contra ransomware ․

Em última análise, o ransomware empregará três fronteiras principais de infecção, execução e persistência.

Eles podem ser amplamente categorizados como:

  • Sistema de arquivos
  • Registro
  • Memória
  • Rede (remota e local — movimento lateral)

Os defensores devem, portanto, buscar criar os conjuntos de ferramentas certos e utilizá-los da maneira correta para uma mitigação eficaz da segurança. Na terceira parte da série anterior sobre cargas úteis e beacons de malware, há uma análise mais detalhada da mitigação de defesa em profundidade, baseada na filosofia de supor violação e resiliência cibernética.

Esta série de três partes demonstrou como as diferentes táticas e técnicas usadas pelo malware e, especificamente, pelo ransomware podem surgir. Ao compreender essas diferentes táticas e técnicas, os defensores podem estar em melhor posição para avaliar suas políticas e defesas cibernéticas existentes para obter contramedidas eficazes.

Quer saber mais sobre como proteger sua organização contra ransomware e violações? Entre em contato conosco hoje.

Tópicos relacionados

No items found.

Artigos relacionados

O ransomware prejudica: veja como o Zero Trust pode ajudar a mitigar o risco
Ransomware Containment

O ransomware prejudica: veja como o Zero Trust pode ajudar a mitigar o risco

Como a segmentação Zero Trust da Illumio, baseada em visibilidade abrangente, pode ajudar quando se trata de mitigar os riscos de ransomware.

Entendendo o ransomware: o padrão de ataque mais comum
Ransomware Containment

Entendendo o ransomware: o padrão de ataque mais comum

Descubra o padrão comum de ataque de ransomware, da persistência oculta ao movimento lateral, e por que a microssegmentação baseada na visibilidade em tempo real o impede.

Ransomware: como organizações de pequeno e médio porte podem impedir sua propagação
Ransomware Containment

Ransomware: como organizações de pequeno e médio porte podem impedir sua propagação

Saiba como a segmentação Zero Trust ajuda organizações de pequeno e médio porte a visualizar fluxos de tráfego, fechar caminhos e impedir a propagação lateral do ransomware.

Cargas úteis de malware & Beacons: como as comunicações maliciosas começam
Cyber Resilience

Cargas úteis de malware & Beacons: como as comunicações maliciosas começam

Os beacons de malware são a forma como um invasor pode executar malware por meio de um script. Reconhecê-los ajuda a desenvolver estratégias de detecção e contenção.

Cargas úteis de malware & Beacons: tipos de cargas maliciosas
Cyber Resilience

Cargas úteis de malware & Beacons: tipos de cargas maliciosas

Compreender tipos distintos de cargas úteis e analisar um exemplo de código malicioso que elas podem empregar.

Cargas úteis de malware & Beacons: técnicas para mitigar o impacto
Cyber Resilience

Cargas úteis de malware & Beacons: técnicas para mitigar o impacto

Na parte final desta série, nos concentramos em algumas das técnicas de ofuscação usadas para disfarçar cargas úteis de malware e examinamos as técnicas de mitigação que as organizações podem empregar.

Suponha que a violação seja feita.
Minimize o impacto.
Aumente a resiliência.

Pronto para saber mais sobre a segmentação Zero Trust?