Em nosso rastreamento do grupo InvisiMole, que relatamos pela primeira vez em 2018, encontramos uma nova campanha voltada para organizações de alto nível na Europa Oriental. Investigando os ataques, em estreita cooperação com as organizações afetadas, descobrimos a atualização de seu conjunto de ferramentas e detalhes anteriormente desconhecidos sobre as táticas, técnicas e procedimentos (TTPs) do InvisiMole.
Neste post, resumimos as descobertas publicadas na íntegra em nosso white paper, InvisiMole: The hidden part of the story.
O grupo InvisiMole é um agente de ameaças que opera pelo menos desde 2013. Anteriormente, documentamos seus dois backdoors, RC2CL e RC2FM, notáveis por suas extensas capacidades de espionagem, mas não sabíamos como esses backdoors eram entregues, distribuídos ou instalados no sistema.
Nesta campanha recente, o grupo InvisiMole ressurgiu com um conjunto de ferramentas atualizado, tendo como alvo um pequeno número de organizações de alto nível no setor militar e missões diplomáticas, ambas na Europa Oriental. De acordo com nossa telemetria, as tentativas de ataque estavam em andamento desde o final de 2019 até o momento de produção deste relatório.
Graças à investigação dos ataques em cooperação com as organizações afetadas, pudemos expor o funcionamento interno do conjunto de ferramentas atualizado do InvisiMole.
Descobrimos que o arsenal do InvisiMole apenas é liberado depois que outro grupo de ameaças, mais especificamente o Gamaredon, consegue se infiltrar na rede de interesse e possivelmente ganhar privilégios de administrador. Isso permite que o grupo InvisiMole crie maneiras criativas de operar sem ser detectado.
Por exemplo, os atacantes usam longas cadeias de execução, criadas combinando códigos maliciosos com ferramentas legítimas e executáveis vulneráveis. Eles usam o tunneling de DNS para comunicações C&C mais sigilosas e colocam “guardrails” de execução nos componentes maliciosos para ocultar o malware dos pesquisadores de segurança.
Mecanismo de entrega
Durante nossa investigação, descobrimos que o InvisiMole é entregue aos sistemas comprometidos por um downloader .NET detectado pelos produtos da ESET como MSIL/Pterodo, trabalho do grupo Gamaredon. Gamaredon é um agente de ameaças, operando pelo menos desde 2013, caracterizado pelo rápido desenvolvimento e fazendo pouco esforço para permanecer fora do radar de detecção. Recentemente, documentamos os componentes mais recentes do Gamaredon, distribuídos por e-mails de spearphishing e se movendo lateralmente o mais longe possível dentro da rede do alvo, enquanto captura impressões digitais das máquinas.
Nossa pesquisa agora mostra que o Gamaredon é usado para pavimentar o caminho para a chegada de um payload muito mais sigiloso: de acordo com nossa telemetria, um pequeno número de alvos do Gamaredon é "atualizado" com o malware avançado do grupo InvisiMole - provavelmente aqueles considerados particularmente significativos pelos atacantes.
Conforme detalhamos no white paper, apesar das evidências de colaboração, consideramos que Gamaredon e InvisiMole são dois grupos distintos que usam TTPs diferentes.
Mecanismos de distribuição e atualização
Documentamos três formas pelas quais o InvisiMole se propaga dentro das redes comprometidas:
- Usando a vulnerabilidade BlueKeep no protocolo RDP (CVE-2019-0708);
- Usando a vulnerabilidade EternalBlue no protocolo SMB (CVE-2017-0144);
Usando documentos trojanizados e instaladores de software, criados usando arquivos benignos roubados da organização comprometida.
Para criar os arquivos trojanizados, o InvisiMole primeiro rouba documentos ou instaladores de software da organização comprometida e depois cria um arquivo SFX agrupando o arquivo com o instalador do InvisiMole. O arquivo original é substituído pela versão armada, enquanto o nome, o ícone e os metadados são preservados. Os atacantes confiam nos usuários para compartilhar e executar esses arquivos.
Essa técnica de movimento lateral é especialmente poderosa se o arquivo trojanizado for um instalador de software colocado em um servidor central – um método comum de implantar software em organizações maiores. Dessa forma, o InvisiMole é distribuído organicamente para muitos computadores que usam esse servidor.
Independentemente do método de distribuição, o primeiro componente do InvisiMole implantado nas máquinas recém-comprometidas é sempre o downloader TCP do InvisiMole - uma simples adição ao conjunto de ferramentas que baixa o próximo estágio da infiltração.
A segunda adição ao conjunto de ferramentas atualizado do InvisiMole, o Downloader de DNS, tem a mesma funcionalidade, mas foi projetado permanecer de forma secreta e durante um longo período na máquina da vítima. Ele usa um método mais sigiloso de comunicação com o C&C: uma técnica chamada tunneling de DNS (veja a Figura 2).
Com o tunneling de DNS, o cliente comprometido não entra em contato diretamente com o servidor C&C; ele se comunica apenas com os servidores DNS benignos com os quais a máquina vítima normalmente se comunicaria, onde envia solicitações para resolver um domínio em seu endereço IP. O servidor DNS entra em contato com o servidor de nomes responsável pelo domínio na solicitação, que é um servidor de nomes controlado pelo atacante, e transmite sua resposta ao cliente.
A verdadeira comunicação com o C&C é incorporada nas solicitações e respostas DNS, sem o conhecimento do servidor DNS benigno que opera como intermediário na comunicação.
Cadeias de execução
O recurso mais notável do mais novo conjunto de ferramentas do InvisiMole são suas longas cadeias de execução, usadas para implantar os payloads finais - os backdoors RC2CM e RC2CL atualizados e os novos downloaders de TCP e DNS.
Reconstruímos quatro cadeias de execução, usadas pelos atacantes em várias situações - com base na versão do sistema operacional do computador da vítima e se eles foram capazes de obter privilégios de administrador no sistema:
A cadeia de uso indevido do Painel de Controle usa uma técnica rara conhecida pelas filtrações do Vault 7, usada para obter uma execução secreta no contexto do Painel de Controle.
A cadeia de exploração SMInit explora uma vulnerabilidade no software legítimo Total Video Player. Ela é usada nos casos em que os atacantes não conseguem obter privilégios de administrador no sistema.
A cadeia de exploração Speedfan explora uma vulnerabilidade de escalação de privilégios local no driver speedfan.sys para injetar seu código em um processo confiável no modo kernel.
A cadeia de exploração Wdigest é a cadeia principal do InvisiMole, a mais elaborada, usada nas versões mais recentes do Windows, nas quais os atacantes têm privilégios de administrador. Ela explora uma vulnerabilidade na biblioteca do Windows wdigest.dll e, em seguida, usa uma técnica aprimorada de ListPlanting para injetar seu código em um processo confiável.
Os executáveis vulneráveis usados nessas cadeias são introduzidos no sistema pelo InvisiMole: a variação dessa técnica com um driver vulnerável foi anteriormente referida por outros pesquisadores como Bring Your Own Vulnerable Driver. Nos outros casos, denominamos essa técnica como Bring Your Own Vulnerable Software.
Documentamos essas táticas em detalhes na seção Execution Chains do nosso white paper.
Observe o uso pesado de ferramentas legítimas e a criptografia por vítima, mostrada na visão geral dessas quatro cadeias na Figura 3. É tática dos operadores do InvisiMole instalar exclusivamente ferramentas legítimas e reservar os payloads malicioso para estágios posteriores.
Para colocar “guardrails” de execução e criptografar os payloads individualmente por vítima, o InvisiMole usa um recurso do Windows chamado Data Protection API (DPAPI), especificamente:
- a API CryptProtectData para criptografia de dados
- a API CryptUnprotectData para descriptografia de dados
Esse esquema de criptografia simétrica usa uma chave derivada dos segredos de login do usuário, portanto, a descriptografia deve ser realizada no mesmo computador em que os dados foram criptografados.
A Figura 4 mostra um fragmento de um típico loader do InvisiMol que usa CryptUnprotectData para descriptografia e, em seguida, verifica se o blob descriptografado começa com um valor mágico de quatro bytes característico do InvisiMole:
- 64 DA 11 CE para payloads de 64 bits
- 86 DA 11 CE para payloads de 32 bits
O recurso DPAPI, destinado ao armazenamento local de credenciais, como senhas de Wi-Fi ou senhas de login em navegadores da Web, é abusado pelo InvisiMole para proteger seu payload de pesquisadores de segurança. Mesmo que encontrem os componentes do InvisiMole em telemetria ou em plataformas de compartilhamento de malware, não poderão descriptografá-los fora do computador da vítima.
No entanto, graças à cooperação direta com as organizações afetadas, conseguimos recuperar os payloads e reconstruir quatro das cadeias de execução do InvisiMole, descritas de forma detalhada no white paper.
Conclusão
Quando relatamos o InvisiMole pela primeira vez em 2018, destacamos seu funcionamento secreto e sua complexa gama de recursos. No entanto, estava faltando uma grande parte da história.
Depois de descobrir novas atividades no final de 2019, tivemos a oportunidade de dar uma boa olhada por trás das operações do InvisiMole e juntar as partes ocultas da história. Analisando o conjunto de ferramentas atualizado do grupo, observamos o desenvolvimento contínuo e melhorias substanciais, com foco especial em permanecer fora do radar de detecção.
Nossa investigação também revelou uma cooperação anteriormente desconhecida entre o InvisiMole e o grupo Gamaredon, com o malware do Gamaredon usado para se infiltrar na rede de destino e entregar o sofisticado malware do InvisiMole a alvos de interesse especial.
Produzimos um relatório detalhado sobre os TTPs do InvisiMole, mas continuaremos acompanhando as atividades maliciosas do grupo.
Os nomes de detecção da ESET e outros indicadores de comprometimento para essas campanhas podem ser encontrados no white paper, InvisiMole: The hidden part of the story.
Agradecimentos aos colegas pesquisadores de malware da ESET, Matthieu Faou, Ladislav Janko e Michal Poslušný, pelo trabalho realizado nesta investigação.
Técnicas de MITRE ATT&CK
Nota: Para melhor legibilidade, separamos as backdoors RC2FM e RC2CL em suas respectivas tabelas de mapeamento ATT & CK, devido a seus recursos avançados. O primeiro mapeamento refere-se aos componentes de suporte do InvisiMole usados para entrega, movimento lateral, cadeias de execução e download de payloads adicionais.
InvisiMole
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1196 | Control Panel Items | InvisiMole’s loader is masked as a CPL file, misusing control panel items for execution. |
T1106 | Execution through API | InvisiMole has used ShellExecuteW and CreateProcessW APIs to execute files. | |
T1129 | Execution through Module Load | InvisiMole implements a custom loader for its components (InvisiMole blobs). | |
T1203 | Exploitation for Client Execution | InvisiMole has delivered vulnerable Total Video Player software and wdigest.dll library and exploited their stack overflow and input validation vulnerabilities, respectively, to gain covert code execution. | |
T1085 | Rundll32 | InvisiMole has used rundll32.exe as part of its execution chain. | |
T1053 | Scheduled Task | InvisiMole has used Windows task scheduler as part of its execution chains. | |
T1064 | Scripting | InvisiMole has used a JavaScript file named Control.js as part of its execution chain. | |
T1035 | Service Execution | InvisiMole has registered a Windows service as one of the ways to execute its malicious payload. | |
T1204 | User Execution | InvisiMole has been delivered as trojanized versions of software and documents, using deceiving names and icons and relying on user execution. | |
Persistence | T1050 | New Service | InvisiMole has registered a Windows service named clr_optimization_v2.0.51527_X86 to achieve persistence. |
T1060 | Registry Run Keys / Startup Folder | InvisiMole has placed a LNK file in Startup Folder to achieve persistence. | |
T1053 | Scheduled Task | InvisiMole has scheduled tasks under names MSST and \Microsoft\Windows\Autochk\Scheduled to achieve persistence. | |
T1023 | Shortcut Modification | InvisiMole has placed a LNK file in Startup Folder to achieve persistence. | |
Privilege Escalation | T1088 | Bypass User Account Control | InvisiMole can bypass UAC to obtain elevated privileges. |
T1068 | Exploitation for Privilege Escalation | InvisiMole has exploited CVE-2007-5633 vulnerability in speedfan.sys driver to obtain kernel mode privileges. | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | InvisiMole decrypts strings using variations of XOR cipher. InvisiMole decrypts its components using the CryptUnprotectData API and two-key triple DES. |
T1480 | Execution Guardrails | InvisiMole has used Data Protection API to encrypt its components on the victim’s computer, to evade detection and make sure the payload can only be decrypted (and then loaded) on one specific compromised computer. | |
T1143 | Hidden Window | InvisiMole has executed legitimate tools in hidden windows and used them to execute malicious InvisiMole components. | |
T1066 | Indicator Removal from Tools | InvisiMole has undergone technical improvements in attempt to evade detection. | |
T1202 | Indirect Command Execution | InvisiMole has used winapiexec tool for indirect execution of Windows API functions. | |
T1027 | Obfuscated Files or Information | InvisiMole has obfuscated strings and code to make analysis more difficult, and encrypted its components to thwart detection. | |
T1055 | Process Injection | InvisiMole has injected its code into trusted processes using an improved ListPlanting technique and via APC queue. | |
T1108 | Redundant Access | InvisiMole has deployed multiple backdoors on a single compromised computer. | |
T1085 | Rundll32 | InvisiMole has used rundll32.exe as part of its execution chain. | |
T1064 | Scripting | InvisiMole’s loader uses a JavaScript script as a part of setting up persistence. | |
T1063 | Security Software Discovery | InvisiMole’s DNS plugin avoids connecting to the C&C server if selected network sniffers are detected running. | |
T1099 | Timestomp | InvisiMole has modified timestamps of files that it creates or modifies. | |
T1036 | Masquerading | InvisiMole has attempted to disguise its droppers as legitimate software or documents, and to conceal itself by registering under a seemingly legitimate service name. | |
Discovery | T1046 | Network Service Scanning | InvisiMole has performed network scanning within the compromised network using its Portscan and BlueKeep components, in order to search for open ports and for hosts vulnerable to the BlueKeep vulnerability. |
T1518 | Software Discovery | InvisiMole’s DNS downloader attempts to detect selected network sniffer tools, and pauses its network traffic if any are detected running. | |
T1082 | System Information Discovery | InvisiMole’s DNS downloader collects computer name and system volume serial number. | |
T1124 | System Time Discovery | InvisiMole can collect the timestamp from the victim’s machine. | |
Lateral Movement | T1210 | Exploitation of Remote Services | InvisiMole has exploited EternalBlue and BlueKeep vulnerabilities for lateral movement. |
T1080 | Taint Shared Content | InvisiMole has replaced legitimate software or documents in the compromised network with their trojanized versions, in an attempt to propagate itself within the network. | |
Command and Control | T1043 | Commonly Used Port | InvisiMole’s downloader uses port 443 for C&C communication. InvisiMole’s DNS plugin uses port 53 for C&C communication. |
T1090 | Connection Proxy | InvisiMole’s TCP downloader is able to utilize user-configured proxy servers for C&C communication. | |
T1024 | Custom Cryptographic Protocol | InvisiMole’s TCP and DNS downloaders use a custom cryptographic protocol for encrypting network communication. | |
T1132 | Data Encoding | InvisiMole’s DNS downloader uses a variation of base32 encoding to encode data into the subdomain in its requests. | |
T1008 | Fallback Channels | InvisiMole’s TCP and DNS downloaders are configured with several C&C servers. | |
T1105 | Remote File Copy | InvisiMole’s TCP and DNS downloaders can download additional files to be executed on the compromised system. | |
T1071 | Standard Application Layer Protocol | InvisiMole’s DNS downloader uses DNS protocol for C&C communication. | |
T1095 | Standard Non-Application Layer Protocol | InvisiMole’s TCP downloader uses TCP protocol for C&C communication. | |
T1065 | Uncommonly Used Port | InvisiMole’s TCP downloader uses port 1922 for C&C communication. |
Backdoor RC2CL
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1059 | Command-Line Interface | RC2CL backdoor can create a remote shell to execute commands. |
T1106 | Execution through API | RC2CL backdoor uses CreateProcess and CreateProcessAsUser APIs to execute files. | |
Privilege Escalation | T1134 | Access Token Manipulation | RC2CL backdoor can use CreateProcessAsUser API to start a new process under the context of another user or process. |
T1088 | Bypass User Account Control | RC2CL backdoor can disable and bypass UAC to obtain elevated privileges. | |
Defense Evasion | T1090 | Connection Proxy | RC2CL backdoor can be configured as a proxy relaying communication between other compromised computers and C&C server. |
T1140 | Deobfuscate/Decode Files or Information | RC2CL backdoor decrypts strings using variations of XOR cipher. | |
T1089 | Disabling Security Tools | RC2CL backdoor is able to disable Windows firewall. | |
T1107 | File Deletion | RC2CL backdoor can delete dropped artifacts, and various files on-demand following a delete command. RC2CL backdoor can safely delete files to thwart forensic analysis. |
|
T1112 | Modify Registry | RC2CL backdoor hides its configuration within registry keys. | |
T1027 | Obfuscated Files or Information | RC2CL backdoor obfuscates/encrypts strings and code to make analysis more difficult. | |
T1099 | Timestomp | RC2CL backdoor modifies timestamps of files that it creates/modifies. | |
T1497 | Virtualization/Sandbox Evasion | RC2CL backdoor is able to detect virtualized environments. | |
Discovery | T1087 | Account Discovery | RC2CL backdoor can list account information and session information. |
T1010 | Application Window Discovery | RC2CL backdoor can list information about active windows. | |
T1083 | File and Directory Discovery | RC2CL backdoor can list files, and specifically recently opened files, and list information about mapped/unmapped drives. | |
T1046 | Network Service Scanning | RC2CL backdoor is able to scan the compromised network for hosts vulnerable to EternalBlue vulnerability. | |
T1057 | Process Discovery | RC2CL backdoor can list running processes. | |
T1012 | Query Registry | RC2CL backdoor can query registry to obtain information about installed software, applications accessed by users, applications executed on user login/system start, recently opened files, | |
T1063 | Security Software Discovery | RC2CL backdoor modifies its behavior if Bitdefender firewall is enabled, or if selected AV processes are detected running. | |
T1518 | Software Discovery | RC2CL backdoor can list installed software, recently accessed software by users, software executed on each user login and/or each system start. | |
T1082 | System Information Discovery | RC2CL backdoor can list information about loaded drivers, computer name, OS version, memory status, local time, system and process DEP policy. | |
T1016 | System Network Configuration Discovery | RC2CL backdoor can list IP table; configured proxy information; information about enabled wireless networks for geolocation of the victims. | |
T1007 | System Service Discovery | RC2CL backdoor can list system service information. | |
Collection | T1123 | Audio Capture | RC2CL backdoor can record the sounds from microphones on a computer. RC2FM misuses a legitimate lame.dll for MP3 encoding of the recordings. |
T1005 | Data from Local System | RC2CL backdoor can collect data from the system, and can monitor changes in specified directories. | |
T1074 | Data Staged | RC2CL backdoor can store collected data in a central location for a later exfiltration. | |
T1113 | Screen Capture | RC2CL backdoor can capture screenshots of the victim’s screen. RC2CL backdoor can also capture screenshots of separate windows. | |
T1125 | Video Capture | RC2CL backdoor can access victim’s webcam and capture photos/record videos. | |
Command and Control | T1008 | Fallback Channels | RC2CL backdoor is configured with several C&C servers. Via a backdoor command, it is possible to extend the list and change which C&C server is used. |
T1105 | Remote File Copy | InvisiMole can download additional files to be executed on the compromised system. | |
T1065 | Uncommonly Used Port | RC2CL backdoor uses port 1922 for C&C communication. | |
Exfiltration | T1002 | Data Compressed | RC2CL backdoor can create zlib and SFX archives. It misuses a copy of the legitimate WinRAR tool for compression and decompression. |
T1022 | Data Encrypted | RC2CL backdoor uses variations of XOR cipher to encrypt data. | |
T1041 | Exfiltration Over Command and Control Channel | RC2CL backdoor exfiltrates collected information over its C&C channel. |
Backdoor RC2FM
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1059 | Command-Line Interface | RC2FM backdoor can create a remote shell to execute commands. |
T1106 | Execution through API | RC2FM backdoor supports a command that uses ShellExecute and CreateProcess APIs to execute files. | |
Privilege Escalation | T1088 | Bypass User Account Control | RC2FM backdoor can bypass UAC to obtain elevated privileges. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | RC2FM backdoor decrypts strings using variations of XOR cipher. |
T1107 | File Deletion | RC2FM backdoor can delete dropped artifacts, and various files on-demand following a delete command. | |
T1143 | Hidden Window | RC2FM backdoor uses CREATE_NO_WINDOW creation flag to execute malware in a hidden window. | |
T1112 | Modify Registry | RC2FM backdoor hides its configuration within registry keys. | |
T1027 | Obfuscated Files or Information | RC2FM backdoor obfuscates/encrypts strings and code to make analysis more difficult. | |
T1055 | Process Injection | RC2FM backdoor can inject itself into ctfmon.exe , dwm.exe , sihost.exe and taskhost.exe processes. | |
T1085 | Rundll32 | RC2FM backdoor uses rundll32.exe to load a stub DLL into which it then injects itself. | |
T1099 | Timestamp | RC2FM backdoor modifies timestamps of files that it creates/modifies. | |
T1497 | Virtualization/Sandbox Evasion | RC2FM backdoor is able to detect virtualized environments. | |
Discovery | T1083 | File and Directory Discovery | RC2FM backdoor collects information about mapped drives. It can list files in a specific folder. |
T1135 | Network Share Discovery | RC2FM backdoor can list connected network shares. | |
T1057 | Process Discovery | RC2FM backdoor can list running processes. | |
T1082 | System Information Discovery | RC2FM backdoor collects computer name and system volume serial number. | |
T1016 | System Network Configuration Discovery | RC2FM backdoor lists information about configured proxy servers. | |
Collection | T1123 | Audio Capture | RC2FM backdoor can record the sounds from microphones on a computer. It misuses a legitimate lame.dll for MP3 encoding of the recordings. |
T1025 | Data from Removable Media | RC2FM backdoor can collect jpeg files from connected MTP devices. | |
T1056 | Input Capture | RC2FM backdoor can collect keystrokes. | |
T1113 | Screen Capture | RC2FM backdoor can capture screenshots of the victim’s screen. | |
Command and Control | T1043 | Commonly Used Port | RC2FM backdoor uses port 80 for C&C communication. |
T1090 | Connection Proxy | RC2FM backdoor can use proxies configured on the local system, for various installed and portable browsers, if direct connection to the C&C server fails. | |
T1008 | Fallback Channels | RC2FM backdoor is configured with several C&C servers. It is possible to update the C&C server by a backdoor command. | |
T1105 | Remote File Copy | InvisiMole can download additional files to be executed on the compromised system. | |
T1071 | Standard Application Layer Protocol | RC2FM backdoor uses HTTP for C&C communication. | |
Exfiltration | T1022 | Data Encrypted | RC2FM backdoor uses variations of XOR cipher to encrypt data. |
T1041 | Exfiltration Over Command and Control Channel | RC2FM backdoor exfiltrates collected information over its C&C channel. |