Voltar
Tabela de conteúdo

Na parte 2 do blog, continuamos monitorando o comportamento do malware após o esvaziamento do processo. O processo de esvaziamento é seguido por:

  • Identificação da vítima
  • Verificação de linha de comando e enumeração de processos
  • Mecanismos de persistência
  • Criptografia de arquivos

 

Leia a parte 1 aqui.

 

Identificação da vítima

A carga útil final implantada após o esvaziamento do processo tenta alcançar um endpoint de API na Internet, para identificar os detalhes geográficos da vítima.

 

Para determinar os detalhes da localização, o malware usa funções exportadas por “wininet.dll”:

  • Internet aberta (W)
  • URL aberto da Internet (W)
  • Arquivo de leitura da Internet ()
  • Internet CloseHandle ()

 

Etapa 1: A função InternetOpenW () é usada para inicialização da atividade na Internet empregando o “Microsoft Internet Explorer” como agente do usuário.

2 DJVU/STOP 1

 

Etapa 2: A vítima é identificada enviando uma solicitação GET para o seguinte URL: https://api.2ip.ua/geo.json via InternetOpenURLW () e a resposta do endpoint da API é armazenada na memória.

2 DJVU/STOP 2

Etapa 3: A função InternetReadFile () é usada para armazenar a resposta do servidor na memória do processo, conforme mostrado abaixo:

2 DJVU/STOP 3

 

  • A resposta é armazenada na memória:

2 DJVU/STOP 4

  • A mesma resposta é capturada usando um navegador da Web acessando a API mostrada na imagem abaixo, que tem parâmetros diferentes, como IP, country_code, região, latitude e longitude, CEP e fuso horário.

2 DJVU/STOP 5

 

  • O código do país é usado para classificar a vítima de uma lista de países armazenados no malware para evitar que o criptador seja executado em sistemas em países/idiomas na lista branca.
  • O malware processa a resposta do servidor e seleciona o “country_code” para verificar o valor do parâmetro em uma lista predefinida de idiomas/países.

2 DJVU/STOP 6

 

  • Conforme mostrado na imagem acima, os países na lista branca são:
    • Rússia
    • Bielorrússia
    • Ucrânia
    • Azerbaijão
    • Armênia
    • Tajiquistão
    • Cazaquistão
    • Quirguistão
    • Uzbequistão
    • Síria
  • Se o parâmetro “country_code” corresponder a qualquer um dos códigos de país da lista branca, o malware sai do processo e se encerra.

 

Verificação de linha de comando e enumeração de processos

O comportamento do malware depende dos argumentos da linha de comando.

The code responsible for processing the command line arguments
O código responsável pelo processamento dos argumentos da linha de comando

 

  • A função getCommandLineW recupera os argumentos da linha de comando e a função commandlineToArgvw aloca uma memória contígua para ponteiros para as cadeias de argumentos.
  • O malware resolve funções definidas em psapi.dll que executam tarefas relacionadas ao processo para enumeração dos processos em execução no sistema.
  • Esse comportamento é observado em ransomwares que implantam os carregadores de malware e códigos maliciosos de próxima etapa para evasão. Para isso, as seguintes funções são resolvidas:
    • Processos PSAPI.enum
    • Módulos de processo PSAPI.enum
    • psapi.getModuleBaseName W
  • O ransomware abre cada processo em execução no sistema por meio da API OpenProcess e recupera os identificadores de cada processo em execução.
  • Dessa maneira, o malware pode posteriormente fazer conexões com os processos em execução. A API EnumProcess é chamada por cada processo em execução para obter os detalhes do processo.

2 DJVU/STOP 8

 

Mecanismo de persistência

Por padrão, a execução inicial do ransomware não tem nenhum argumento de linha de comando. Portanto, o fluxo de controle, após a identificação da vítima, é obter persistência no sistema da vítima.

 

Persistência por meio do registro
    • Em uma máquina Windows, as seguintes chaves de registro são frequentemente alvo de malware para obter persistência no sistema:
  • HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ CurrentVersion\ Run
  • HKEY_LOCAL_MACHINE\ Software\ Microsoft\ Windows\ Versão atual\ RunOnce
  • HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Run
  • HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ Versão atual\ RunOnce

 

  • Essas chaves de registro podem ser feitas para apontar para um binário armazenado no sistema de arquivos, de forma que toda vez que o sistema for inicializado e um usuário fizer login, o binário seja executado sem qualquer interação do usuário.
  • Nesse caso, o ransomware usa a tecla Software\ Microsoft\ Windows\ CurrentVersion\ Run para instalar o malware, no sistema da vítima, em um local específico.
  • Como etapa inicial da persistência, o malware verifica o valor da chave “syshelper” no Registro do Windows em Software\ Microsoft\ Windows\ CurrentVersion\ Run para ver se o malware já está instalado.

2DJVU9

 

2DJVU10

 

  • Essa enumeração e modificação do registro são feitas por meio do seguinte conjunto de APIs do Win32:
    • RegOpenKey EXW
    • Valor de consulta RegExw
    • RegSet Value EXW
    • Chave RegClose
  • O ransomware cria um novo diretório em C:\\ Users\<user_name>\ AppData\ Local e copia a imagem de malware atual (binária) para ele. O diretório recém-criado tem um nome gerado a partir de um UUID.
  • Ao analisar a amostra, o seguinte diretório foi criado pelo malware com uma amostra contida no diretório: C:\\ Users\\ <user_name>AppData\ Local\ 66245023-274c-4e81-a77c-e98336b3a3a7\ <sample.exe>

2DJVU11

 

  • <sample.exe>O malware define o valor da chave de registro Software\ Microsoft\ Windows\ CurrentVersion\ Run como “SysHelper”, que aponta para C:\\ Users\\ <user_name>AppData\ Local\ 66245023-274c-4e81-a77c-e98336b3a3a7\ —Autostart.
  • Agora, o ransomware persiste no sistema da vítima. Sempre que o sistema é inicializado, <sample>o.exe é executado por um argumento de linha de comando —AutoStart

2DJVU12

 

2DJVU13

 

Execução do ICACLS
  • Logo após a modificação do registro, o malware usa o binário icacls.exe, presente no Windows, para impedir que o diretório C:\\ Users\\ <user_name>AppData\ Local\ 66245023-274c-4e81-a77c-e98336b3a3a7 seja excluído pelo usuário.
  • icacls.exe é um aplicativo de console de configuração de permissões da Microsoft, para administradores de sistema gerenciarem arquivos. O malware prepara a linha de comando para os icacls, conforme mostrado abaixo:

2DJVU14

 

  • O binário icacls é executado por meio da API createProcessW () com os argumentos da linha de comando mencionados acima.

2DJVU15

 

  • Detalhamento da sintaxe do comando:

icacls.exe <Target_directory><Permission><Security_identifier>: <Inheritance_settings><Operations>

  • Diretório de destino: C:\\ Users\\ <user_name>AppData\ Local\ 66245023-274c-4e81-a77c-e98336b3a3a7
  • Permissão: /deny
  • Security_Identifier: *s-1-1-0 (world — Um grupo de cada usuário)
  • Inheritance_settings: OI é herança de objeto/CI é herança de contêiner
  • Operações: DE é excluído/DC é deletar filho

 

As entradas de controle de acesso (ACEs) marcadas somente com “Herança de objetos” são aplicáveis aos arquivos em uma pasta, mas não às subpastas dentro dessa pasta. Os ACEs marcados somente com “Container Inheritance” são aplicáveis às subpastas da pasta, mas não aos arquivos

icacls “C:\\ Users\\ <user_name>AppData\ Local\ 6625023-274c-4e81-a77c-e98336b3a3a7” /negar *s-1-1-0 :( OI) (CI) (DE, DC)

 

Isso impede que os usuários excluam a pasta criada e seu conteúdo.

 

Persistência por meio da tarefa agendada
  • O ransomware cria uma tarefa agendada que executa a cópia da carga final com um argumento de linha de comando —Tarefa.
  • Isso é feito usando as funcionalidades COM da plataforma Windows, que criam uma tarefa chamada “Tarefa Time Trigger”.

2DJVU16

 

Atributos da tarefa
Valores de atributoNome da tarefaTarefa de acionamento de tempoFrequência de execução Intervalo de 5 minutos/“PT5M”Caminho binário <sample>C:\\ Users\\ <user_name>AppData\ Local\ 66245023-274c-4e81-a77c-e98336b3a3a7\ .exe — Tarefa

 

  • A tarefa definida por malware e suas propriedades podem ser visualizadas no programa Agendador de Tarefas no Windows

2DJVU17

 

2DJVU18

 

  • Depois que a tarefa agendada for configurada, o malware se executa com um novo conjunto de argumentos de linha de comando, conforme mostrado abaixo:

“— Administrador não é AutoStart não é tarefa”

2DJVU19

 

  • O malware usa a API ShellExecuteEXW para executar imagens de malware novamente, com novos argumentos de linha de comando, e sai do sistema.

2DJVU20

 

  • Uma instância recém-criada do malware pode ser vista na lista de processos com os novos argumentos da linha de comando “—Admin IsNotAutoStart IsNotTask”

 

Comportamento baseado em parâmetros

O comportamento do malware é governado principalmente pelos argumentos da linha de comando. O ransomware STOP/DJVU tem dois gatilhos de execução significativos:

  • Acionador inicial
  • Acionador de tarefas agendadas

 

Gatilho inicial
  • Quando o malware é implantado inicialmente, sem nenhum argumento na linha de comando, ele reaparece com os seguintes argumentos de linha de comando “—Admin IsNotAutoStart IsNotTask”.
  • Nesse estágio, o ransomware baixa ferramentas adicionais de malware, como trojans bancários, no sistema da vítima.

 

Acionador de tarefas agendadas
  • Quando o ransomware é executado a partir de uma tarefa agendada com o argumento de linha de comando “—Task”, ele começa a criptografar os arquivos no sistema da vítima.
Nenhum item encontrado.

Blogs relacionados