A ESET prepara o spyware InvisiMole desde 2013

Acompanhe as vítimas de alto escalão, permanecendo na sombra. Este é o princípio de operação de dois componentes maliciosos do InvisiMole. Eles transformam o computador infectado em uma câmera de vídeo dos atacantes, que permite ver e ouvir tudo o que acontece no escritório ou em qualquer outro local onde o dispositivo está localizado. Os operadores do InvisiMole se conectam facilmente ao sistema, monitoram as ações da vítima e roubam seus segredos.


De acordo com a telemetria da ESET, os invasores por trás desse spyware estão ativos desde pelo menos 2013. No entanto, essa ferramenta de espionagem cibernética não foi apenas estudada, mas não foi detectada até ser detectada pelos produtos ESET em computadores infectados na Rússia e na Ucrânia.

A campanha é altamente direcionada, o que explica o baixo nível de infecção - apenas algumas dezenas de computadores.

O InvisiMole possui uma arquitetura modular, inicia sua jornada com uma DLL de wrapper (DLL de wrapper) e, em seguida, existem dois módulos incorporados a seus recursos. Ambos os módulos são backdoors multifuncionais, permitindo que o Malvari colete informações máximas sobre o alvo.

Para desviar a atenção do usuário da máquina infectada, medidas adicionais são aplicadas. Isso permite que o programa malicioso permaneça no sistema por um longo período de tempo. Ainda não estabelecemos o vetor de infecção - atualmente todas as opções são possíveis, incluindo a instalação manual com acesso físico à máquina.

Instalação e Persistência


A primeira parte do malvari sob investigação é um wrapper DLL compilado usando o Free Pascal Compiler. De acordo com nossos dados de telemetria, a DLL é colocada na pasta Windows e disfarçada como um mpr.dll biblioteca mpr.dll legítimo com informações de versão falsas.


Figura 1. Wrapper DLL disfarçado como um arquivo de biblioteca legítimo mpr.dll, copiando as informações de nome e versão

Não vimos exemplos com outros nomes de invólucros, embora haja indicações no código DLL de que o arquivo também pode ser chamado de fxsst.dll ou winmm.dll .

A primeira maneira de iniciar o malvari é a técnica de substituir DLLs (seqüestro de DLL). O wrapper DLL é colocado na mesma pasta que o explorer.exe e carregado na inicialização do Windows, juntamente com o processo do Windows Explorer, em vez da biblioteca legítima localizada na %windir%\system32 .

Encontramos as versões de 32 e 64 bits do Malvari, que fornecem persistência nas duas arquiteturas.

Como alternativa às DLLs falsificadas, outros métodos de carregamento e persistência são possíveis. A DLL do wrapper exporta a função GetDataLength . Ao chamar essa função, a DLL verifica se foi carregada pelo processo rundll32.exe usando explorer.exe ou svchost.exe como processo pai e, em seguida, inicia a carga útil. Isso sugere outros métodos possíveis para garantir persistência - adicionar tarefas ao agendador (o processo pai é svchost.exe ) ou gravar na chave de execução automática no registro (o processo pai é explorer.exe ).

Independentemente de como a persistência é mantida, o comportamento do malware e a própria carga útil são os mesmos em todos os casos. O wrapper DLL carrega o módulo armazenado nos recursos com os nomes RC2FM e RC2CL e (se a substituição da DLL for usada) uma biblioteca legítima no processo explorer.exe para não interromper a operação normal do aplicativo e passar despercebida.


Figura 2. Funções de wrapper exportadas

Análise técnica


A data exata da compilação do malware é desconhecida - as amostras mais recentes do wrapper DLL foram alteradas pelos autores, os carimbos de data / hora do PE foram redefinidos para zero manualmente. No entanto, no decorrer do estudo, encontramos uma versão anterior, datada de 13 de outubro de 2013, para que as novas versões sejam claramente compiladas posteriormente.


Figura 3. Em todas as amostras posteriores, os carimbos de data / hora são definidos como zero

Criptografia e descriptografia


Para se disfarçar de analistas de vírus e administradores de sistema, os autores do programa malicioso usam criptografia de seqüências de caracteres, arquivos internos, dados de configuração e comunicações de rede. Enquanto o módulo RC2FM usa cifras personalizadas, o wrapper DLL e o módulo RC2CL usam um procedimento específico para todos os fins, incluindo descriptografar outros módulos maliciosos criados no wrapper DLL.

O script com o qual você pode extrair os RC2CL e RC2CL do wrapper DLL está disponível no repositório ESET no GitHub .


Figura 4. Procedimento de descriptografia em várias amostras (descompilado e desmontado)

Módulo RC2FM


O primeiro módulo RC2FM menor contém um backdoor que suporta 15 comandos. Eles são executados no computador infectado, conforme indicado pelo invasor. O módulo pode fazer várias alterações no sistema e também inclui ferramentas para espionagem cibernética.

Os arquivos têm a opção de registrar, mas o nome do log do sistema não está especificado na amostra. Isso sugere que a função foi usada apenas no estágio de desenvolvimento.

Comunicação em rede


Este módulo se comunica com os servidores C&C, que são codificados na amostra ou posteriormente adicionados pelos atacantes.

Além disso, o módulo pode acessar o servidor C&C mesmo com o proxy configurado na máquina infectada. Se não foi possível estabelecer uma conexão direta, o módulo tenta se conectar a qualquer um dos seus servidores C&C usando proxies configurados localmente ou proxies configurados para diferentes navegadores (Firefox, Pale Moon e Opera).
O RC2FM pode até verificar a lista de aplicativos usados ​​recentemente e tentar encontrar os executáveis ​​do navegador portátil:

FirefoxPortable.exe
OperaPortable.exe
Execute waterfox.exe
OperaAC.exe
Palemoon-Portable.exe

Se a vítima usar um desses navegadores portáteis com o servidor proxy configurado , o malware poderá detectá-lo nas configurações do usuário e usá-lo para se comunicar com seus servidores C&C.

A comunicação com o servidor C & C é uma série de solicitações HTTP GET e POST, conforme mostrado na Figura 5. A solicitação criptografada contém o ID do PC e o registro de data e hora, além de outras informações (opcional). É importante observar que o módulo RC2FM usa vários métodos de criptografia (variantes da criptografia XOR simples), ao contrário de outros componentes do InvisiMole.


Figura 5. Um exemplo de uma solicitação enviada para um servidor C&C pelo módulo RC2FM

Após o registro bem-sucedido da vítima no servidor C&C, informações adicionais são carregadas no sistema, que serão interpretadas pelo comando backdoor.

Funcionalidade


RC2FM suporta comandos para listar informações básicas do sistema e fazer alterações simples no sistema, além de vários recursos de spyware. A pedido dos atacantes, o módulo pode ligar remotamente o microfone em um computador comprometido e gravar áudio. O registro é codificado no formato MP3 usando a biblioteca legítima lame.dll , que é baixada e usada por malware.

Outra ferramenta para roubar dados são as capturas de tela. Um dos comandos do backdoor foi projetado para fazer capturas de tela.

Um programa malicioso monitora todos os discos internos e externos exibidos no sistema local. Quando uma nova unidade é conectada, ela cria uma lista com todos os arquivos e a armazena em forma criptografada.

As informações coletadas serão transmitidas ao atacante após o envio do comando apropriado.

Equipes de backdoor


A seguir estão os IDs e descrições dos comandos suportados. A visualização da função backdoor no intérprete é mostrada na Figura 6.

0 - Faça listas de discos exibidos, arquivos em uma pasta, compartilhamentos de rede
2 - Crie, mova, renomeie, execute ou exclua um arquivo, exclua um diretório usando o caminho especificado
4 - Abra o arquivo, defina o ponteiro para o início do arquivo
5 - Feche um arquivo aberto anteriormente
6 - Grave dados em um arquivo aberto anteriormente
7 - Alterar atributos do arquivo de hora / excluir arquivo
8 - Abra o arquivo, coloque o ponteiro no final do arquivo
10 - Alterar atributos do arquivo de hora / excluir arquivo
12 - Encontre arquivos pela máscara de arquivo especificada no diretório especificado
13 - Tire uma captura de tela
14 - Carregar ou modificar arquivos usando dados internos
15 - Grave som usando dispositivos de áudio conectados, faça uma lista de dispositivos disponíveis, envie gravação, mude a configuração
16 - Verifique se há arquivos abertos no módulo
17 - Atualize a lista de servidores C & C
19 - Criar, instalar, copiar, listar ou excluir chaves ou valores de registro especificados


Figura 6. A função backdoor no intérprete (original e após nossa análise, modificada usando a função Group Nodes no IDA Pro para facilitar a leitura)

Módulo RC2CL


O módulo RC2CL também é um backdoor com uma ampla gama de ferramentas de espionagem. É iniciado por um wrapper DLL ao mesmo tempo que o módulo RC2FM . Este é um módulo mais complexo, é mais provável que suas funções visem a coleta máxima de informações do que a alteração do sistema.

Curiosamente, o módulo RC2CL tem a opção de desativar a funcionalidade de backdoor e funcionar como proxy. Nesse caso, o malware desliga o firewall do Windows e cria um servidor que suporta a comunicação entre o cliente e o servidor C&C ou dois clientes.

Comunicação em rede


O malware se comunica com os servidores C&C através de um soquete TCP. As mensagens enviadas pelo cliente são mascaradas sob o protocolo HTTP, mas você deve prestar atenção ao método HTTP inválido "HIDE" no exemplo na Figura 7.

As solicitações contêm o identificador do software comprometido, o tipo de solicitação e as informações criptografadas que devem ser enviadas pelos atacantes, ou seja, o resultado da execução de comandos de backdoor ou uma solicitação de novas instruções.


Figura 7. Um exemplo de uma solicitação enviada ao servidor de comandos pelo módulo RC2CL

Funcionalidade


Dependendo do comando recebido, o backdoor pode executar várias operações no sistema infectado. Backdoors regulares executam manipulações com o sistema de arquivos e as chaves do registro, suportam a execução de arquivos e a ativação remota do shell. Esse spivar suporta todas essas equipes e ainda mais - 84 equipes permitem que os atacantes coletem informações abrangentes sobre a vítima.

Um programa malicioso verifica um computador infectado e transfere vários dados para os atacantes: informações do sistema (lista de processos ativos, serviços em execução, drivers carregados ou discos disponíveis), informações da rede (tabela de endereços IP, velocidade da conexão com a Internet).

O InvisiMole pode verificar as redes sem fio disponíveis em um sistema comprometido. O Spivar registra informações como endereços SSID e MAC dos pontos de acesso Wi-Fi detectados. Esses dados podem ser verificados em bancos de dados públicos, o que permite que os atacantes rastreiem a localização geográfica da vítima.

Outros comandos fornecem informações sobre os usuários da máquina comprometida, suas contas e sessões anteriores.

De particular interesse é o software instalado em uma máquina comprometida. Quais programas estão instalados no sistema? Quais deles iniciam automaticamente na inicialização do sistema ou no login do usuário? Quais programas um usuário específico usa? Se os invasores estiverem interessados ​​em algo, basta digitar um comando para obter os dados necessários.

O malware pode obter um comando para procurar documentos abertos recentemente e outros arquivos interessantes. Ele pode exibir diretórios e dispositivos externos específicos, relatar alterações e extrair arquivos selecionados pelos atacantes.

O malware pode ativar ou desativar o UAC (sistema de gerenciamento de contas) ou ignorá-lo e trabalhar com arquivos em diretórios protegidos sem direitos de administrador (mais no link ). Se o malware estiver em execução no processo explorer.exe , que obtém automaticamente direitos elevados, ele pode criar um objeto COM e usá-lo para excluir e mover arquivos em áreas que exigem direitos de administrador.

Além disso, o InvisiMole pode ligar remotamente a webcam e o microfone da vítima, espionar tirando fotos ou gravando som. Os invasores podem monitorar a atividade no dispositivo fazendo capturas de tela. O que é especialmente interessante, o InvisiMole permite tirar capturas de tela não apenas da tela inteira, mas também de todas as janelas abertas. Isso permite que os invasores coletem informações mesmo quando as janelas se fecham.

Um dos comandos backdoor permite substituir o conteúdo dos drivers pelos seguintes nomes:

blbdrive.sys
compbatt.sys
secdrv.sys


Não observamos o uso desse comando por atacantes, mas podemos assumir que ele é usado para fornecer persistência adicional em sistemas de 32 bits.

O backdoor é capaz de interferir no sistema (por exemplo, faça login como usuário, conclua o processo ou desligue o sistema), mas principalmente fornece operações passivas. O programa tenta ocultar sua atividade sempre que possível.

Assim, o spivar explora lugares interessantes no sistema, estuda documentos recentemente abertos ou altera alguns arquivos. Essas ações deixam rastros e podem suspeitar da vítima, pois após cada operação o tempo da última modificação do arquivo e / ou o acesso a ele muda. Para impedir a detecção, o malware recupera a data da alteração ou abertura anterior do arquivo para ocultar suas manipulações do usuário.

Outro exemplo de como os autores do spayvari tentam evitar a detecção está trabalhando com rastreamentos deixados no disco. Um programa malicioso coleta uma grande quantidade de dados confidenciais que são armazenados em arquivos por algum tempo e excluídos após um upload bem-sucedido nos servidores C&C. O problema é que um administrador de sistema experiente pode recuperar arquivos excluídos, o que ajudará a investigar o ataque depois que a vítima descobrir o comprometimento. Isso é possível porque algumas informações permanecem no disco mesmo após a exclusão do arquivo. Para evitar isso, o InvisiMole tem a opção de excluir com segurança todos os arquivos. Isso significa que primeiro os dados são substituídos por zero ou bytes aleatórios e somente depois disso o arquivo é excluído.

Memória incorporada


A configuração do backdoor e os dados coletados são armazenados em dois endereços - este é o diretório de trabalho e as chaves do registro. Uma parte significativa dos comandos do backdoor é projetada para manipular esses locais de armazenamento de dados e seu conteúdo.

A localização do diretório de trabalho é determinada usando comandos de um servidor remoto. O diretório é usado como armazenamento temporário de arquivos que contêm informações coletadas de um computador comprometido. Esses arquivos têm um método de nomeação comum, algoritmo de criptografia e estrutura. Eles são criptografados com uma versão simples da cifra XOR, usada nos componentes do malvari. O tipo de arquivo pode ser obtido a partir da sequência de controle de 4 bytes, localizada no início do arquivo.

Além de armazenar os dados coletados, o diretório é usado como diretório inicial para uma cópia do aplicativo WinRAR.exe legítimo. Malvar copia e usa para arquivar dados roubados.

O registro armazena dados de configuração, bem como uma lista de arquivos no diretório ativo. Os dados são compactados usando o procedimento Zlib implementado no arquivo binário malvari e criptografados usando a mesma cifra dos arquivos internos.



Equipes de backdoor


Mais de oitenta comandos de backdoor usam o diretório de trabalho e as chaves do registro para armazenar resultados intermediários e dados de configuração. O gráfico com a porta traseira no intérprete é mostrado na Figura 8.

Cerca de um terço de todos os comandos estão relacionados à leitura e atualização de dados de configuração armazenados no registro. Os IDs e descrições dos comandos restantes estão listados abaixo.

4 - Faça uma lista de informações do arquivo no diretório
6 - Baixar arquivo
20 - Listar processos ativos
22 - Finalize o processo por ID
24 - Executar arquivo
26 - Excluir arquivo
28 - Obter tabela de encaminhamento de IP
30 - Gravar dados em um arquivo
31 - Inação
38 - Faça uma lista de contas
40 - Faça uma lista de serviços no sistema
42 - Faça uma lista de drivers carregados
43 - Coletar informações básicas do sistema (nome do computador, versão do SO, status da memória, hora local, informações do disco, informações sobre proxies configurados, política atual de prevenção de execução de dados para o sistema e processos, etc.)
44 - Faça uma lista do software instalado
46 - Listar usuários locais e informações da sessão
48 - Faça uma lista dos aplicativos usados ​​pelos usuários
52 - Criar estrutura de diretórios
78 - Criar shell remoto
81 - Execute o comando através do shell remoto
91 - Ativar / desativar o controle de conta de usuário
93 - Sessão do usuário final / desligar / reiniciar o sistema
101 - Rastrear e registrar alterações em diretórios especificados
103 - Excluir diretório
109 - Ligar / desligar o monitor / ativar o modo de espera
120 - Tire uma captura de tela da tela / janelas ativas
126 - Tire uma captura de tela das janelas de exibição / ativas e atualize os dados de configuração
130 - Lista de informações de recursos em discos não alocados
132 - Renomeie / mova o arquivo, altere o tempo de criação / abertura / gravação do arquivo para o especificado
134 - Listar arquivos abertos recentemente
152 - Desconectar unidades removíveis (conectadas anteriormente)
155 - Criar / excluir chave do registro, definir / excluir valores da chave do registro ou listar valores / chaves / dados do registro
159, 161 - Desative o roteamento / firewall, crie um servidor proxy em uma porta específica
172 - Repita a caixa de diálogo pedindo para reiniciar o computador
175 - Ignorar controle de conta de usuário para manipulação de arquivo
177 - Crie e escreva um arquivo, defina dados no momento da criação / abertura / alteração
181 - Remova todos os pontos de restauração do sistema
183 - Redefinir o componente (legítimo) de um aplicativo WinRAR
185 - Adicionar arquivos ao arquivo protegido por senha (password = "12KsNh92Dwd")
187 - Descriptografar, descompactar e carregar a DLL, carregar arquivos exe dos recursos RC2CL, RC2FM
189 - Criar um ponto de restauração do sistema
191 - Extrair arquivo protegido por senha (12KsNh92Dwd)
193 - Alterar o arquivo criptografado
195 - Reiniciar após a conclusão do processo principal
197 - Envie 198 bytes de dados codificados em um padrão
199 - Renomear / mover arquivo
206 - Descriptografar, descompactar e baixar a DLL, carregar arquivos exe dos recursos RC2CL, RC2FM
211 - Faça o download das informações coletadas (capturas de tela, gravações de áudio etc.)
213 - Faça uma lista de janelas ativas
218 - API para gravação de áudio de dispositivos de entrada
220 - API para tirar fotos de uma webcam
224 - Faça uma lista dos arquivos executados em cada inicialização do sistema
226 - Faça uma lista de redes sem fio ativadas (endereço MAC, SSID, intervalo de sinalização)
228 - Redefinir pacote Zlib compactado


Figura 8. A função backdoor no intérprete (original e modificada usando a função Group Nodes no IDA Pro para facilitar a leitura)

Conclusão


O InvisiMole é um software spyware completo que oferece recursos abrangentes que podem competir com outras ferramentas conhecidas de espionagem cibernética.

Só se pode adivinhar por que os autores usam dois módulos com funções duplicadas.Pode-se supor que o módulo menor seja RC2FMusado no primeiro estágio do reconhecimento, e o maior RC2CLfuncione apenas em máquinas que interessam aos operadores. Mas não é assim - dois módulos são lançados simultaneamente. A segunda explicação possível: os módulos são montados por diferentes autores e depois combinados para fornecer aos operadores o máximo de ferramentas.

O InvisiMole usa apenas algumas técnicas para evitar a detecção e análise. No entanto, como o spyware foi usado em ataques a um pequeno número de alvos de alto escalão, ela conseguiu evitar a detecção por pelo menos cinco anos.

Indicadores de compromisso (IoCs)


Detecção ESET


Win32/InvisiMole.A trojan
Win32/InvisiMole.B trojan
Win32/InvisiMole.C trojan
Win32/InvisiMole.D trojan
Win64/InvisiMole.B trojan
Win64/InvisiMole.C trojan
Win64/InvisiMole.D trojan


Hashes SHA-1


5EE6E0410052029EAFA10D1669AE3AA04B508BF9
2FCC87AB226F4A1CC713B13A12421468C82CD586
B6BA65A48FFEB800C29822265190B8EAEA3935B1
C8C4B6BCB4B583BA69663EC3AED8E1E01F310F9F
A5A20BC333F22FD89C34A532680173CBCD287FF8


Nomes de domínio do servidor C & C


activationstate.sytes[.]net
advstatecheck.sytes[.]net
akamai.sytes[.]net
statbfnl.sytes[.]net
updchecking.sytes[.]net


Endereços IP de servidores C e C e período de atividade


2013-2014 - 46.165.231.85
2013-2014 - 213.239.220.41
2014-2017 - 46.165.241.129
2014-2016 - 46.165.241.153
2014-2018 - 78.46.35.74
2016-2016 - 95.215.111.109
2016-2018 - 185.118.66.163
2017-2017 - 185.118.67.233
2017-2018 - 185.156.173.92
2018-2018 - 46.165.230.241
2018-2018 - 194.187.249.157


Chaves e valores do registro


RC2FM


[HKEY_CURRENT_USER\Software\Microsoft\IE\Cache]
"Index"


RC2CL


[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Console]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Settings"
"Type"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLE]
or [HKEY_CURRENT_USER\Software\Microsoft\Direct3D]
"Common"
"Current"
"ENC"
"FFLT"
"Flag1"
"FlagLF"
"FlagLF2"
"IfData"
"INFO"
"InstallA"
"InstallB"
"LegacyImpersonationNumber"
"LM"
"MachineAccessStateData"
"MachineState 0"
"RPT"
"SP2"
"SP3"
"SettingsMC"
"SettingsSR1"
"SettingsSR2"


Arquivos e pastas


RC2FM


%APPDATA%\Microsoft\Internet Explorer\Cache\AMB6HER8\
%volumeSerialNumber%.dat
content.dat
cache.dat
index.dat
%APPDATA%\Microsoft\Internet Explorer\Cache\MX0ROSB1\
content.dat
index.dat
%random%.%ext%
%APPDATA%\Microsoft\Internet Explorer\Cache\index0.dat


RC2CL


Winrar\
comment.txt
descript.ion
Default.SFX
WinRAR.exe
main.ico
fl_%timestamp%\strcn%num%\
fdata.dat
index.dat
~mrc_%random%.tmp
~src_%random%.tmp
~wbc_%random%.tmp
sc\~sc%random%.tmp
~zlp\zdf_%random%.data
~lcf\tfl_%random%

Source: https://habr.com/ru/post/pt414419/


All Articles