Malware chinês PlugX oculto em seus dispositivos USB?
Recentemente, nossa equipe de resposta a incidentes da Unidade 42 se envolveu em uma resposta de violação do Black Basta que descobriu várias ferramentas e amostras de malware nas máquinas da vítima, incluindo malware GootLoader , ferramenta de red-teaming Brute Ratel C4 e uma amostra de malware PlugX mais antiga.
Sumário executivo
O malware PlugX se destacou para nós, pois essa variante infecta qualquer dispositivo de mídia USB removível anexado, como disquetes, pen drives ou pen drives e quaisquer sistemas adicionais aos quais o USB seja conectado posteriormente.
Esse malware PlugX também oculta arquivos de atores em um dispositivo USB usando uma nova técnica que funciona até mesmo nos sistemas operacionais (SO) Windows mais recentes no momento da redação deste post. Isso significa que os arquivos maliciosos só podem ser visualizados em um sistema operacional semelhante ao Unix (* nix) ou montando o dispositivo USB em uma ferramenta forense.
Também descobrimos uma variante semelhante do PlugX no VirusTotal que infecta dispositivos USB e copia todos os arquivos Adobe PDF e Microsoft Word do host. Ele coloca essas cópias em uma pasta oculta no dispositivo USB criado pelo malware.
O PlugX é um implante de segundo estágio usado não apenas por vários grupos com um nexo chinês, mas também por vários grupos de crimes cibernéticos. Ele existe há mais de uma década e foi observado em alguns ataques cibernéticos de alto perfil, incluindo a violação do US Government Office of Personnel Management (OPM) em 2015. É uma estrutura de malware modular, suportando um conjunto de recursos em evolução ao longo dos anos .
Os clientes da Palo Alto Networks recebem proteção contra os tipos de ameaças discutidos neste blog por meio de produtos como Cortex XDR e WildFire .
Tópicos Relacionados da Unidade 42 | PlugX , Brute Ratel C4 |
Índice
Introdução
PlugX Malware Infection
PlugX Malware USB Overview
PlugX Malware USB Infection
PlugX Malware Post USB Infection
PlugX Malware USB Variant Two
Association With PlugX Malware
Conclusão
Unit 42 Managed Threat Hunting Queries
Indicators of Compromise
Técnicas MITRE ATT&CK
Recursos Adicionais
Introdução
Não é incomum que várias amostras de malware sejam descobertas durante uma investigação, como ocorreu nessa situação com GootLoader, Brute Ratel C4 e PlugX. Vários agentes de ameaças comprometem os alvos e podem coexistir simultaneamente na máquina afetada.
Como não podemos dizer de forma conclusiva se essas amostras de malware foram deixadas por um grupo ou por vários, não podemos atribuir essas ferramentas ao grupo de ransomware Black Basta. No entanto, a versão do Brute Ratel C4 usada neste caso é a mesma relatada pela Trend Micro , que também envolveu o grupo de ransomware Black Basta.
Infecção por Malware PlugX
Historicamente, uma infecção PlugX começa sequestrando um aplicativo de software assinado digitalmente conhecido e confiável para carregar uma carga útil criptografada criada por um agente. Essa técnica tem sido usada desde 2010 e está listada nas técnicas MITRE ATT&CK como fluxo de execução de hijack ID de carregamento do lado da DLL : T1574.002 Sub-técnica T1574.
Nesse caso, os invasores decidiram sequestrar uma ferramenta de depuração de código aberto popular e gratuita para Windows chamada x64dbg , que é usada pela comunidade de análise de malware/engenharia reversa. Os aplicativos X64dbg são assinados digitalmente pelo “Desenvolvedor de Código Aberto Duncan Ogilvie”.
Os desenvolvedores desta ferramenta oferecem dois tipos de aplicativos depuradores: x64 para aplicativos de 64 bits e x32 para aplicativos de 32 bits. Nesse caso, os atores usaram x32dbg.exe , que é o depurador de 32 bits de x64dbg .
Após a execução de x32dbg.exe , o Microsoft Windows tentará resolver todos os arquivos de dependência necessários para executar o aplicativo. Essa pesquisa começa localmente (ou seja, no diretório de trabalho atual). Se encontrado, os arquivos necessários são carregados e executados.
X32bridge.dll é um arquivo de dependência do Windows Dynamic Link Library (DLL) de x32dbg.exe . Um x32bridge.dll legítimo também carrega a mesma assinatura digital. Nesse caso, o arquivo não é assinado.
Depois de carregado, o malware procura localmente por um arquivo de carga útil criptografado criado pelo agente: x32bridge.dat (SHA256: e72e49dc1d95efabc2c12c46df373173f2e20dab715caf58b1be9ca41ec0e172 ).
O X32bridge.dat foi enviado pela primeira vez ao VirusTotal em 22 de janeiro de 2021. Em 15 de dezembro de 2022, ele tinha uma pontuação de detecção de oito dos 61 mecanismos. Nenhum dos mecanismos identifica o arquivo como malware PlugX.
Uma vez carregado e descriptografado na memória, o malware infecta o host e quaisquer dispositivos USB removíveis conectados com o malware PlugX. A Figura 1 abaixo ilustra o carregamento lateral da DLL PlugX usando o seqüestro de DLL x64dbg.
Tanto o sequestro de x64dbg quanto a associação desse comportamento com o malware PlugX foram relatados pela Sophos em novembro de 2020 . O blog deles se refere a esse malware como KilllSomeOne , com base em uma sequência de banco de dados de programas (PDB) encontrada em um dos binários.
A Sophos realizou uma excelente análise das amostras e tocou na infecção do USB. Confirmamos que nossa amostra correspondia aos comportamentos descritos em seu relatório. A partir daí, queríamos expandir nossa pesquisa focando na infecção de USB, outras variantes de USB em estado selvagem e links para o malware PlugX.
Visão geral do plugX Malware USB
A técnica usada pelo malware PlugX para ocultar arquivos em um dispositivo USB envolve o uso de um determinado caractere Unicode. Isso impede que o Windows Explorer e o shell de comando ( cmd.exe ) exibam a estrutura do diretório USB e quaisquer arquivos, ocultando-os da vítima.
O caractere Unicode usado por este malware PlugX para os diretórios é 00A0 (um caractere de espaço em branco chamado de espaço sem interrupção). O caractere de espaço em branco impede que o sistema operacional Windows renderize o nome do diretório, ocultando-o em vez de deixar uma pasta sem nome no Explorer.
Para obter a execução do código do malware a partir do diretório oculto, um arquivo de atalho do Windows ( .lnk ) é criado na pasta raiz do dispositivo USB. O caminho de atalho para o malware contém o caractere de espaço em branco Unicode, que é um espaço que não causa quebra de linha, mas isso não é visível quando visualizado no Windows Explorer, conforme mostrado abaixo na Figura 2.
Quando o arquivo de atalho é visualizado em um editor hexadecimal, a representação hexadecimal desses caracteres é mostrada conforme destacado abaixo na Figura 3.
O malware PlugX usa a interface COM (Component Object Model) para criar os arquivos .lnk e inclui o caractere Unicode 00A0 . Ele faz isso criando uma instância de uma área de trabalho de shell para criar os arquivos de atalho do Windows associados. O método ShellLink SetArguments é usado para definir os argumentos da linha de comando, que incluem o caractere Unicode de espaço em branco sem quebra, conforme mostrado na Figura 4 abaixo.
Por fim, o método ShellLink::Save salva o arquivo de atalho com todas as alterações.
PlugX Malware USB Infecção
O malware PlugX x32bridge.dll carrega x32bridge.dat , que é responsável por implantar o host com malware e infectar qualquer dispositivo USB de mídia removível anexado, como disquetes, pendrives ou unidades flash. Se um dispositivo de mídia removível for encontrado, as seguintes etapas serão executadas:
- Ele cria a seguinte estrutura de diretório:
<volume usb> :\u00A0\u00A0\RECYCLER.BIN\files . Exemplo: F:\ \ \RECYCLER.BIN\arquivos . - Ele cria um arquivo oculto chamado desktop.ini em cada pasta, que especifica o ícone da pasta. Este arquivo contém os seguintes dados:
[.ShellClassInfo]
IconResource=%systemroot%\system32\SHELL32.dll,7
O sistema operacional Windows usa um único arquivo para recuperar imagens de ícones que são exibidas na área de trabalho como atalhos ou de arquivos e pastas do Windows Explorer. O arquivo Shell32.dll contém uma lista de ícones e um número exclusivo. Nesse caso, são utilizados o ícone do drive e o número 7, conforme a Figura 5 abaixo.
O uso desse ícone de unidade faz com que os diretórios apareçam como unidades no Windows Explorer quando visualizados com arquivos ocultos ativados. Se excluídos, os diretórios aparecem como pastas.
- No segundo diretório, ele cria uma subpasta chamada RECYLER.BIN . Este diretório funciona como uma lixeira. Nesse diretório há um subdiretório chamado arquivos e um arquivo desktop.ini oculto . Este arquivo desktop.ini contém os seguintes dados:
[.ShellClassInfo]
CLSID = {645FF040-5081-101B-9F08-00AA002F954E}
Este CLSID instrui o Windows Explorer a exibir a pasta RECYCLER.BIN criada como um diretório da lixeira, fornecendo a ela o ícone da lixeira. Isso é mostrado na Figura 11 como um exemplo.
- A subpasta de arquivos contém cópias do malware PlugX x32dbg.exe , quaisquer arquivos .dat criptografados do agente e a DLL maliciosa do agente. Um exemplo disso é mostrado na Figura 6 abaixo.
Deve-se observar que na pré-infecção do dispositivo USB, os arquivos ou diretórios existentes na raiz do dispositivo removível são movidos para a segunda pasta oculta no dispositivo USB, conforme mostrado abaixo na Figura 7.
- Sempre que o arquivo de atalho do dispositivo USB infectado é clicado, o malware PlugX inicia o Windows Explorer e passa o caminho do diretório como um parâmetro. Isso exibe os arquivos no dispositivo USB de dentro dos diretórios ocultos e também infecta o host com o malware PlugX. A vítima vê seus arquivos e assume que tudo está funcionando conforme o esperado.
A Figura 8 abaixo ilustra como um pen drive USB infectado apareceria para uma vítima no Windows Explorer usando as configurações padrão (ou seja, sem exibir arquivos ocultos).
Um dispositivo USB PlugX infectado não possui arquivos ou diretórios na pasta raiz e contém apenas um arquivo .lnk .
A Figura 9 mostra que o arquivo de atalho é TESTDRIVE , que corresponde ao nome do dispositivo USB. O arquivo de atalho é responsável por infectar o host e navegar para o diretório oculto no dispositivo USB cada vez que é clicado. Por exemplo, o arquivo de atalho referenciado na Figura 9 contém os seguintes dados:
%comspec% /q /c ” \\RECYCLER.BIN\arquivos\x32dbg.exe”
Depois que o alvo clica no atalho, o x32dbg.exe é iniciado via cmd.exe a partir do diretório de arquivos ocultos no dispositivo USB. O host ao qual o USB está conectado agora está infectado com o malware PlugX.
Ao visualizar o conteúdo do dispositivo USB infectado com o Windows Explorer e os itens ocultos ativados, a vítima veria as seguintes imagens:
Eles veriam o seguinte, conforme mostrado na Figura 10, dentro do primeiro diretório oculto:
Conforme mostrado na Figura 11, o Windows Explorer exibe outro diretório oculto junto com um arquivo de atalho. O arquivo de atalho tem as mesmas propriedades para iniciar o x32dbg.exe e infectará o host com o dispositivo USB conectado.
Ao visualizar o conteúdo da próxima pasta oculta, o Windows Explorer mostra a seguinte estrutura de diretório:
Este diretório contém uma pasta RECYLER.BIN que se disfarça como uma lixeira do Windows, juntamente com quaisquer arquivos ou diretórios que existiam na pasta raiz do dispositivo USB no momento da infecção. Ao visualizar o conteúdo do RECYLER.BIN com o Windows Explorer, a vítima verá o que é mostrado na Figura 12:
Como a configuração padrão do Windows Explorer é não mostrar itens ocultos, o único item visível para a vítima é o arquivo de atalho, conforme mostrado na Figura 8. Mesmo com arquivos ocultos ativados, o Windows Explorer ou cmd.exe não pode mostrar os arquivos de malware que residem no subdiretório de arquivos .
Os arquivos de malware só podem ser visualizados em um sistema operacional * nix ou montando o dispositivo USB em uma ferramenta forense. A Figura 13 mostra a aparência do dispositivo USB depois de montado no Ubuntu, navegando até ele por meio do File Explorer.
PlugX Malware pós-infecção USB
Quando um host é infectado com essa variante do malware PlugX, o malware monitora continuamente os dispositivos USB removíveis. Depois que um dispositivo USB é descoberto e infectado, todos os novos arquivos gravados na pasta raiz do dispositivo USB após a infecção são movidos para a pasta oculta dentro do dispositivo USB. Como o arquivo de atalho do Windows se assemelha ao de um dispositivo USB e o malware exibe os arquivos da vítima, eles involuntariamente continuam a espalhar o malware PlugX.
PlugX Malware USB Variante Dois
Armados com esse conhecimento, nos perguntamos se outro malware de infecção PlugX USB semelhante existia por aí. O arquivo SHA256: 5b496972a86cea66aeecaac6e3f67a92e22f35cd5d2a98d54a2f1218fcd5dfc5 no VirusTotal corresponde aos comportamentos de x32bridge.dat , especificamente a criação da tarefa agendada do Windows e a string PDB referenciada no blog da Sophos.
Este arquivo é um arquivo Windows x86 PE (DLL), o equivalente na memória de x32bridge.dat . Nossa análise mostra que o comportamento do tempo de execução é idêntico à infecção USB x32bridge.dat detalhada anteriormente, mas tem uma capacidade adicional. Ele copia documentos da máquina host para uma nova subpasta USB oculta chamada da520e5 .
O malware copia especificamente todos os documentos Adobe PDF e Microsoft Word do host para este diretório. A Figura 14 abaixo mostra um exemplo do diretório e arquivos copiados de nosso host.
Esta variante de malware PlugX USB foi projetada para exfiltrar arquivos específicos de seu alvo que podem ser recuperados posteriormente, pois este diretório e arquivos não são usados pelo malware ou exibidos para a vítima.
Associação com malware PlugX
Além da infecção por USB, tanto o x32bridge.dat quanto a segunda variante de malware PlugX descoberta no VirusTotal verificam o alvo em busca de processos específicos em execução. Se encontrado, ele os encerra e exclui os diretórios dos quais foram executados.
X32bridge.dat procura nomes de processo começando com AAM e, se encontrado, encerra o processo e exclui diretórios específicos associados ao processo. O blog da Sophos especulou que esse comportamento provavelmente removeu variantes de malware PlugX mais antigas. Variantes anteriores atribuídas ao PlugX começaram com nomes de arquivo AAM (ou seja, AAM Updates.exe ).
A segunda variante que descobrimos no VirusTotal também realiza essa verificação, incluindo uma para o nome de arquivo de processo específico AAM Updates.exe . Além disso, se o AAM Updates.exe for encontrado, ele excluirá o diretório AAM UpdatesikB , que é uma pasta que também foi associada à família de malware PlugX.
Como o x32bridge.dat e a segunda variante de malware PlugX descoberta no VirusTotal compartilham o mesmo método de infecção de USB junto com outros comportamentos de tempo de execução, podemos afirmar conclusivamente que ele está realmente associado ao PlugX.
Conclusão
O malware PlugX tem sido usado por mais de uma década e foi historicamente amplamente associado a grupos APT de estado-nação chinês. Ao longo dos anos, foi adotado e usado por outros grupos de ameaças, de estados-nação a agentes de ransomware.
O tradecraft típico do PlugX usa arquivos benignos para obter a execução de código, também conhecida como carregamento lateral de DLL, que muitos fornecedores de segurança agora detectam e impedem. Isso pode ser parte do motivo pelo qual os atores adicionaram a capacidade de infectar quaisquer dispositivos USB de mídia removível anexados, como disquetes, pen drives ou unidades flash, bem como quaisquer sistemas adicionais aos quais o USB seja conectado posteriormente.
Qualquer host infectado com esta variante do malware PlugX monitorará continuamente a infecção de novos dispositivos USB removíveis. Esse malware PlugX também oculta os arquivos do invasor em um dispositivo USB com uma nova técnica, que torna os arquivos maliciosos visíveis apenas em um sistema operacional * nix ou montando o dispositivo USB em uma ferramenta forense. Devido a essa capacidade de evitar a detecção, o malware PlugX pode continuar a se espalhar e, potencialmente, pular para redes sem comunicação.
Além disso, descobrimos uma variante semelhante do PlugX no VirusTotal com a capacidade adicional de copiar todos os documentos Adobe PDF e Microsoft Word do host infectado para a pasta oculta do dispositivo USB criada pelo malware PlugX. A descoberta dessas amostras indica que o desenvolvimento do PlugX ainda está vivo e bem entre pelo menos alguns invasores tecnicamente qualificados, e continua sendo uma ameaça ativa.
Para clientes da Palo Alto Networks, nossos produtos e serviços fornecem a seguinte cobertura associada a esta campanha:
- Os clientes do Cortex XDR recebem proteção nos endpoints contra as técnicas de malware descritas neste blog.
- O serviço de análise de ameaças baseado em nuvem WildFire identifica com precisão o malware descrito neste blog como malicioso.
Se você acha que pode ter sido comprometido ou tem um assunto urgente, entre em contato com a equipe de Resposta a Incidentes da Unidade 42 ou ligue para:
- Ligação gratuita na América do Norte: 866.486.4842 (866.4.UNIT42)
- EMEA: +31.20.299.3130
- APAC: +65.6983.8730
- Japão: +81.50.1790.0200
A Palo Alto Networks compartilhou essas descobertas, incluindo amostras de arquivos e indicadores de comprometimento, com nossos colegas membros da Cyber Threat Alliance. Os membros do CTA usam essa inteligência para implantar proteções rapidamente para seus clientes e para interromper sistematicamente os cibercriminosos mal-intencionados. Saiba mais sobre a Cyber Threat Alliance .
Unidade 42 Consultas de busca de ameaças gerenciadas
123456789101112131415 | // Detecting potential DLL side loading config case_sensitive = false timeframe = 30d| dataset = xdr_data | filter event_type = ENUM.LOAD_IMAGE and action_module_signature_status = 3 and ((action_module_path contains “mpsvc.dll” and actor_process_image_name = “aug.exe”) or (action_module_path contains “dismcore.dll” and actor_process_image_name = “aug.exe” ) or (action_module_path contains “\hex.dll” and actor_process_image_name = “SafeGuard.exe”) or (action_module_path contains “x32bridge.dll” and actor_process_image_name = “x32dbg.exe”) or (action_module_path contains “x32bridge.dll” and actor_process_image_name = “Mediae.exe”))| comp count() as counter by actor_process_image_path , action_module_path , action_module_sha256 [end code][begin code]// Adding registry persistence config case_sensitive = false timeframe = 30d| dataset = xdr_data | filter event_type = ENUM.REGISTRY and event_sub_type = ENUM.REGISTRY_SET_VALUE and action_registry_key_name contains “Microsoft\Windows\CurrentVersion\Run” and (action_registry_data contains “x32dbg.exe” or action_registry_data contains “aug.exe” or action_registry_data contains “SafeGuard.exe”)| fields action_registry_data , action_registry_file_path , action_registry_key_name , actor_process_command_line , agent_hostname |
123456 | // Payload execution with rundll32.execonfig case_sensitive = false timeframe = 30d| dataset = xdr_data| filter event_type = ENUM.PROCESS and action_process_image_path contains “rundll32” and (action_process_image_command_line contains “\akm.dat” or action_process_image_command_line contains “\precious.dat”)| fields action_process_image_command_line , actor_process_image_command_line , agent_hostname |
Indicadores de compromisso
Amostras conhecidas do PlugX:
8ec37dac2beaa494dcefec62f0bf4ae30a6ce44b27a588169d8f0476bbc94115
e72e49dc1d95efabc2c12c46df373173f2e20dab715caf58b1be9ca41ec0e172
0e9071714a4af0be1f96cffc3b0e58520b827d9e58297cb0e02d97551eca3799
39280139735145ba6f0918b684ab664a3de7f93b1e3ebcdd071a5300486b8d20
41a0407371124bcad7cab56227078ccd635ba6e6b4374b973754af96b7f58119
02aa5b52137410de7cc26747f26e07b65c936d019ee2e1afae268a00e78a1f7f
2a07877cb53404888e1b6f81bb07a35bc804daa1439317bccde9c498a521644c
5d98d1193fcbb2479668a24697023829fc9dc1f7d31833c3c42b8380ef859ff1
Diretórios de Arquivos Conhecidos
C:\ProgramData\UsersDate\Windows_NT\Windows\user\Desktop\
C:\Users\Public\Public Mediae\
<volume usb>:\u00A0\u00A0\RECYCLER.BIN\files
<volume usb>:\u00A0\u00A0\ RECICLADOR.BIN\arquivos\da520e5
Nomes Mutex do Windows Conhecidos
LKU_Test_0.1
LKU_Test_0.2
TCP_0.1
Nomes de arquivos de carga útil criptografados PlugX conhecidos
akm.dat
precioso.dat
x32bridge.dat
Groza_1.dat
Nomes conhecidos de tarefas agendadas do Windows
LKUFORYOU_1
PRECIOUS_0.1
Nomes de processos conhecidos do Windows (arquivos benignos com abuso observado)
x32dbg.exe
x32dbge.exe
Mediae.exe
Aug.exe
Precious.exe
SafeGuard.exe
Dism.exe
Técnicas MITRE ATT&CK
Malware ATOM PlugX