A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Recentemente, um fabricante europeu de equipamentos de instalação elétrica entrou em contato com o Grupo-IB - seu funcionário recebeu pelo correio uma carta suspeita com um anexo malicioso. Ilya Pomerantsev, especialista em análise de malware do CERT Group-IB, conduziu uma análise detalhada desse arquivo, descobriu o spyware AgentTesla e disse o que esperar desse malware e como ele é perigoso.

Com este post abrimos uma série de artigos sobre como analisar esses arquivos potencialmente perigosos, e aguardamos os mais curiosos no dia 5 de dezembro para um webinar interativo gratuito sobre o tema “Análise de Malware: Análise de Casos Reais”. Todos os detalhes estão sob corte.

Mecanismo de distribuição

Sabemos que o malware chegou à máquina da vítima através de e-mails de phishing. O destinatário da carta provavelmente recebeu Cco.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
A análise dos cabeçalhos mostra que o remetente da carta foi falsificado. Na verdade, a carta deixada com vps56[.]oneworldhosting[.]com.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
O anexo do e-mail contém um arquivo WinRar qoute_jpeg56a.r15 com um arquivo executável malicioso QOUTE_JPEG56A.exe dentro.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

Ecossistema de malware

Agora vamos ver como é o ecossistema do malware em estudo. O diagrama abaixo mostra sua estrutura e as direções de interação dos componentes.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Agora vamos examinar cada um dos componentes do malware com mais detalhes.

Carregador

Arquivo original QOUTE_JPEG56A.exe é um compilado AutoIt v3 roteiro.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Para ofuscar o script original, um ofuscador com similar PELock AutoIT-Ofuscador características.
A desofuscação é realizada em três etapas:

  1. Removendo ofuscação Para se

    A primeira etapa é restaurar o fluxo de controle do script. Control Flow Flattening é uma das maneiras mais comuns de proteger o código binário do aplicativo contra análise. Transformações confusas aumentam drasticamente a complexidade de extração e reconhecimento de algoritmos e estruturas de dados.

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  2. Recuperação de linha

    Duas funções são usadas para criptografar strings:

    • gdorizabegkvfca - Executa decodificação semelhante a Base64

      A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

    • xgacyukcyzxz - XOR byte-byte simples da primeira string com o comprimento da segunda

      A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  3. Removendo ofuscação BinaryToString и Execute

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

A carga principal é armazenada de forma dividida no diretório Fontes seções de recursos do arquivo.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
A ordem de colagem é a seguinte: TIEQHCXWFG, IME, SPDGUHIMPV, KQJMWQQAQTKTFXTUOSW, AOCHKRWWSKWO, JSHMSJPS, NHHWXJBMTTSPXVN, BFUTIFWWXVE, HWJHO, AVZOUMVFRDWFLWU.

A função WinAPI é usada para descriptografar os dados extraídos CryptDecrypt, e a chave de sessão gerada com base no valor é usada como chave fZgFiZlJDxvuWatFRgRXZqmNCIyQgMYc.

O arquivo executável descriptografado é enviado para a entrada da função RunPEque realiza ProcessInject в RegAsm.exe usando integrado ShellCode (também conhecido como Código Shell RunPE). A autoria pertence ao usuário do fórum espanhol indetectáveis[.]rede sob o apelido de Wardow.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Também é importante notar que em um dos tópicos deste fórum, um ofuscador para AutoIt com propriedades semelhantes identificadas durante a análise da amostra.

se ShellCode bastante simples e chama a atenção apenas emprestado do grupo de hackers AnunakCarbanak. Função de hash de chamada de API.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

Também estamos cientes dos casos de uso Shellcode Francês versões diferentes.
Além da funcionalidade descrita, também identificamos funções inativas:

  • Bloqueando o encerramento manual do processo no gerenciador de tarefas

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Reiniciando um processo filho quando ele termina

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Ignorar UAC

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Salvando a carga em um arquivo

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Demonstração de janelas modais

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Aguardando a mudança da posição do cursor do mouse

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • AntiVM e AntiSandbox

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Auto destruição

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  • Bombeando carga útil da rede

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

Sabemos que tal funcionalidade é típica do protetor CypherIT, que, aparentemente, é o bootloader em questão.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

Módulo principal de software

A seguir, descreveremos brevemente o módulo principal do malware e o consideraremos com mais detalhes no segundo artigo. Neste caso, é uma aplicação em . NET.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Durante a análise, descobrimos que um ofuscador foi usado ConfusorEX.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

IELibrary.dll

A biblioteca é armazenada como um recurso do módulo principal e é um plugin bem conhecido para Agente Tesla, que fornece funcionalidade para extrair diversas informações dos navegadores Internet Explorer e Edge.

Agent Tesla é um software de espionagem modular distribuído usando um modelo de malware como serviço sob o disfarce de um produto keylogger legítimo. O Agente Tesla é capaz de extrair e transmitir credenciais de usuário de navegadores, clientes de e-mail e clientes FTP para o servidor para invasores, gravando dados da área de transferência e capturando a tela do dispositivo. No momento da análise, o site oficial dos desenvolvedores não estava disponível.

O ponto de entrada é a função Obter senhas salvas classe Internet Explorer.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1
Em geral, a execução do código é linear e não contém nenhuma proteção contra análise. Apenas a função não realizada merece atenção Obtenha cookies salvos. Aparentemente, a funcionalidade do plugin deveria ser expandida, mas isso nunca foi feito.

A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

Anexando o bootloader ao sistema

Vamos estudar como o bootloader está conectado ao sistema. O exemplar em estudo não ancora, mas em eventos semelhantes ocorre conforme o seguinte esquema:

  1. Na pasta C: Usuários Público roteiro é criado Visual Basic

    Exemplo de roteiro:

    A participação falhou: vamos expor o AgentTesla à água limpa. Parte 1

  2. O conteúdo do arquivo carregador é preenchido com um caractere nulo e salvo na pasta %Temp%
  3. Uma chave de execução automática é criada no registro para o arquivo de script HKCUSoftwareMicrosoftWindowsCurrentVersionRun

Assim, com base nos resultados da primeira parte da análise, conseguimos estabelecer os nomes das famílias de todos os componentes do malware em estudo, analisar o padrão de infecção e também obter objetos para escrita de assinaturas. Continuaremos nossa análise deste objeto no próximo artigo, onde veremos o módulo principal com mais detalhes Agente Tesla. Não perca!

Aliás, no dia 5 de dezembro convidamos todos os leitores para um webinar interativo gratuito sobre o tema “Análise de malware: análise de casos reais”, onde o autor deste artigo, especialista do CERT-GIB, mostrará online a primeira etapa do análise de malware - descompactação semiautomática de amostras usando o exemplo de três minicasos reais da prática, e você pode participar da análise. O webinar é adequado para especialistas que já possuem experiência na análise de arquivos maliciosos. O registro é feito estritamente pelo e-mail corporativo: зарегистрируйтесь. Esperando Por Você!

Yara

rule AgentTesla_clean{
meta:
    author = "Group-IB"
    file = "78566E3FC49C291CB117C3D955FA34B9A9F3EEFEFAE3DE3D0212432EB18D2EAD"
    scoring = 5
    family = "AgentTesla"
strings:
    $string_format_AT = {74 00 79 00 70 00 65 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 68 00 77 00 69 00 64 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 74 00 69 00 6D 00 65 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 63 00 6E 00 61 00 6D 00 65 00 3D 00 7B 00 33 00 7D 00 0D 00 0A 00 6C 00 6F 00 67 00 64 00 61 00 74 00 61 00 3D 00 7B 00 34 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 3D 00 7B 00 35 00 7D 00 0D 00 0A 00 69 00 70 00 61 00 64 00 64 00 3D 00 7B 00 36 00 7D 00 0D 00 0A 00 77 00 65 00 62 00 63 00 61 00 6D 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 37 00 7D 00 0D 00 0A 00 73 00 63 00 72 00 65 00 65 00 6E 00 5F 00 6C 00 69 00 6E 00 6B 00 3D 00 7B 00 38 00 7D 00 0D 00 0A 00 5B 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 73 00 5D 00}
    $web_panel_format_string = {63 00 6C 00 69 00 65 00 6E 00 74 00 5B 00 5D 00 3D 00 7B 00 30 00 7D 00 0D 00 0A 00 6C 00 69 00 6E 00 6B 00 5B 00 5D 00 3D 00 7B 00 31 00 7D 00 0D 00 0A 00 75 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 5B 00 5D 00 3D 00 7B 00 32 00 7D 00 0D 00 0A 00 70 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 5B 00 5D 00 3D 00 7B 00 33 00 7D 00 00 15 55 00 52 00 4C 00 3A 00 20 00 20 00 20 00 20 00 20 00 20 00 00 15 55 00 73 00 65 00 72 00 6E 00 61 00 6D 00 65 00 3A 00 20 00 00 15 50 00 61 00 73 00 73 00 77 00 6F 00 72 00 64 00 3A 00}
condition:
     all of them
}

rule  AgentTesla_obfuscated {
meta:
    author = "Group-IB"
    file = "41DC0D5459F25E2FDCF8797948A7B315D3CB075398D808D1772CACCC726AF6E9"
    scoring = 5
    family = "AgentTesla"
strings:
    $first_names = {61 66 6B 00 61 66 6D 00 61 66 6F 00 61 66 76 00 61 66 79 00 61 66 78 00 61 66 77 00 61 67 6A 00 61 67 6B 00 61 67 6C 00 61 67 70 00 61 67 72 00 61 67 73 00 61 67 75 00}
    $second_names = "IELibrary.resources"
condition:
     all of them
}

rule AgentTesla_module_for_IE{
meta:
    author = "Group-IB"
    file = "D55800A825792F55999ABDAD199DFA54F3184417215A298910F2C12CD9CC31EE"
    scoring = 5
    family = "AgentTesla_module_for_IE"
strings:
    $s0 = "ByteArrayToStructure" 
    $s1 = "CryptAcquireContext" 
    $s2 = "CryptCreateHash" 
    $s3 = "CryptDestroyHash" 
    $s4 = "CryptGetHashParam" 
    $s5 = "CryptHashData"
    $s6 = "CryptReleaseContext" 
    $s7 = "DecryptIePassword" 
    $s8 = "DoesURLMatchWithHash" 
    $s9 = "GetSavedCookies" 
    $s10 = "GetSavedPasswords" 
    $s11 = "GetURLHashString"  
condition:
     all of them
}

rule RunPE_shellcode {
meta:
    author = "Group-IB"
    file = "37A1961361073BEA6C6EACE6A8601F646C5B6ECD9D625E049AD02075BA996918"
    scoring = 5
    family = "RunPE_shellcode"
strings:
    $malcode = {
      C7 [2-5] EE 38 83 0C // mov     dword ptr [ebp-0A0h], 0C8338EEh
      C7 [2-5] 57 64 E1 01 // mov     dword ptr [ebp-9Ch], 1E16457h
      C7 [2-5] 18 E4 CA 08 // mov     dword ptr [ebp-98h], 8CAE418h
      C7 [2-5] E3 CA D8 03 // mov     dword ptr [ebp-94h], 3D8CAE3h
      C7 [2-5] 99 B0 48 06 // mov     dword ptr [ebp-90h], 648B099h
      C7 [2-5] 93 BA 94 03 // mov     dword ptr [ebp-8Ch], 394BA93h
      C7 [2-5] E4 C7 B9 04 // mov     dword ptr [ebp-88h], 4B9C7E4h
      C7 [2-5] E4 87 B8 04 // mov     dword ptr [ebp-84h], 4B887E4h
      C7 [2-5] A9 2D D7 01 // mov     dword ptr [ebp-80h], 1D72DA9h
      C7 [2-5] 05 D1 3D 0B // mov     dword ptr [ebp-7Ch], 0B3DD105h
      C7 [2-5] 44 27 23 0F // mov     dword ptr [ebp-78h], 0F232744h
      C7 [2-5] E8 6F 18 0D // mov     dword ptr [ebp-74h], 0D186FE8h
      }
condition:
    $malcode 
}

rule AgentTesla_AutoIT_module{
meta:
    author = "Group-IB"
    file = "49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08C05B5E3BD36FD52668D196AF"
    scoring = 5
    family = "AgentTesla"
strings:                                    
    $packedexeau = {55 ED F5 9F 92 03 04 44 7E 16 6D 1F 8C D7 38 E6 29 E4 C8 CF DA 2C C4 E1 F3 65 48 25 B8 93 9D 66 A4 AD 3C 39 50 00 B9 60 66 19 8D FC 20 0A A0 56 52 8B 9F 15 D7 62 30 0D 5C C3 24 FE F8 FC 39 08 DF 87 2A B2 1C E9 F7 06 A8 53 B2 69 C3 3C D4 5E D4 74 91 6E 9D 9A A0 96 FD DB 1F 5E 09 D7 0F 25 FB 46 4E 74 15 BB AB DB 17 EE E7 64 33 D6 79 02 E4 85 79 14 6B 59 F9 43 3C 81 68 A8 B5 32 BC E6}
condition:
     all of them
}

Hashes

Nome qoute_jpeg56a.r15
MD5 53BE8F9B978062D4411F71010F49209E
SHA1 A8C2765B3D655BA23886D663D22BDD8EF6E8E894
SHA256 2641DAFB452562A0A92631C2849B8B9CE880F0F8F

890E643316E9276156EDC8A

Formato Arquivar WinRAR
Tamanho 823014
Nome QOUTE_JPEG56A.exe
MD5 329F6769CF21B660D5C3F5048CE30F17
SHA1 8010CC2AF398F9F951555F7D481CE13DF60BBECF
SHA256 49F94293F2EBD8CEFF180EDDD58FA50B30DC0F08

C05B5E3BD36FD52668D196AF

Formato PE (Script AutoIt compilado)
Tamanho 1327616
Nome original Desconhecido
Carimbo de data 15.07.2019
Vinculador Microsoft Linker(12.0)[EXE32]
MD5 C2743AEDDADACC012EF4A632598C00C0
SHA1 79B445DE923C92BF378B19D12A309C0E9C5851BF
SHA256 37A1961361073BEA6C6EACE6A8601F646C5B6ECD

9D625E049AD02075BA996918

Formato ShellCode
Tamanho 1474

Fonte: habr.com

Adicionar um comentário