Innaput: Cavalo de Troia é usado para acesso remoto desde 2016

O ASERT identificou, recentemente, uma campanha dirigida à manufatura comercial nos Estados Unidos e possivelmente na Europa no final de 2017. Os atacantes usaram phishing e downloader(s) para instalar nas máquinas um Cavalo de Troia de Acesso Remoto (RAT, do inglês Remote Access Trojan) chamado InnaputRAT (pelo ASSERT). O RAT continha uma série de comandos com a capacidade de exfiltrar documentos das máquinas afetadas. Acreditamos que essa atividade está ligada a um conjunto específico de atacantes, com objetivos definidos. Também observamos semelhanças em binários que datam de 2016.

Principais descobertas

• O InnaputRAT, RAT capaz de exfiltrar arquivos das máquinas afetadas, foi distribuído por atacantes usando phishing e Godzilla Loader.
• O RAT evoluiu por meio de diversas variantes a partir de 2016.
• Campanhas recentes distribuem o InnaputRAT desde 26 de março de 2018.

Figura 1: InnaputRAT se comunica com domínios TOP.

Atribuição

O ASERT identificou potenciais atores, ou personas, vinculados a esta campanha por meio de registros de domínios, contas do Facebook e do Twitter possivelmente vinculadas a um endereço de e-mail. A campanha compartilhou uma carga comum de malware, o InnaputRAT. Algumas das amostras recentes de malware foram atribuídas à campanha por meio de semelhanças binárias, mais do que pela infraestrutura conectada.

Os e-mails de phishing parecem atrair vítimas com um tema geopolítico. Os endereços de e-mail e as linhas de assunto do remetente geralmente fazem referência à Organização das Nações Unidas (ONU). Além disso, enquanto a maioria dos domínios associados a Aigul (Aygul) Akulova e Slabodan Miloshevich tentam imitar produtos Google ou Microsoft, alguns deles foram mais específicos na imitação de alvos relacionados à diplomacia, nomeadamente un-booklet[.]com e us-embassy-report[.] com, sugerindo um público mais específico. Identificamos a campanha inicial por meio de domínios destacados na seção de domínios de phishing abaixo.

Domínios de phishing

1. mfa-events[.]com
2. officeonlaine[.]com
3. blockhain[.]name
4. iceerd[.]com

Todos esses domínios estão vinculados ao endereço de e-mail s.miloshevich[@]yandex.ru, com o nome de registro Slabodan Miloshevich. Cada um dos domínios utilizou o Cazaquistão como país do registrante. Domínios adicionais registrados pela mesma entidade apontaram para quatro endereços IP distintos (a partir de 24 de março de 2017).

Figura 2: Domínios registrados por s.miloshevich[@]yandex.ru

Análise adicional de domínio
1. mfa-events[.]top
2. officemicroupdate[.]com
3. ico-investmen[.]com

Na seção anterior, associamos o primeiro domínio a s.miloshevich[@]yandex.ru. O ator por trás do endereço innaput69[@]gmail.com registrou os domínios dois e três. Todos os três domínios hospedaram uma variante ou a amostra primária que analisamos. Olhando para os domínios registrados por innaput69[@]gmail.com, os nomes na conta usam o mesmo sobrenome, mas usam dois nomes diferentes. Notem que todos, exceto um, listam o país de contato do registrante como a Rússia.

Figura 3: Domínios vinculados a innaput69@gmail[.]com

Para encontrar officemicroupdate[.]com, precisamos examinar algumas informações históricas de registradores de domínio. De 1º de março de 2017 a 2 de novembro de 2017, o e-mail do solicitante do registro foi innaput69[@]gmail.com (de acordo com as Ferramentas de Domínio) antes que o URL fosse tomado pela Microsoft. Antes de 1º de março de 2017, as informações do registrante estavam ocultas atrás de um Registro Protegido de Privacidade, então é possível que tenha sido registrado em um momento por alguém que não seja o ator por trás do innaput69[@]gmail.com.

GodZilla Loader
Na figura 3, encontramos outro endereço de e-mail: jemesn[@]mail.ru. Esse endereço de e-mail também está vinculado a alguns outros domínios.

Figura 4: Informações do solicitante de registro para jemesn[@]mail.ru

Um dos domínios associados a jemesn[@]mail.ru, update-app[.]top, hospedou uma cópia do Godzilla Loader que observamos distribuindo o InnaputRAT no final de março de 2018.

Evolução do InnaputRAT

Todas as infraestruturas e registradores foram vinculados a uma carga comum de malware, o InnaputRAT. Identificamos uma versão recente do InnaputRAT por meio de campanhas iniciais de phishing, correlação de infraestrutura e análise binária. Em seguida, encontramos diversas variações do malware que datam de 2016. Os binários são listados abaixo em ordem cronológica. Nossa amostra inicial (5249a165de139c62cb9615c0e787a856) está listada como amostra 3 (abaixo). Comparamos os binários usando Diaphora, uma ferramenta de código aberto para comparar programas em um descompilador, e extraímos informações relevantes mostrando a evolução do RAT.

Amostra 1 – 29 de maio de 2016
MD5 2939d7350f611263596bdc0917296aa3
Data da compilação 29-05-2016 13:38:07
PDB N/A
ITW N/A
C2s: officemicroupdate[.]com
Porta de comunicação: 5876
Nome do arquivo: msupdate.exe
Persistência: Maldoc (27dac1fa01700694eaf2b04b04bb04df0b443) libera um dropper que cria um serviço do Windows (OfficeUpdateService) e executa a carga útil.
Opções de comando Nome da função: sub_401737
1. GetDriveAndVolInfo
2. GetFileAttributeW
3. EnumDirectory
4. ReadFile (CreateFileMapping -> MapViewOfFile)
5. WriteFile
6. DeleteFile
7. ShellExecuteW
8. GetSystemInfo
Estatísticas da Função Diaphora Correspondências: 14
Sem correspondência: 30 – Inclui sub_401737

Tabela 1: Análise de amostra

Acreditamos que esta seja uma variante anterior pelas seguintes razões:

• Opções de comando usadas refletem variantes posteriores. A ordem das opções também reflete outras variantes.
• Embora não compartilhe tantas funções de correspondência quanto outras amostras, algumas das estruturas binárias correspondiam a variantes mais recentes.

Embora acreditemos que esta amostra é da mesma família que as amostras 2 a 5 (abaixo), existem algumas diferenças notáveis que sugerem que o malware evoluiu ao longo do tempo:

• Método de persistência
o Este exemplo faz uso de um serviço instalado por um arquivo dropper. Em contraste, outros exemplos usam o registro do Windows para instalar uma chave Autorun.
o Notavelmente, a carga útil requer o dropper para execução e permanece inativo se não estiver presente na máquina afetada.

• Chamadas de API do Windows

o O comando “ler arquivo” para este exemplo usou CreateFileMapping e MapViewOfFile, enquanto amostras mais recentes usaram CreateFileW e ReadFile.
o A principal funcionalidade da carga útil permanece a mesma em todos os binários: navega pelo sistema de arquivos atacado com a intenção de exfiltrar os dados desejados.

Amostra 2 – 5 de junho de 2017
Amostra 2 se parece mais com o nosso ponto de partida (amostra 3).
MD5 8c3d37676f8f7711b381abf00155ef25
Data de compilação 05-06-2017 16:57:38
PDB D:\Arena\RobotNet\FileTransferStream\Release\FileTransfer.pdb
ITW hxxp://best-online-tv[.]com/1.exe
C2s: worlwidesupport[.]top
ninjagames[.]top
ajdhsfhiudsfhsi[.]top
Porta de comunicação: 52100
Nome de arquivo: SafeApp.exe
Persistência: HKU\<SID>\Software\Microsoft\Windows\CurrentVersion\Run: %appdata%\SafeApp\SafeApp.exe
Opções de comando: Nome de função: sub_401B46
1. GetDriveVolInfo
2. GetFileAttributesW
3. EnumDirectory
4. ReadFile (CreateFileW + ReadFile)
5. WriteFile
6. DeleteFile
7. ShellExecuteW
8. GetSystemInfo
Estatísticas da função Diaphora Correspondências: 36 – Inclui sub_401B46
Sem correspondência: 4

Tabela 2: Análise da amostra 2

Executando uma operação de comparação usando Diaphora, a maioria das funções apresentou correspondência binária, incluindo “opções de comando” e C2s. Isso fornece um nível maior de confiança de que a amostra 2 é uma variante do binário “ponto zero” da amostra 3 (abaixo). A principal diferença entre as variantes posteriores e a amostra 1 envolve o mecanismo de persistência usado e uma alteração no arquivo de leitura “opção de comando”. Variantes posteriores não dependem mais do dropper para definir a persistência via serviço do Windows mas, em vez disso, criam a chave de registro do Windows, como visto na tabela 2 e executam o malware.

Amostra 3 – 22 de agosto de 2017
A amostra 3, nossa amostra inicial, tem uma correspondência quase exata com a amostra 2, mas hospedada em um servidor diferente.
MD5 5249a165de139c62cb9615c0e787a856
Data de compilação 22-08-2017 15:58:14
PDB N/A
ITW hxxp://mfa-events[.]com/upd.exe
C2s: worlwidesupport[.]top
ninjagames[.]top
ajdhsfhiudsfhsi[.]top
Porta de comunicação 52100
Nome do arquivo NeutralApp.exe
Persistência HKU\<SID>\Software\Microsoft\Windows\CurrentVersion\Run: %appdata%\NeutralApp\NeutralApp.exe
Opções de comando Nome de função: sub_401E39
1. GetDriveVolInfo
2. GetFileAttributesW
3. EnumDirectory
4. ReadFile (CreateFileW + ReadFile)
5. WriteFile
6. DeleteFile
7. ShellExecuteW
8. GetSystemInfo
Estatística da função Diaphora Não realizada, pois é a amostra inicial.

Tabela 3: Análise da amostra 3

A principal diferença entre a amostra 2 e esta é o nome do arquivo usado pela carga útil. A versão anterior usou o nome SafeApp.exe e instalou o binário em %AppData% e adicionou uma entrada de registro de execução automatizada do Windows em relação a esse arquivo. A amostra 3 faz a mesma coisa, mas nomeia o arquivo como NeutralApp.exe. Isso é notável, porque o malware verifica uma cópia de si mesmo, e o nome é estático, tornando simples a identificação da infecção. Em função da alteração de nome, a versão mais recente é executada mesmo que SafeApp.exe esteja atualmente em execução na máquina contaminada.

Amostra 4 – 22 de janeiro de 2018
Dando sequência à correspondência binária e à análise de infraestrutura, encontramos uma quarta amostra que mostrou nova evolução do binário, ofuscando alguns nomes e strings da API. Este binário também partilhou o mesmo nome de arquivo NeutralApp.exe e os mesmos C2s que a variante anterior. As “opções de comando” também permaneceram as mesmas nesta variante.
MD5 4e61d5d9c2e0386a872232f8d33e76bc
Data de compilação 22-01-2018 20:46:41
PDB D:\Arena\RobotNet\FileTransferStream\Release\FileTransfer.pdb
ITW hxxp://ico-investmen[.]com/1.exe
C2s: worlwidesupport[.]top
ninjagames[.]top
ajdhsfhiudsfhsi[.]top
Porta de comunicação: 52100
Nome de arquivo: NeutralApp.exe
Persistência: HKU\<SID>\Software\Microsoft\Windows\CurrentVersion\Run: %appdata%\NeutralApp\NeutralApp.exe
Opções de comando Nome de função: sub_401F95
Sem alteração
Estatísticas da função Diaphora Correspondências: 33 – sub_401F95
Sem correspondência: 13
Notas: Alguns nomes de API e strings de registro estão ofuscadas.

Tabela 4: Análise da amostra 4

A string PDB contida nesta quarta amostra é idêntica à da amostra 2.

Esta variante usa uma chave XOR de 8 bytes para ofuscar nomes de API e outras strings dentro da carga útil (figura 5).

Figura 5: Chave XOR de 8 bytes para amostra de ofuscação

Amostra 5 – 13 de março de 2018
A variante mais recente do InnaputRAT também compartilhou C2s das duas amostras anteriores, o mesmo nome NeutralApp.exe e a mesma criação da chave de registro. No momento da análise desta amostra, a carga estava sendo distribuída por Godzilla Loader (figura 6), uma ferramenta vendida em fóruns clandestinos e usada em várias campanhas para distribuir malwares como Dridex, Trickbot e Panda Banker.

Figura 6: Painel de login do GodZilla Loader

MD5 eec8e585ffdefb79a40ddb337ea852c6
Data de compilação 13-03-2018 18:45:45
PDB N/A
ITW N/A
C2s: worlwidesupport[.]top
ninjagames[.]top
ajdhsfhiudsfhsi[.]top
Porta de comunicação: 52100
Nome de arquivo: NeutralApp.exe
Persistência: HKU\<SID>\Software\Microsoft\Windows\CurrentVersion\Run: %appdata%\NeutralApp\NeutralApp.exe
Opções de comando Nome de função: sub_401DA0
Sem alteração
Estatísticas da função Diaphora Melhores correspondências: 26 – sub_401DA0
Sem correspondência: 27
Notas: Mais ofuscamento de string e nome da API
Tabela 5: Análise da amostra 5

Diferenças primárias entre este exemplo e os dois anteriores são a diminuição das funções correspondentes usando Diaphora (provavelmente um resultado dos atacantes ofuscando mais chamadas e strings de API) e uma alteração na chave XOR de 8 bytes usada para ofuscar os nomes de API e outras strings.

 

Figura 7: Alteração de chave XOR de 8 bytes

 

Sumário

O ASERT acredita que os atacantes por trás do InnaputRAT estão priorizando arquivos para exfiltração das máquinas afetadas. A segmentação inicial voltada à manufatura comercial sugere um possível objetivo de roubo de propriedade intelectual. Desde 2016, o malware tem sofrido mudanças significativas. Os atacantes continuam a sofisticar o bot e sua operação com a inclusão de um carregador intermediário, o Godzilla Loader, e ofuscamento de elementos-chave no binário. Com moderada confiança, entendemos que esta operação seguirá e que o InnaputRAT continuará a evoluir.

Apêndice A:

IOCs:
• alert-login-gmail[.]com
• blockhain[.]name
• best-online-tv[.]com
• dockooment[.]com
• docsautentification[.]com
• g000glemail[.]com
• googldraive[.]com
• googledockumets[.]com
• googledraive[.]com
• googlesuport[.]com
• googlmaile[.]com
• googlsupport[.]com
• govreportst[.]com
• iceerd[.]com
• login-googlemail[.]com
• mail-redirect.com[.]kz
• mfa-events[.]com
• msoficceupdate[.]com
• officemicroupdate[.]com
• officeonlaine[.]com
• osc-e[.]com
• pwdrecover[.]com
• suporteng[.]com
• un-booklet[.]com
• update-app[.]top
• usaid[.]info
• us-embassy-report[.]com
• worlwidesupport[.]top

A atividade descrita neste blog foi derivada do ATLAS Intelligence Feed e de pesquisa original do ASERT Team. Os indicadores e assinaturas relacionados permitem que a Arbor APS bloqueie a atividade.