Agente Tesla amplia ataques de roubo de informações

Views: 405
0 0
Read Time:13 Minute, 47 Second

A família Agent Tesla de malware trojan de acesso remoto (RAT) está ativa há mais de sete anos, mas continua sendo uma das ameaças mais comuns aos usuários do Windows. Vários invasores usam o malware para roubar credenciais do usuário e outras informações das vítimas por meio de capturas de tela, registro do teclado e captura da área de transferência.

Como as variáveis ​​específicas do operador dos códigos do compilador do malware no momento da criação, o comportamento do Agente Tesla pode variar amplamente – e o malware continua a evoluir. Mudanças recentes aumentaram o número de aplicativos direcionados ao roubo de credenciais, incluindo navegadores da web, clientes de e-mail, clientes de rede privada virtual e outros softwares que armazenam nomes de usuário e senhas. A evolução da ferramenta também se estende ao seu pacote de entrega, com uma versão que agora tem como alvo a Interface de Software Anti-Malware (AMSI) da Microsoft em uma tentativa de derrotar o software de proteção de endpoint.

A SophosLabs rastreou vários atores usando o Agente Tesla, incluindo aqueles por trás das campanhas RATicate que começamos a investigar em novembro de 2019. Continuamos a ver novas variantes em um número crescente de ataques nos últimos 10 meses; até dezembro de 2020, o agente Tesla era responsável por 20 por cento dos anexos de e-mail de malware detectados na telemetria de clientes da Sophos.

Neste relatório, vamos nos aprofundar nas duas versões atualmente ativas que identificamos, que identificamos como Agente Tesla versão 2 e versão 3. As diferenças entre as duas demonstram como o RAT evoluiu, empregando vários tipos de evasão de defesa e ofuscação para evitar a detecção – incluindo opções para instalar e usar o cliente de rede de anonimato Tor e a API de mensagens Telegram, para comunicações de comando e controle (C2). As diferenças que vemos entre v2 e v3 do Agente Tesla parecem estar focadas em melhorar a taxa de sucesso do malware contra defesas sandbox e scanners de malware, e em fornecer mais opções C2 para seus clientes invasores.

Build-a-bot

Ambas as versões atuais do Agente Tesla usam um conjunto de variáveis ​​globais que determinam a funcionalidade e o comportamento do malware. O invasor fornece os valores para essas variáveis ​​na forma de um arquivo de configuração que rege uma ampla variedade de comportamentos, como o tempo de atraso entre as tentativas de C2 (mostrado abaixo).

Algumas das variáveis ​​de configuração que direcionam o comportamento do Agente Tesla.

As variáveis ​​comuns a ambas as versões do Agente Tesla determinam qual protocolo de rede deve ser usado para comunicações C2, com base em um valor inteiro definido pelo arquivo de configuração. Eles também podem ativar ou desativar os seguintes comportamentos:

  • Persistência (permitindo que o RAT reinicie quando o sistema operacional for reiniciado)
  • Ativação de um recurso de desinstalação remota
  • Coleta do endereço IP do host infectado
  • Envio de mensagem de sucesso ao C2 após instalação
  • Se deve ou não roubar dados por meio de capturas de tela
  • Se deve ou não registrar as teclas digitadas (e, no Agente Tesla v3, roubar o conteúdo da área de transferência do sistema Windows).
  • No Agente Tesla v3, se deve ou não implantar um cliente Tor para ocultar as comunicações.

O compilador do RAT codifica essas opções no executável que é entregue à vítima.

Entrega especial

O agente Tesla geralmente chega em um e-mail de spam malicioso como um anexo. No exemplo abaixo, o malware que descarta o Agente Tesla está disfarçado como um anexo de arquivo compactado .zip que o invasor afirma conter um catálogo para o destinatário revisar:

Um e-mail malicioso contendo um empacotador do Agente Tesla (fonte: VirusTotal)

Versões mais recentes do Agente Tesla usam vários métodos para tornar a sandbox e a análise estática mais difíceis e evitar a detecção de endpoint. Indo além do uso de compactadores para ofuscar código, esses instaladores de malware em vários estágios também obtêm componentes hospedados (em alguns casos) à vista de sites legítimos. O instalador do Agente Tesla também tenta sobrescrever o código no AMSI da Microsoft.

O fluxo de trabalho do novo instalador do Agente Tesla em vários estágios.

O primeiro estágio é um downloader baseado em .NET, que pega pedaços de código ofuscado codificado em base64 para o segundo estágio de sites como Pastebin e um clone do Pastebin chamado Hastebin . Os fragmentos codificados em base64 são delimitados do restante do conteúdo HTML por três símbolos “@”, antes e depois do fragmento, conforme mostrado no exemplo abaixo:

Um exemplo de resposta a uma solicitação de download pelo downloader de vários estágios do Agente Tesla.

O downloader também tenta obter o endereço de memória de AmsiScanBuffe r – chamando Windows ‘ amsi.dll com a função Windows LoadLibraryA para obter o endereço de base do DLL e, em seguida, GetProcAddress usando esse endereço de base e o nome do procedimento “AmsiScanBuffer” para obter o endereço de a função.

Depois que o Agente Tesla obtém o endereço de AmsiScanBuffer, ele corrige os primeiros 8 bytes dessa função na memória: Estas são as instruções x86 corrigidas às quais esses opcodes se referem:

.data: 00000000 B8 57 00 07 80 mov eax, 0x80070057 
.data: 00000005 C2 18 00 ret 0x18

O efeito desse patch na rotina AmsiScanBuffer força o AMSI a retornar um erro ( código 0x80070057 ), fazendo com que todas as varreduras AMSI da memória pareçam inválidas. Isso sabota o software de proteção de endpoint dependente de AMSI, essencialmente fazendo-os pular outras varreduras de AMSI para assemblies carregados dinamicamente dentro do processo do Agente Tesla. Como isso acontece no início da execução do downloader do primeiro estágio, torna ineficaz qualquer proteção AMSI contra os componentes subsequentes do downloader, o carregador de segundo estágio e a própria carga útil do Agente Tesla.

Depois de baixar os pedaços, o estágio do downloader os une e decodifica e, em seguida, os descriptografa com um algoritmo simples. O buffer decodificado e descriptografado é o segundo estágio – um carregador que carrega a carga útil final do Agente Tesla.

O segundo estágio usa uma série de etapas para evitar a análise de sandbox por meio da depuração. Primeiro, usando a classe Microsoft .NET Debugger , ele verifica se um depurador está anexado verificando a propriedade Debugger.IsAttached  e, em seguida, verifica se o log está habilitado usando o método Debugger.IsLogging . Em seguida, usando a  função NtSetInformationThread da  API do Windows, ele define o campo ThreadHideFromDebugger para ocultar o thread do depurador. Depois que esse valor é definido, o depurador nunca obtém informações do encadeamento e o efeito prático é que ele deteta o depurador.

Esta técnica não é nova, mas continua muito eficaz.

Tesla desenrola

No geral, a funcionalidade do Agente Tesla v2 e v3 é basicamente a mesma, com algumas diferenças notáveis ​​observadas abaixo:

Uma comparação dos comportamentos e do fluxo de trabalho do Agente Tesla V2 e V3, com áreas de diferença em V3 destacadas. (Clique para ampliar)

A primeira coisa que as duas versões do Agente Telsa fazem quando ativadas é verificar (e eliminar) quaisquer outras instâncias em execução do Agente Tesla – uma etapa realizada para garantir que a cópia implantada originalmente seja removida se o bot estiver configurado para estabelecer persistência.

Em seguida, ele inicializa variáveis ​​globais adicionais definidas dinamicamente (como um número de identificação e nome) e a pasta a ser usada para a instalação. Estes variam de amostra para amostra.

O malware então executa outra técnica de evasão de sandbox, inicializando um cronômetro que é usado para verificar se o código está sendo executado em uma sandbox. O cronômetro tem um procedimento que usa GetLastInputInfo  para recuperar e comparar a entrada do usuário; se nenhuma entrada do usuário for detectada, o Agente Tesla será encerrado.

Escolhendo uma operadora

Tanto a v2 quanto a v3 do Agente Tesla podem ser configuradas para se comunicar por HTTP, SMTP e FTP. O agente Tesla v3 adiciona o protocolo de bate-papo Telegram como uma opção. Cada um segue um caminho ligeiramente diferente para enviar os dados roubados de volta ao invasor:

  • HTTP: envia dados diretamente para um painel da web controlado pelo invasor.
  • SMTP: Envia dados usando uma conta de e-mail roubada para um servidor de e-mail controlado pelo invasor.
  • FTP: Carrega dados para um servidor FTP controlado pelo invasor. (Raramente usado, este método pode permitir que qualquer pessoa recupere as informações roubadas desse servidor porque o endereço do servidor FTP, bem como o nome de usuário e a senha, estão codificados no binário do malware.)
  • TELEGRAM: Envia os dados exfiltrados para uma sala de chat privada do Telegram.

O invasor escolhe um desses canais de comunicação C2 como parte do processo de configuração de pré-construção; na maioria dos casos que observamos, o invasor usa SMTP para comunicação com o servidor C2, possivelmente porque é mais seguro para a operadora e requer menos infraestrutura. (O invasor precisa apenas de uma conta de e-mail para SMTP, enquanto o método HTTP exigiria que o invasor estabeleça e mantenha um servidor da Web executando um painel de controle.)

Código do agente Tesla verificando o valor da variável do protocolo C2 para selecionar o tipo de comunicação.

O método HTTP C2 tem certos benefícios para o invasor, entretanto. O protocolo HTTP C2 é o único que suporta a execução remota de qualquer uma das funções do Agente Tesla. Embora o comportamento de roubo de informações do Agente Tesla seja basicamente o mesmo em todos os protocolos de comunicação C2, existem dois que funcionam apenas com HTTP: um recurso de desinstalação remota e um recurso que permite ao operador saber que o bot foi instalado com sucesso.

No Agent Tesla v2, uma variável adicional (à qual nos referimos em nossa análise como “keepalive”) também determina se esses recursos funcionam; Os desenvolvedores do malware aparentemente decidiram que essa variável era redundante e a eliminaram no Agent Tesla v3. Mesmo o novo protocolo de chat do Telegram é unilateral.

Uma visão geral do tráfego de comando e controle do Agente Tesla para cada protocolo de rede disponível. Em ambas as versões do Agente Tesla, se HTTP for selecionado como o protocolo C2, o malware envia uma mensagem HTTP vazia para o servidor C2.

O código do Agente Tesla invertido que envia uma mensagem HTTP ACK para sinalizar a instalação do malware.

A configuração também ativa um cronômetro que envia mensagens HTTP vazias cada vez que é acionado para manter a sessão com o servidor C2 ativo, e outro cronômetro que verifica periodicamente se o operador do malware emitiu um comando para que ele se desinstale do infectado sistema.

O código “keepalive” que envia mensagens vazias periódicas para o servidor Agente Tesla C2.
Código de desinstalação revertido no Agente Tesla.

O canal HTTP C2 também é o único que criptografa seu conteúdo. Embora não use HTTPS inerentemente, o conteúdo do tráfego C2 é criptografado com Triple DES, usando um conjunto de chaves no arquivo de configuração.

O agente Tesla v3 adiciona outro aprimoramento às comunicações HTTP – a alternativa de usar um proxy Tor. Se selecionado no arquivo de configuração, o malware baixa e instala um cliente Tor do site oficial do Tor. Se o cliente Tor já estiver presente, ele interrompe o processo antes de instalar o novo e grava um arquivo de configuração torrc de strings criptografadas codificadas no malware.

Código no Agente Tesla v3 que recupera um cliente Tor.

Configurando a persistência do malware

Se o operador do malware definiu a persistência como “verdadeira” na configuração, o malware se copia em uma pasta e define os atributos dessa pasta como “Oculto” e “Sistema” para ocultá-lo da exibição no Windows Explorer. Ele também coloca o caminho da pasta de instalação nas  chaves SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run   e SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ StartupApproved \ Run do Registro do Windows .

Um trecho de código invertido do Agente Tesla mostrando como o RAT estabelece a persistência em um sistema WIndows infectado.

Tirando impressões digitais

No Agent Tesla v3, a mesma variável que permite a persistência também aciona a coleta do endereço IP externo do sistema infectado – um ponto de dados que o malware usa para tirar impressões digitais de seu host para identificação por seu operador. O malware faz isso usando a API da web pública do ipify org.

Código no Agente Tesla v3 que obtém o endereço IP externo do host.

Além do endereço IP, os dados de impressão digital que o Agente Tesla v3 coleta são os mesmos da v2:

Código revertido da função de impressão digital do host do Agente Telsa.

Roubando as chaves

O agente Tesla reúne as credenciais do usuário. No Agent Tesla v3, o número de aplicativos direcionados para coleta de credenciais foi expandido consideravelmente – a lista atual de aplicativos direcionados inclui, mas não está limitada a:

  • Opera Browser
  • Navegador Yandex
  • Cromo
  • cromada
  • Raposa de fogo
  • OpenVPN
  • FTPNavigator
  • WinSCP
  • OperaMail
  • Panorama
  • SmartFTP
  • WinVNC4

O agente Tesla agrupa as credenciais roubadas com os dados de impressão digital do host e os transmite de volta ao C2 uma vez durante a execução. O malware não repete esse processo, a menos que tenha sido configurado para persistência e o sistema infectado reinicie.

A função de roubo de credenciais também inclui código que inicia uma thread separada para exfiltrar cookies do navegador. Embora esse código esteja presente em todas as amostras do Agente Tesla da v2 e v3, ele nem sempre é usado. Além disso, este recurso não é definido a partir do arquivo de configuração – então, talvez, seja um recurso premium que os invasores devem comprar do desenvolvedor do Agente Tesla.

Exfiltração de captura de tela

Se essa opção for ativada, um cronômetro é inicializado e captura uma imagem da tela do sistema infectado por meio de bibliotecas .NET.

O código da captura de tela do Agente Tesla depende de bibliotecas .NET.

A função então envia a imagem para o C2 como imagens JPEG pelo protocolo de rede configurado. Como acontece com os dumps de captura do teclado, essa rotina também é inicializada em um cronômetro.

O código de exfiltração da captura de tela no Agente Tesla.

Captura de teclas

Se a configuração hookkeyboard estiver habilitada, o malware registra todos os pressionamentos de tecla e envia periodicamente os logs para o servidor C2 em uma programação. No Agent Telsa v3, os desenvolvedores agora podem capturar dados da área de transferência do Windows; esses dados são enviados de volta ao C2 pelo mesmo temporizador.

Código de exfiltração de registro de teclado no Agente Tesla.

Isolando do ataque

O método de entrega mais comum para o Agente Tesla é o spam malicioso – como os e-mails que destacamos em nossa pesquisa RATicate. O agente Tesla continua sendo uma ameaça consistente – por muitos meses, permaneceu entre as principais famílias de malware em anexos maliciosos capturados pelo Sophos. Devido a esse fluxo contínuo de ataques do Agente Tesla, acreditamos que o malware continuará a ser atualizado e modificado por seus desenvolvedores para evitar endpoint e ferramentas de proteção de e-mail.

As contas de e-mail usadas para espalhar o Agente Tesla geralmente são contas legítimas que foram comprometidas. Organizações e indivíduos devem, como sempre, tratar os anexos de e-mail de remetentes desconhecidos com cuidado e verificar os anexos antes de abri-los. A proteção de endpoint da Sophos detecta o malware do instalador do Agente Tesla e o próprio RAT, tanto por meio de aprendizado de máquina e assinaturas de detecção, e protege contra ataques de desvio de AMSI, evitando a remoção do registro de AMSI. Os indicadores de comprometimento do Agente Tesla são postados na página GitHub da SophosLabs .

FONTE: SOPHOS

POSTS RELACIONADOS