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:
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:
- o nome do programa é pesquisado nos cabeçalhos da janela
- 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:
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:
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
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
C&C
Regkey
Mutex
Sem indicadores.
Arquivos
Informações de amostras