Continuamos nossa série de artigos dedicados à análise de malware. EM
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.
Arquivo de configuração
A tabela abaixo lista quais funcionalidades se aplicam ao exemplo que você está usando:
descrição | Valor |
Sinalizador de uso do KeyLogger | verdadeiro |
Sinalizador de uso do ScreenLogger | falso |
Intervalo de envio de log do KeyLogger em minutos | 20 |
Intervalo de envio de log do ScreenLogger em minutos | 20 |
Sinalizador de manipulação de chave de backspace. Falso – apenas registro. True – apaga a chave anterior | falso |
Тип CnC. Варианты: smtp, webpanel, ftp | smtp |
Sinalizador de ativação de thread para encerrar processos da lista “%filter_list%” | falso |
Флаг отключения UAC | falso |
Sinalizador de desativação do gerenciador de tarefas | falso |
Sinalizador de desativação de CMD | falso |
Флаг отключения окна «Выполнить» | falso |
Sinalizador de desativação do visualizador de registro | falso |
Desativar sinalizador de pontos de restauração do sistema | verdadeiro |
Sinalizador de desativação do painel de controle | falso |
Sinalizador de desativação MSCONFIG | falso |
Sinalizador para desativar o menu de contexto no Explorer | falso |
Bandeira de fixação | falso |
Путь для копирования основного модуля при закреплении в системе | %startupfolder% %insfolder%%insname% |
Flag para configuração dos atributos “Sistema” e “Oculto” do módulo principal atribuído ao sistema | falso |
Sinalizador para executar uma reinicialização quando fixado ao sistema | falso |
Sinalizador para mover o módulo principal para uma pasta temporária | falso |
Bandeira de desvio do UAC | falso |
Formato de data e hora para registro | aaaa-MM-dd HH:mm:ss |
Sinalizador para usar um filtro de programa para KeyLogger | verdadeiro |
Tipo de filtragem do programa. 1 – o nome do programa é pesquisado nos títulos das janelas 2 – o nome do programa é procurado na janela nome do processo |
1 |
Filtro de programa | "Facebook" "Twitter" "gmail" "Instagram" "filme" "Skype" "pornô" "hackear" "Whatsapp" "discórdia" |
Conectando o módulo principal ao sistema
Se o sinalizador correspondente for definido, o módulo principal será copiado para o caminho especificado na configuração como o caminho a ser atribuído ao sistema.
Dependendo do valor da configuração, o arquivo recebe os atributos “Oculto” e “Sistema”.
A execução automática é fornecida por duas ramificações do registro:
- Software HKCUMicrosoftWindowsCurrentVersionRun%insregname%
- HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun %insregname%
Já que o bootloader injeta no processo RegAsm, definir o sinalizador persistente para o módulo principal leva a consequências bastante interessantes. Em vez de se copiar, o malware anexou o arquivo original ao sistema RegAsm.exe, durante o qual a injeção foi realizada.
Interação com C&C
Independentemente do método utilizado, a comunicação em rede começa com a obtenção do IP externo da vítima utilizando o recurso
A seguir são descritos os métodos de interação de rede apresentados no software.
painel da web
Взаимодействие идет по HTTP-протоколу. ВПО выполняет POST-запрос со следующими заголовками:
- Agente do usuário: Mozilla/5.0 (Windows U Windows NT 6.1 ru rv: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 é especificado pelo valor %PostURL%. Зашифрованное сообщение передается в параметре «P». O mecanismo de criptografia é descrito na seção "Algoritmos de criptografia" (Método 2).
A mensagem transmitida fica assim:
type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nclient={8}nlink={9}nusername={10}npassword={11}nscreen_link={12}
Parâmetro tipo indica o tipo de mensagem:
hwid — um hash MD5 é registrado a partir dos valores do número de série da placa-mãe e do ID do processador. Provavelmente usado como ID de usuário.
tempo — serve para transmitir a hora e a data atuais.
nome do computador - definido como <Имя пользователя>/<Имя компьютера>.
dados de registro - registrar dados.
Ao transmitir senhas, a mensagem fica assim:
type={0}nhwid={1}ntime={2}npcname={3}nlogdata={4}nscreen={5}nipadd={6}nwebcam_link={7}nscreen_link={8}n[passwords]
A seguir estão as descrições dos dados roubados no formato nclient[]={0}nlink[]={1}nome de usuário[]={2}nsenha[]={3}.
smtp
A interação ocorre através do protocolo SMTP. A carta transmitida está em formato HTML. Parâmetro BODY parece:
O cabeçalho da carta tem a forma geral: / . O conteúdo da carta, bem como seus anexos, não são criptografados.
A interação ocorre através do protocolo FTP. Um arquivo com o nome é transferido para o servidor especificado <ТИП КОНТЕНТА>_<ИМЯ ПОЛЬЗОВАТЕЛЯ>-<ИМЯ КОМПЬЮТЕРА>_<ДАТА И ВРЕМЯ>.html. O conteúdo do arquivo não é criptografado.
Algoritmos de criptografia
Este caso usa os seguintes métodos de criptografia:
O método 1
Este método é usado para criptografar strings no módulo principal. O algoritmo usado para criptografia é AES.
A entrada é um número decimal de seis dígitos. A seguinte transformação é realizada nele:
f(x) = (((x >> 2 - 31059) ^ 6380) - 1363) >> 3
O valor resultante é o índice da matriz de dados incorporada.
Cada elemento da matriz é uma sequência DWORD. Ao mesclar DWORD uma matriz de bytes é obtida: 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.
O método 2
Algoritmo usado 3DES no modo BCE com preenchimento em bytes inteiros (PKCS7).
A chave é especificada pelo parâmetro %urlkey%, entretanto, a criptografia usa seu hash MD5.
Funcionalidade maliciosa
A amostra em estudo utiliza os seguintes programas para implementar sua função maliciosa:
KeyLogger
Se houver um sinalizador de malware correspondente usando a função WinAPI DefinirWindowsHookEx atribui seu próprio manipulador para eventos de pressionamento de tecla no teclado. A função manipuladora começa obtendo o título da janela ativa.
Se o sinalizador de filtragem do aplicativo estiver definido, a filtragem será executada dependendo do tipo especificado:
- o nome do programa é procurado nos títulos das janelas
- o nome do programa é procurado na janela nome do processo
A seguir, um registro é adicionado ao log com informações sobre a janela ativa no formato:
Em seguida, são registradas informações sobre a tecla pressionada:
Key | Registro |
Retrocesso | Dependendo do sinalizador de processamento da chave Backspace: False – {BACK} True – apaga a chave anterior |
CAPS LOCK | {CAPSLOCK} |
CES | {ESC} |
PageUp | {Subir página} |
Para baixo | ↓ |
EXCLUIR | {DEL} |
" | " |
F5 | {F5} |
& | |
F10 | {F10} |
ABA | {ABA} |
< | < |
> | > |
lacuna | |
F8 | {F8} |
F12 | {F12} |
F9 | {F9} |
ALT + TAB | {ALT+TAB} |
END | {FIM} |
F4 | {F4} |
F2 | {F2} |
CTRL | {CTRL} |
F6 | {F6} |
Certo | → |
Up | ↑ |
F1 | {F1} |
Esquerdo | ← |
PageDown | {PageDown} |
inserção | {Inserir} |
Wine Folly | {Ganhar} |
NumLock | {NumLock} |
F11 | {F11} |
F3 | {F3} |
EMPRESA | {LAR} |
ENTRAR | {DIGITAR} |
ALT + F4 | {ALT+F4} |
F7 | {F7} |
Outra chave | O caractere está em letras maiúsculas ou minúsculas dependendo das posições das teclas CapsLock e Shift |
Em uma frequência especificada, o log coletado é enviado ao servidor. Se a transferência não for bem-sucedida, o log será salvo em um arquivo %TEMP%log.tmp em formato:
Quando o cronômetro disparar, o arquivo será transferido para o servidor.
Registrador de tela
Com uma frequência especificada, o malware cria uma captura de tela no formato Jpeg com valor Qualidade igual a 50 e salva em um arquivo %APPDATA %.jpg. Após a transferência, o arquivo é excluído.
ClipboardLogger
Se o sinalizador apropriado for definido, as substituições serão feitas no texto interceptado conforme tabela abaixo.
Depois disso, o texto é inserido no log:
Ladrão de senhas
O malware pode baixar senhas dos seguintes aplicativos:
Browsers | Clientes de correio | Clientes FTP |
Chrome | Outlook | FileZilla |
Firefox | Thunderbird | WS_FTP |
IE/Edge | Foxmail | WinSCP |
Safári | Opera Mail | CoreFTP |
Navegador Opera | IncrediMail | FTP Navigator |
Yandex | Pocomail | FlashFXP |
Comodo | Eudora | SmartFTP |
Chrome Plus | O morcego | FTPCommander |
crômio | Postbox | |
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 | Internet Download Manager | |
Cometa | JDownloader | |
órbita | ||
Sputnik | ||
uCozMedia | ||
Vivaldi | ||
SeaMonkey | ||
Navegador Flock | ||
UC browser | ||
Falcão | ||
Cyber Fox | ||
K-Meleon | ||
gato de gelo | ||
Icedragon | ||
Lua pálida | ||
raposa d'água | ||
Navegador Falkon |
Contra-ação à análise dinâmica
- Usando a função Dormir. Permite ignorar alguns sandboxes por tempo limite
- Destruindo um tópico Zona.Identificador. Позволяет скрыть факт загрузки файла из интернета
- No parâmetro %filtro_lista% especifica uma lista de processos que o malware encerrará em intervalos de um segundo
- Desconectando UAC
- Desativando o gerenciador de tarefas
- Desconectando CMD
- Desativando uma janela "Corre"
- Desativando o Painel de Controle
- Desativando uma ferramenta RegEdit
- Desativando pontos de restauração do sistema
- Desative o menu de contexto no Explorer
- Desconectando MSCONFIG
- Desviar UAC:
Recursos inativos do módulo principal
В ходе анализа основного модуля были выявлены функции, отвечающие за распространение по сети и отслеживание положения мыши.
Verme
Os eventos de conexão de mídia removível são monitorados em um thread separado. Quando conectado, o malware com o nome é copiado para a raiz do sistema de arquivos scr.exe, após o qual ele procura arquivos com a extensão lnk. A equipe de todos lnk muda para cmd.exe /c start scr.exe&start & exit.
Cada diretório na raiz da mídia recebe um atributo "Escondido" e um arquivo é criado com a extensão lnk com o nome do diretório oculto e o comando cmd.exe /c start scr.exe&explorer /root,"%CD%" & sair.
MouseTracker
O método para realizar a interceptação é semelhante ao usado para o teclado. Esta funcionalidade ainda está em desenvolvimento.
Atividade de arquivo
Caminho | descrição |
%Temp%temp.tmp | Contém um contador para tentativas de desvio do UAC |
%startupfolder%%insfolder%%insname% | Caminho a ser atribuído ao sistema HPE |
%Temp%tmpG{Tempo atual em milissegundos}.tmp | Caminho para backup do módulo principal |
%Temp%log.tmp | Arquivo de log |
%AppData%{Произвольная последовательность из 10 симоволов}.jpeg | Screenshots |
C:UsersPublic{Uma sequência arbitrária de 10 caracteres}.vbs | Caminho para um arquivo vbs que o bootloader pode usar para anexar ao sistema |
%Temp%{Nome da pasta personalizada}{Nome do arquivo} | Caminho usado pelo bootloader para se conectar ao sistema |
Perfil do invasor
Graças aos dados de autenticação codificados, conseguimos obter acesso ao centro de comando.
Это позволило нам выявить конечную почту злоумышленников:
junaid[.]in***@gmail[.]com.
O nome de domínio do centro de comando está registrado no correio sg***@gmail[.]com.
Conclusão
Durante uma análise detalhada do malware utilizado no ataque, conseguimos estabelecer sua funcionalidade e obter a lista mais completa de indicadores de comprometimento relevantes para este caso. A compreensão dos mecanismos de interação de rede entre malwares possibilitou dar recomendações para ajustar o funcionamento das ferramentas de segurança da informação, bem como escrever regras de IDS estáveis.
Perigo principal Agente Tesla como o DataStealer, pois não precisa se comprometer com o sistema ou esperar que um comando de controle execute suas tarefas. Uma vez na máquina, ele imediatamente começa a coletar informações privadas e transferi-las para o CnC. Este comportamento agressivo é, em alguns aspectos, semelhante ao comportamento do ransomware, com a única diferença de que este último nem sequer requer uma ligação à rede. Se você encontrar essa família, depois de limpar o sistema infectado do próprio malware, você definitivamente deve alterar todas as senhas que poderiam, pelo menos teoricamente, ser salvas em um dos aplicativos listados acima.
Olhando para o futuro, digamos que os invasores que enviam Agente Tesla, o carregador de boot inicial é alterado com muita frequência. 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 suas atividades inutiliza os monitores do sistema. A melhor maneira de combater o AgentTesla é uma análise preliminar em uma sandbox.
No terceiro artigo desta série veremos outros bootloaders usados Agente Tesla, e também estudar o processo de sua desembalagem semiautomática. Não perca!
Hash
SHA1 |
A8C2765B3D655BA23886D663D22BDD8EF6E8E894 |
8010CC2AF398F9F951555F7D481CE13DF60BBECF |
79B445DE923C92BF378B19D12A309C0E9C5851BF |
15839B7AB0417FA35F2858722F0BD47BDF840D62 |
1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD |
C & C
URL |
sina-c0m[.]icu |
smtp[.]sina-c0m[.]icu |
Chave Regista
Lista de Presentes |
HKCUSoftwareMicrosoftWindowsCurrentVersionRun{Nome do script} |
HKCUSoftwareMicrosoftWindowsCurrentVersionRun%insregname% |
HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerStartupApprovedRun%insregname% |
Mutex
Não há indicadores.
Arquivos
Atividade de arquivo |
%Temp%temp.tmp |
%startupfolder%%insfolder%%insname% |
%Temp%tmpG{Tempo atual em milissegundos}.tmp |
%Temp%log.tmp |
%AppData%{Произвольная последовательность из 10 симоволов}.jpeg |
C:UsersPublic{Uma sequência arbitrária de 10 caracteres}.vbs |
%Temp%{Nome da pasta personalizada}{Nome do arquivo} |
Informações de amostras
Nome | Desconhecido |
MD5 | F7722DD8660B261EA13B710062B59C43 |
SHA1 | 15839B7AB0417FA35F2858722F0BD47BDF840D62 |
SHA256 | 41DC0D5459F25E2FDCF8797948A7B315D3CB0753 98D808D1772CACCC726AF6E9 |
Formato | PE (.NET) |
Tamanho | 327680 |
Nome original | AZZRIDKGGSLTYFUUBCCRRRCUMRKTOXFVPDKGAGPUZI_20190701133545943.exe |
Carimbo de data | 01.07.2019 |
Compilador | VB.NET |
Nome | IELibrary.dll |
MD5 | BFB160A89F4A607A60464631ED3ED9FD |
SHA1 | 1C981EF3EEA8548A30E8D7BF8D0D61F9224288DD |
SHA256 | D55800A825792F55999ABDAD199DFA54F3184417 215A298910F2C12CD9CC31EE |
Formato | PE (DLL .NET) |
Tamanho | 16896 |
Nome original | IELibrary.dll |
Carimbo de data | 11.10.2016 |
Compilador | Vinculador Microsoft (48.0*) |
Fonte: habr.com