A participação falhou: levamos o AgentTesla à água limpa. Parte 2


Continuamos uma série de artigos sobre análise de malware. Na primeira parte, falamos sobre como Ilya Pomerantsev, especialista em análise de código mal-intencionado do CERT Group-IB, fez uma análise detalhada de um arquivo recebido por correio de uma empresa européia e encontrou o spyware AgentTesla lá . Neste artigo, Ilya apresenta os resultados de uma análise em fases do módulo principal AgentTesla .

O Agent Tesla é um software de espionagem modular distribuído como malware como serviço sob o disfarce de um produto legal de keylogger. O Agent Tesla pode extrair e transmitir credenciais do usuário de navegadores, clientes de email e FTP para o servidor para atacantes, registrar dados da área de transferência e capturar a tela do dispositivo. No momento da análise, o site oficial dos desenvolvedores não estava disponível.

Arquivo de configuração


A tabela abaixo lista quais recursos são usados ​​na amostra usada:
Descrição do produto
Valor
Sinalizador de uso do KeyLogger
verdade
Sinalizador para usar o ScreenLogger
falsa
Intervalo de envio de logs do KeyLogger em minutos
20
Intervalo de envio de log do ScreenLogger em minutos
20
Sinalizador para processar a chave Backspace. Falso - somente log. Verdadeiro - apague a chave anterior
falsa
Digite CnC. Opções: smtp, webpanel, ftp
smtp
Sinalizador de ativação do encadeamento para finalizar processos da lista "% filter_list%"
falsa
Sinalizador de desativação do UAC
falsa
Desativar sinalizador do gerenciador de tarefas
falsa
Sinalizador de desativação do CMD
falsa
Sinalizador de desativação da janela Executar
falsa
Desativar sinalizador do visualizador do registro
falsa
Desativar pontos de restauração do sistema
verdade
Sinalizador de desativação do painel de controle
falsa
Sinalizador de desativação do MSCONFIG
falsa
Sinalizador de desativação do menu de contexto do Explorer
falsa
Sinalizador de pino do sistema
falsa
Caminho para copiar o módulo principal ao encaixar no sistema
% startupfolder% \\% insfolder% \\% insname%
Sinalizador para definir os atributos "Sistema" e "Secreto" para o módulo principal fixo no sistema
falsa
Reinicie o sinalizador de execução ao fixar no sistema
falsa
Sinalizador para mover o módulo principal para uma pasta temporária
falsa
Sinalizador de execução de desvio do UAC
falsa
Formato de data e hora para registro
aaaa-MM-dd HH: mm: ss
Sinalizador para usar o filtro de programa do KeyLogger
verdade
Tipo de filtragem de programa.
1 - o nome do programa é pesquisado nos cabeçalhos da janela
2 - o nome do programa é pesquisado no nome do processo da janela
1
Filtro de programa
Facebook
Twitter
Gmail
Instagram
"Filme",
Skype
"Pornô",
Hack
Whatsapp
Discord

Corrigindo o módulo principal no sistema


Se o sinalizador correspondente for definido, o módulo principal será copiado ao longo do caminho especificado na configuração como o caminho para fixação no sistema.

Dependendo do valor da configuração, o arquivo recebe os atributos "Oculto" e "Sistema".
A inicialização automática é fornecida por dois ramos do registro:

  • HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \% insregname%
  • HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run \% insregname%

Como o carregador de inicialização é injetado no processo RegAsm , a configuração do sinalizador persistente para o módulo principal leva a consequências bastante interessantes. Em vez de se copiar, o malware protegeu o arquivo RegAsm.exe original no sistema, durante o qual a injeção foi realizada.



Interação com C&C


Independentemente do método utilizado, a interação na rede começa com a obtenção do IP externo da vítima usando a marca de seleção [.] Amazonaws [.] Com / resource.
A seguir, são descritos os métodos de rede apresentados no malware.

webpanel


A interação é via protocolo HTTP. O malware executa uma solicitação POST com os seguintes cabeçalhos:

  • Agente do usuário: Mozilla / 5.0 (Windows U Windows NT 6.1, versão 1.9.2.3) Gecko / 20100401 Firefox / 4.0 (.NET CLR 3.5.30729)
  • Conexão: Keep-Alive
  • Tipo de conteúdo: application / x-www-form-urlencoded

O endereço do servidor está definido como % PostURL% . A mensagem criptografada é passada no parâmetro "p" . O mecanismo de criptografia é descrito na seção "Algoritmos de criptografia" (método 2) .

A mensagem transmitida é a seguinte:

type = {0} \ nhwid = {1} \ ntime = {2} \ npcname = {3} \ nlogdata = {4} \ nscreen = {5} \ nipadd = {6} \ nwebcam_link = {7} \ ncliente = {8} \ nlink = {9} \ nusername = {10} \ npassword = {11} \ nscreen_link = {12}

O parâmetro type indica o tipo de mensagem:


hwid - um hash MD5 é gravado a partir dos valores do número de série da placa-mãe e do ID do processador. Provavelmente usado como um ID do usuário.
hora - serve para transmitir a hora e a data atuais.
pcname - definido como <Username> / <Computer Name> .
logdata - dados do log.

Ao transmitir senhas, a mensagem se parece com:

type = {0} \ nhwid = {1} \ ntime = {2} \ npcname = {3} \ nlogdata = {4} \ nscreen = {5} \ nipadd = {6} \ nwebcam_link = {7} \ nscreen_link = {8} \ n [senhas]

A seguir, são apresentadas descrições dos dados roubados no formato \ nclient [] = {0} \ nlink [] = {1} \ nusername [] = {2} \ npassword [] = {3} .

smtp


A interação é via protocolo SMTP. A mensagem transmitida está no formato HTML. O parâmetro BODY é:


O título da carta tem a forma geral: <NOME DO USUÁRIO> / <NOME DO COMPUTADOR> <TIPO DE CONTEÚDO> . O conteúdo da carta, bem como seus anexos, não são criptografados.


A interação é via protocolo ftp. Um arquivo com o nome <TIPO DE CONTEÚDO> _ <NOME DO USUÁRIO> - <NOME DO COMPUTADOR> _ <DATA E HORA> .html é transferido para o servidor especificado. O conteúdo do arquivo não é criptografado.


Algoritmos de criptografia


Os seguintes métodos de criptografia são usados ​​neste caso:

Método 1


Este método é usado para criptografar seqüências de caracteres no módulo principal. Para criptografia, o algoritmo AES é usado .

A entrada é um número decimal de seis dígitos. A transformação a seguir é executada nele:

Qual é o valor de f (x) = (- (x ^ 2 - 31059) ^ 6380) - 1363)

O valor resultante é o índice para a matriz de dados incorporada.

Cada elemento da matriz é uma sequência DWORD . Ao combinar DWORD, é obtida uma matriz de bytes: os primeiros 32 bytes são a chave de criptografia, seguidos por 16 bytes do vetor de inicialização e os bytes restantes são os dados criptografados.

Método 2


O algoritmo 3DES é usado no modo ECB com preenchimento em bytes inteiros ( PKCS7 ).

A chave é especificada pelo parâmetro % urlkey% , mas seu hash MD5 é usado para criptografia.

Funcionalidade maliciosa


A amostra em estudo usa os seguintes programas para implementar sua função maliciosa:

Keylogger


Se houver um sinalizador VPO correspondente usando a função WinAPI, SetWindowsHookEx atribuirá seu próprio manipulador para eventos de pressionamento de tecla do teclado. A função do manipulador começa obtendo o título da janela ativa.

Se o sinalizador para executar a filtragem de aplicativos estiver definido, a filtragem será executada dependendo do tipo especificado:

  1. o nome do programa é pesquisado nos cabeçalhos da janela
  2. o nome do programa é pesquisado no nome do processo da janela

Em seguida, um registro é adicionado ao log com informações sobre a janela ativa no formato:


Em seguida, as informações sobre a tecla pressionada são registradas:
Key
Record
Backspace
Dependendo do sinalizador de processamento da tecla Backspace: False - {BACK}
Verdadeiro - apague a chave anterior
CAPSLOCK
{CAPSLOCK}
Esc
{ESC}
PageUp
{PageUp}
Para baixo
? darr;
DELETE
{DEL}
"
?
F5
{F5}
&
& amp;
F10
{F10}
Separador
{TAB}
<
& lt;
>
& gt;
Barra de espaço
F8
{F8}
F12
{F12}
F9
{F9}
ALT + TAB
{ALT + TAB}
Fim
{END}
F4
{F4}
F2
{F2}
CTRL
{CTRL}
F6
{F6}
Direito
? rarr;
Para cima
& uarr;
F1
{F1}
Esquerda
& larr;
Pagedown
{PageDown}
Inserir
{Inserir}
Win
{Win}
Numlock
{NumLock}
F11
{F11}
F3
{F3}
Página inicial
{HOME}
ENTER
{ENTER}
ALT + F4
{ALT + F4}
F7
{F7}
Outra chave
Caractere maiúsculo ou minúsculo, dependendo da posição das teclas CapsLock e Shift

Com uma determinada frequência, o log coletado é enviado ao servidor. Se a transferência falhar , o log será salvo no arquivo % TEMP% \\ log.tmp no formato:


Quando o cronômetro dispara, o arquivo será transferido para o servidor.

Screenlogger


Com a frequência especificada, o malware cria uma captura de tela no formato JPEG com um valor de Qualidade de 50 e a salva no arquivo % APPDATA% \\ <sequência aleatória de 10 caracteres> .jpg . Após a transferência, o arquivo é excluído.

Clipboardlogger


Se o sinalizador correspondente estiver definido, as substituições serão feitas no texto interceptado, de acordo com a tabela abaixo.


Depois disso, o texto é inserido no log:


PasswordStealer


O malware pode baixar senhas dos seguintes aplicativos:
Navegadores
Clientes de e-mail
Clientes FTP
Chrome
Outlook
Filezilla
Firefox
Thunderbird
WS_FTP
IE / Edge
Foxmail
Winscp
Safari
Opera Mail
Coreftp
Navegador Opera
IncrediMail
Navegador FTP
Yandex
Pocomail
Flashfxp
Comodo
Eudora
Smartftp
Chromeplus
Thebat
FTPCommander
Crómio
Caixa postal
Tocha
Clawsmail
7Star
Amigo
Bravesoftware
Clientes Jabber
Clientes VPN
Centbrowser
Psi / psi +
VPN aberta
Chedot
Coccoc
Navegador de elementos
Gerenciadores de download
Navegador épico de privacidade
Gerenciador de download da Internet
Kometa
Jdownloader
Orbitum
Sputnik
uCozMedia
Vivaldi
Seamonkey
Navegador flock
Navegador uc
Blackhawk
Cyberfox
K-meleon
Icecat
Icedragon
Palemoon
Waterfox
Navegador Falkon


Anulação da análise dinâmica


  • Usando a função Sleep . Permite ignorar algumas caixas de proteção por tempo limite
  • Destruindo o fluxo Zone.Identifier . Permite ocultar o fato de baixar um arquivo da Internet
  • O parâmetro % filter_list% define a lista de processos que o malware concluirá com um intervalo de um segundo
  • Desabilitando o UAC
  • Desativando o Gerenciador de tarefas
  • Desativando o CMD
  • Desativando a janela Executar
  • Desativando o painel de controle
  • Desabilitando a ferramenta RegEdit
  • Desativando pontos de restauração do sistema
  • Desativando o menu de contexto no Explorer
  • Desabilitando o msconfig
  • Bypass do UAC :

Recursos inativos do módulo principal


Durante a análise do módulo principal, foram identificadas as funções responsáveis ​​por se espalhar pela rede e rastrear a posição do mouse.

Verme


Em um fluxo separado, os eventos de conexão de mídia removível são monitorados. Quando conectado à raiz do sistema de arquivos, o malware é copiado com o nome scr.exe , após o qual procura por arquivos com a extensão lnk . Cada comando lnk muda para cmd.exe / c start scr.exe e inicia <comando original> e sai .

Cada diretório na raiz da mídia recebe o atributo Oculto e um arquivo com a extensão lnk é criado com o nome do diretório oculto e o comando cmd.exe / c start scr.exe & explorer / root, \ "% CD% <NOME DO DIRETÓRIO> \" e sair .

Mousetracker


O método de interceptação é semelhante ao usado para o teclado. Essa funcionalidade ainda está em desenvolvimento.

Atividade de arquivo


O caminho
Descrição do produto
% Temp% \ temp.tmp
Contém contador de tentativas de ignorar o UAC
% startupfolder% \% insfolder% \% insname%
Maneira de consolidar no sistema HPE
% Temp% \ tmpG \ {Hora atual em milissegundos} .tmp
O caminho para o backup do módulo principal
% Temp% \ log.tmp
Arquivo de log
% AppData% \ {Sequência arbitrária de 10 caracteres} .jpeg
Screenshots
C: \ Users \ Public \ {Sequência arbitrária de 10 caracteres} .vbs
O caminho para o arquivo vbs que o gerenciador de inicialização pode usar para fechar o sistema
% Temp% \ {Nome da pasta arbitrária} \ {Nome do arquivo}
O caminho usado pelo carregador de inicialização para encaixar no sistema

Perfil do intruso


Graças aos dados de autenticação "com fio", pudemos obter acesso ao centro de comando.


Isso nos permitiu identificar o correio final dos atacantes:

junaid [.] em *** @ gmail [.] com .

O nome do domínio do centro de comando está registrado em sg *** @ gmail [.] Com .

Conclusão


No decorrer de uma análise detalhada do malware usado no ataque, pudemos estabelecer sua funcionalidade e obter a lista mais abrangente de indicadores de comprometimento relevantes para este caso. A compreensão dos mecanismos de interação de rede da malvari tornou possível dar recomendações sobre o ajuste da operação das ferramentas de proteção de informações, bem como escrever regras estáveis ​​de IDS.

O principal perigo do AgentTesla como DataStealer é que, para executar suas tarefas, ele não precisa fazer uma fixação no sistema ou aguardar um comando de controle. Uma vez na máquina, ele imediatamente começa a coletar informações privadas e as transmite ao CnC. Esse comportamento agressivo é um pouco semelhante ao comportamento dos criptografadores, com a única diferença: os últimos nem sequer exigem uma conexão de rede. No caso de uma colisão com essa família após a limpeza do sistema infectado do malware, é obrigatório alterar todas as senhas que poderiam, pelo menos teoricamente, ser armazenadas em um dos aplicativos acima.

Olhando para o futuro, digamos que os invasores que enviam o AgentTesla frequentemente alteram o carregador de inicialização inicial. Isso permite que você passe despercebido por scanners estáticos e analisadores heurísticos no momento do ataque. E a tendência dessa família de iniciar imediatamente sua atividade torna os monitores do sistema inúteis. A melhor maneira de lidar com o AgentTesla é uma análise preliminar na sandbox.

No terceiro artigo desta série, examinaremos outros gerenciadores de inicialização usados ​​pelo AgentTesla e também aprenderemos sobre o processo de descompactação semiautomática. Não perca!

Hash


SHA1
A8C2765B3D655BA23886D663D22BDD8EF6E8E894
8010CC2AF398F9F951555F7D481CE13DF60BBECF
79B445DE923C92BF378B19D12A309C0E9C5851BF
15839B7AB0417FA35F2858722F0BD47BDF840D62
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD

C&C


URL
sina-c0m [.] icu
smtp [.] sina-c0m [.] icu


Regkey


Registo
HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ {Nome do Script}
HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \% insregname%
HKCU \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run \% insregname%

Mutex


Sem indicadores.

Arquivos


Atividade de arquivo
% Temp% \ temp.tmp
% startupfolder% \% insfolder% \% insname%
% Temp% \ tmpG \ {Hora atual em milissegundos} .tmp
% Temp% \ log.tmp
% AppData% \ {Sequência arbitrária de 10 caracteres} .jpeg
C: \ Users \ Public \ {Sequência arbitrária de 10 caracteres} .vbs
% Temp% \ {Nome da pasta arbitrária} \ {Nome do arquivo}

Informações de amostras


Nome
Desconhecido
MD5
F7722DD8660B261EA13B710062B59C43
SHA1
15839B7AB0417FA35F2858722F0BD47BDF840D62
SHA256
41DC0D5459F25E2FDCF8797948A7B315D3CB0753
98D808D1772CACCC726AF6E9
Tipo
PE (.NET)
Tamanho
327680
Nome original
AZZRIDKGGSLTYFUBCCRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe
Datestamp
01/01/2019
Compilador
Vb.net

Nome
IELibrary.dll
MD5
BFB160A89F4A607A60464631ED3ED9FD
SHA1
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD
SHA256
D55800A825792F55999ABDAD199DFA54F3184417
215A298910F2C12CD9CC31EE
Tipo
PE (DLL do .NET)
Tamanho
16896
Nome original
IELibrary.dll
Datestamp
11/11/2016
Compilador
Microsoft Linker (48,0 *)

Source: https://habr.com/ru/post/pt479120/


All Articles