Um olhar atento às técnicas avançadas usadas em uma campanha APT focada na Malásia

Nossa equipe de pesquisa de Segurança Elástica se concentrou em técnicas avançadas usadas em uma campanha de APT focada na Malásia. Saiba quem está por trás disso, como o ataque funciona, técnicas observadas no ataque MITRE ® e indicadores de comprometimento.

9 min de leituraCampanhas
Um olhar atento às técnicas avançadas usadas em uma campanha APT focada na Malásia

A equipe de inteligência e análise de segurança elástica pesquisa inovações de adversários de vários tipos e recentemente se concentrou em um grupo de atividades que aproveitou modelos remotos, evasão de código VBA e técnicas de carregamento lateral de DLL. Com base na similaridade do código e nas táticas, técnicas e procedimentos compartilhados (TTPs), a equipe avaliou que essa atividade poderia estar ligada a um grupo chinês conhecido como APT40, ou Leviathan. A campanha do grupo parece ter como alvo autoridades do governo da Malásia com uma isca relacionada à 2020 crise política da Malásia.

Anatomia do ataque

Para iniciar sua campanha de ameaça persistente avançada (APT), o grupo provavelmente entregou um documento do Microsoft Word como anexo de isca de phishing. A imagem usada na isca (Figura 2) parece ter sido criada a partir de um anúncio de transmissão compartilhado por um blogueiro malaio (Figura 1). A imagem de atração inclui o mesmo horário de transmissão, mas a data e o tópico do discurso foram removidos. Depois que esse anexo é aberto, um documento falso é apresentado nos bastidores, realizando as seguintes ações:

  • O documento lure baixa o modelo remoto RemoteLoad.dotm
  • O modelo remoto executa código de macro VBA
  • O código de macro VBA descompacta e executa duas DLLs codificadas em base64 incorporadas (sl1.tmp e sl2.tmp) em c:\users\public\

Essa técnica é conhecida como injeção de modelo, que você pode lembrar da nossa postagem do blog Jogando na defesa contra o Gamaredon Group. Essa é uma abordagem eficaz usada por adversários para contornar controles de perímetro, como gateways de e-mail.

Ambas as DLLs incorporadas (sl1.tmp e sl2.tmp) são semelhantes e exportam os mesmos nomes de função: RCT e RCP. A primeira DLL (sl1.tmp) é usada para baixar um executável benigno chamado LogiMailApp.exe e uma biblioteca associada LogiMail.dll, e a segunda DLL (sl2.tmp) é usada para executar LogiMailApp.exe, que tenta executar automaticamente LogiMail.dll devido a uma vulnerabilidade inerente à ordem de pesquisa de DLL que abordaremos em breve.

Nome do arquivoTipo de arquivoTamanho (bytes)MD5Tempo de compilação
LogiMailApp.exeWin32 EXE311656850a163ce1f9cff0367854038d8cfa7e2012-09-26 22:13:13+00:00
LogiMail.dllDLL Win32105984b5a5dc78fb392fae927e9461888f354d2020-06-03 04:08:29+00:00
sl1.tmpDLL Win323072ccbdda7217ba439dfb6bbc6c3bd594f82019-11-29 17:15:29+00:00
sl2.tmpDLL Win323072dbfa006d64f39cde78b0efda1373309c2019-11-29 21:23:44+00:00

Tabela 1: Metadados de arquivos descartados

Essa implementação se destacou para nossos pesquisadores devido a uma idiossincrasia comportamental:

  • O aplicativo do Microsoft Office winword.exe carrega DLLs sl1.tmp e sl2.tmp usando o método LoadLibraryA, que é moderadamente raro
  • Essas DLLs executam comandos explícitos ou instalam uma carga útil de uma URL usando o método CallWindowProcA, o que parece ser excepcionalmente raro
  • Ambas as DLLs são excluídas após a execução

DLLs incorporadas

As DLLs incorporadas, sl1.tmp e sl2.tmp, têm funcionalidade muito limitada — exportando as funções RCP e RCT. A função RCP implementa o método WinExec para executar comandos onde a função RCT usa o método URLDownloadToFileA para baixar um arquivo de uma URL especificada.

DLL carregando um backdoor lateralmente

LogiMailApp.exe, que é baixado por sl1.tmp e executado por sl2.tmp, é vulnerável a uma forma de sequestro de ordem de pesquisa de DLL chamada carregamento lateral, que automaticamente procura e executa LogiMail.dll se encontrado no mesmo diretório. Formas de sequestro de ordem de pesquisa de DLL podem ser usadas com muitos aplicativos de software de terceiros. Neste caso, o sequestro de ordem de pesquisa foi usado para carregar um backdoor que exporta as seguintes funções notáveis:

O binário LogiMail.dll criado pelo adversário exporta a função DllGetClassObject que contém lógica crítica para o fluxo de execução deste exemplo:

  1. Baixe um objeto de segundo estágio criptografado com AES para %TEMP%~liseces1.pcs
  2. Derive uma chave AES de 128 bits e um vetor de inicialização do SHA256 de uma string codificada
  3. Ler e descriptografar %TEMP%~liseces1.pcs na memória usando as funções ReadFile e CryptDecrypt
  4. Excluir %TEMP%~liseces1.pcs do disco

Segundo estágio backdoor

O backdoor de segundo estágio descriptografado é mapeado na memória e então seu ponto de entrada original (OEP) é chamado, ignorando assim detecções bem-sucedidas com base na varredura do sistema de arquivos.

Tanto o servidor de preparação de carga útil quanto a infraestrutura de segundo estágio usam DNS dinâmico:

Esta carga útil suporta os seguintes recursos:

  • Verificações básicas anti-depuração
  • Descoberta de sistema e usuário
  • Execução via linha de comando
  • Descoberta, upload e download de arquivos
  • Persistência via registro de execução
  • Criptografar o tráfego C2 usando a mesma chave AES

Possível conexão APT40/Leviathan

No início do ano, a Equipe de Resposta a Emergências de Computadores da Malásia (MyCERT) emitiu um aviso relacionado a atividades de espionagem direcionadas ao seu país. O relatório listou diferentes TTPs e incluiu diversas amostras e outros indicadores técnicos que se alinham com um grupo de ameaças conhecido como APT40/Leviathan.

Em um nível alto, esta amostra segue a tendência contínua de atingir vítimas da Malásia usando TTPs específicos, como modelos remotos, empregando macros, usando técnicas de carregamento lateral de DLL e aproveitando um implante na memória com DNS dinâmico para comando e controle. Mais especificamente, o implante de segundo estágio desta isca compartilha sequências de caracteres e referências de URL exclusivas e contém funcionalidade semelhante que se correlaciona com os relatórios anteriores para APT40/Leviathan. Com essas semelhanças, nossa Equipe de Inteligência e Análise avalia com moderada confiança que essa atividade está ligada ao APT40/Leviathan.

Semelhanças da sequência de implantes com o exemplo MyCERT:

  • /lista_direção
  • /post_document
  • /post_login
  • Falha ao abrir arquivo remoto %s para: %s
  • Falha no Open Pipe %s
  • O caminho de leitura do download falhou %s
  • %02X-%02X-%02X-%02X-%02X-%02X
  • Software\Microsoft\Windows\CurrentVersion\Run
  • ntkd

Conclusão

Nesta postagem, destacamos uma amostra recente que provavelmente representa o trabalho de um adversário altamente organizado. Grupos de atividades como esse são importantes para que todos tomem conhecimento, mesmo porque representam um nível mais alto de maturidade da inovação pós-exploração. Os TTPs de ponta de hoje acabam se tornando comuns para todos amanhã; é importante aprender com esses eventos.

Esperamos que, ao compartilhar alguns desses insights, possamos ajudar a aumentar a conscientização e continuar a focar na proteção dos dados do mundo contra ataques. Para capacitar ainda mais as organizações, adicionamos todas as técnicas MITRE ATT&CK ® observadas e indicadores de comprometimento (IoCs) abaixo.

Técnicas MITRE ATT&CK ®

Indicadores de Compromisso (IOCs)

Nomes e caminhos de arquivos

Bubar Parlimen.zip
Bubar Parlimen.docx
RemoteLoad.dotm
C:\Users\Public\sl1.tmp
C:\Users\Public\sl2.tmp
C:\Users\*\AppData\Local\Temp\~liseces1.pcs
C:\Users\*\AppData\Local\Microsoft\Office\LogiMailApp.exe
C:\Users\*\AppData\Local\Microsoft\Office\LogiMail.dll

Chaves de registro

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ntkd

URLs

hxxps[:]//armybar[.]hopto[.]org/LogiMail.dll
hxxps[:]//armybar[.]hopto[.]org/LogiMailApp[.]exe
hxxps[:]//armybar[.]hopto[.]org/Encrypted
hxxp[:]//tomema.myddns[.]me/postlogin
hxxp[:]//tomema[.]myddns[.]me/list_direction
hxxp[:]//tomema[.]myddns[.]me/post_document

IPs

104[.]248[.]148[.]156
139[.]59[.]31[.]188

Certificado HTTPS

74b5e317527c93539dbaaf84d6a61da92a56012a

Hashes

523cbdaf31ddc920e5b6c873f3ab42fb791fb4c9d1f4d9e6a7f174105d4f72a1
ab541df861c6045a17006969dac074a7d300c0a8edd0a5815c8b871b62ecdda7
145daf50aefb7beec32556fd011e10c9eaa71e356649edfce4404409c1e8fa30
93810c5fd9a287d85c182d2ad13e7d30f99df76e55bb40e5bc7a486d259810c8
925f404b0207055f2a524d9825c48aa511199da95120ed7aafa52d3f7594b0c9
feca9ad5058bc8571d89c9d5a1eebce09e709cc82954f8dce1564e8cc6750a77
06a4246be400ad0347e71b3c4ecd607edda59fbf873791d3772ce001f580c1d3
77ef350639b767ce0a748f94f723a6a88609c67be485b9d8ff8401729b8003d2

YARA

rule APT_APT40_Implant_June2020 {
   meta:
       version = "1.0"
       author =  "Elastic Security"
       date_added = "2020-06-19"
       description = "APT40 second stage implant"
    strings:
        $a = "/list_direction" fullword wide
        $b = "/post_document" fullword wide
        $c = "/postlogin" fullword wide
        $d = "Download Read Path Failed %s" fullword ascii
        $e = "Open Pipe Failed %s" fullword ascii
        $f = "Open Remote File %s Failed For: %s" fullword ascii
        $g = "Download Read Path Failed %s" fullword ascii
        $h = "\\cmd.exe" fullword wide
    condition:
        all of them
}

Referências

Compartilhe este artigo