Daniel Stepanic

NANOREMOTE, primo do FINALDRAFT

O backdoor completo que chamamos de NANOREMOTE compartilha características com o malware descrito em REF7707 e é semelhante ao implante FINALDRAFT.

24 minutos de leituraAnálise de malware
NANOREMOTE, primo do FINALDRAFT

Introdução

Em outubro de 2025, o Elastic Security Labs descobriu uma porta dos fundos do Windows recém-observada em dados de telemetria. O backdoor completo que chamamos de NANOREMOTE compartilha características com o malware descrito em REF7707 e é semelhante ao implante FINALDRAFT .

Uma das principais funcionalidades do malware centra-se na transferência de dados entre o dispositivo da vítima e o servidor dela, utilizando a API do Google Drive. Essa funcionalidade acaba por fornecer um canal para roubo de dados e armazenamento temporário de conteúdo malicioso, o que dificulta a sua detecção. O malware inclui um sistema de gerenciamento de tarefas usado para transferência de arquivos, que abrange funcionalidades como enfileirar tarefas de download/upload, pausar/retomar transferências de arquivos, cancelar transferências de arquivos e gerar tokens de atualização.

Este relatório tem como objetivo aumentar a conscientização entre profissionais de segurança e organizações sobre os agentes de ameaça que estamos monitorando e suas capacidades em constante evolução.

Principais conclusões

  • A Elastic Security Labs descobre uma nova porta dos fundos para Windows.
  • O NANOREMOTE provavelmente foi desenvolvido por um agente de espionagem ligado ao FINALDRAFT e ao REF7707.
  • O NANOREMOTE inclui recursos de execução de comandos, descoberta/enumeração e transferência de arquivos usando a API do Google Drive.
  • O backdoor integra funcionalidades de projetos de código aberto, incluindo o Microsoft Detours e o libPeConv.
  • O Elastic Defend previne a cadeia de ataques NANOREMOTE por meio de regras comportamentais, classificador de aprendizado de máquina e recursos de proteção de memória.

Análise NANOREMOTE

WMLOADER

A cadeia de ataque observada consiste em dois componentes principais: um carregador (WMLOADER) e uma carga útil (NANOREMOTE). Embora este relatório se concentre no NANOREMOTE, descreveremos o carregador para fornecer contexto sobre o fluxo geral de infecção.

WMLOADER se disfarça de programa de segurança Bitdefender (BDReinit.exe) com assinatura digital inválida.

Após a execução, o programa faz um grande número de chamadas para funções do Windows (VirtualAlloc / VirtualProtect), preparando o processo para hospedar shellcode incorporado armazenado no arquivo. O shellcode está localizado em RVA (0x193041) e descriptografado usando um algoritmo XOR rolante.

Este shellcode procura um arquivo chamado wmsetup.log no mesmo caminho de pasta que WMLOADER e então começa a descriptografá-lo usando AES-CBC com uma chave ASCII de 16 bytes (3A5AD78097D944AC). Após a descriptografia, o shellcode executa o backdoor em memória, NANOREMOTE.

Com base na rotina de descriptografia de shellcode anterior, podemos identificar outras amostras relacionadas que têm como alvo produtos da Bitdefender e da Trend Micro ao pesquisar no VirusTotal.

NANOREMOTE

O NANOREMOTE é um backdoor completo que pode ser usado para realizar reconhecimento, executar arquivos e comandos e transferir arquivos de e para ambientes da vítima. O implante é um executável do Windows de 64 bits escrito em C++ sem ofuscação.

Configuração NANOREMOTE

A amostra do NANOREMOTE que observamos estava pré-configurada para se comunicar com um endereço IP não roteável codificado. Acreditamos que o programa foi gerado por um construtor, pois não encontramos nenhuma referência cruzada que aponte para uma configuração.

Para a autenticação da API do Google Drive, o NANOREMOTE usa uma configuração separada por pipes que pode utilizar vários clientes. O separador |*| divide os campos usados por um único cliente e o |-| é usado como um marcador para separar os clientes. Existem três campos por estrutura de cliente:

  • ID do cliente
  • Segredo do cliente
  • Token de atualização

Segue abaixo um exemplo do formato:

Client_ID_1|*|Client_Secret_1|*|Refresh_Token_1|-|Client_ID_2|*|Client_Secret_2|*|Refresh_Token_2

O desenvolvedor tem um mecanismo de fallback para aceitar esta configuração através de uma variável de ambiente chamada NR_GOOGLE_ACCOUNTS.

Interface/Registro

O NANOREMOTE fornece um console detalhado que exibe a atividade em tempo real do aplicativo, incluindo registros de data e hora, localização do código-fonte e descrições de seus comportamentos.

Um novo diretório do Windows é criado no mesmo local onde o NANOREMOTE foi executado, a pasta é chamada Log.

Um arquivo de log recém-criado (pe_exe_run.log) é colocado nesta pasta contendo a mesma saída impressa do console.

Configuração

Existe uma rotina de configuração inicial executada pelo NANOREMOTE antes do início do loop de trabalho principal. O malware gera um GUID único através de CoCreateGuid e então calcula o hash do GUID usando a função Fowler-Noll-Vo (FNV). Este GUID é usado pelo operador para identificar máquinas individuais durante cada solicitação.

O desenvolvedor do malware possui um manipulador de falhas que abrange todo o processo e cria um minidump do Windows do processo em execução quando ocorre uma exceção não tratada; isso provavelmente está sendo usado para triagem de falhas do programa.

A exceção gerará o despejo de memória antes de encerrar o processo. Esta é uma prática bastante comum, embora o MiniDumpWithFullMemory possa ser considerado menos comum em software legítimo, pois pode acabar produzindo dumps maiores e conter dados sensíveis.

Uma pesquisa rápida no Google usando o mesmo formatador de string para o arquivo de despejo (%d%02d%02d%02d%02d%02d_sv.dmp) listou apenas 1 resultado de um site de desenvolvimento de software baseado na China.

Comunicação em rede

Conforme mencionado anteriormente, o C2 da NANOREMOTE se comunica por meio de um endereço IP fixo. Essas solicitações ocorrem via HTTP, onde os dados JSON são enviados por meio de solicitações POST que são compactadas com Zlib e criptografadas com AES-CBC usando uma chave de 16 bytes (558bec83ec40535657833d7440001c00). O URI para todas as solicitações usa /api/client com User-Agent (NanoRemote/1.0).

Abaixo está a receita do CyberChef usada para a criptografia/compressão do C2:

Cada solicitação, antes da criptografia, segue um esquema que consiste em:

  • ID do comando: ID do manipulador de comando associado
  • Dados: Objeto específico do comando contendo pares chave/valor exigidos pelo manipulador correspondente.
  • ID: Identificador único da máquina atribuído ao host infectado

Abaixo segue um exemplo de uma solicitação que aciona a execução do comando `whoami` através da chave `command` dentro do objeto de dados:

{
    "cmd": 21,
    "data": {
        "command": "whoami"
    },
    "id": 15100174208042555000
}

Cada resposta segue um formato semelhante, utilizando os campos anteriores juntamente com dois campos adicionais.

  • Saída: Contém qualquer saída do manipulador de comandos solicitado anteriormente.
  • Sucesso: Indicador booleano usado para determinar se o comando foi bem-sucedido ou não.

Segue abaixo um exemplo da resposta do comando whoami anterior:

{
    "cmd": 21,
    "data": 0,
    "id": 17235741656643013000,
    "output": "desktop-2c3iqho\\rem\r\n",
    "success": true
}

Manipuladores de Comando

A principal funcionalidade do NANOREMOTE é controlada por meio de seus manipuladores de comando 22 . Abaixo encontra-se um diagrama de fluxo de controle (CFG) que mostra a instrução switch usada para despachar os diferentes manipuladores.

Abaixo está a tabela de manipuladores de comandos:

ID do comandoDescrição
Coletar informações baseadas no host
Modificar tempo limite do beacon
3ª.Autodestruição
Listar o conteúdo da pasta pelo caminho
#5Listar o conteúdo da pasta pelo caminho e definir o diretório de trabalho
#6Obtenha detalhes do disco de armazenamento
#7Criar novo diretório
#8 #9Excluir diretório/arquivos
#10 #11Desmontagem (Limpar cache, limpeza)
#12Carregador PE - Executa PE a partir do disco
#13Definir diretório de trabalho
#14Obtenha o diretório de trabalho
#15Mover arquivo
#16Adicionar tarefa de download à fila via Google Drive
#17Adicionar tarefa de upload à fila via Google Drive
#18Pausar transferência de download/upload
#19Transferência de download/upload de currículo
#20Cancelar transferência de arquivos
#21Execução de comando
#22Carregador PE - Executa PE a partir da memória
Manipulador nº 1 - Coletar informações baseadas no host

Este manipulador enumera detalhes do sistema e do usuário para traçar o perfil do ambiente da vítima:

  • Usa WSAIoctl com SIO_GET_INTERFACE_LIST para recuperar o endereço IP interno e externo.
  • Obtém o nome de usuário via GetUserNameW
  • Recupera o nome do host através de GetComputerNameW
  • Verifica se o usuário atual é membro do grupo Administradores através de IsUserAnAdmin
  • Recupera o caminho do processo usado pelo malware usando GetModuleFileNameW
  • Recupera informações do sistema operacional (versão do produto) do registro usando os nomes de valor WinREVersion e ProductName
  • Obtém o ID do processo do programa em execução através de GetCurrentProcessID

Abaixo segue um exemplo dos dados enviados para o servidor C2:

{
    "cmd": 1,
    "data": {
        "Arch": "x64",
        "ExternalIp": "",
        "HostName": "DESKTOP-2C3IQHO",
        "ID": 8580477787937977000,
        "InternalIp": "192.168.1.1",
        "OsName": "Windows 10 Enterprise ",
        "ProcessID": 304,
        "ProcessName": "pe.exe",
        "SleepTimeSeconds": 0,
        "UID": 0,
        "UserName": "REM *"
    },
    "id": 8580477787937977000
}
Manipulador nº 2 - Modificar tempo limite do beacon

Este manipulador modifica o intervalo de tempo limite do beacon para a comunicação C2 do NANOREMOTE; o malware entrará em modo de espera com base no número de segundos fornecido pelo operador.

Abaixo está um exemplo desta solicitação onde NANOREMOTE usa a chave (interval) com um valor (5) para modificar o tempo limite do beacon para 5 segundos.

{
    "cmd": 2,
    "data": {
        "interval": 5
    },
    "id": 15100174208042555000
}
Manipulador nº 3 - Auto-encerramento

Este manipulador é responsável por definir uma variável global como 0 , sinalizando efetivamente o encerramento e a saída do processo para NANOREMOTE.

Manipulador nº 4 - Listar o conteúdo da pasta pelo caminho

Este manipulador lista o conteúdo da pasta usando um caminho de arquivo fornecido pelo operador. A lista de cada item inclui:

  • Se o item é um diretório ou não.
  • Se o item está marcado como oculto
  • Data da última modificação
  • Nome do arquivo
  • Tamanho

Manipulador nº 5 - Listar o conteúdo da pasta e definir o diretório de trabalho

Este manipulador usa o mesmo código que o manipulador anterior (#4), a única diferença é que ele também define o diretório de trabalho atual do processo para o caminho fornecido.

Manipulador nº 6 - Obter informações do disco de armazenamento

Este manipulador utiliza as seguintes funções da API do Windows para coletar informações do disco de armazenamento da máquina:

  • GetLogicalDrives
  • GetDiskFreeSpaceExW
  • GetDriveTypeW
  • ObterInformaçõesDeVolumeW

Abaixo segue um exemplo da solicitação em JSON mostrando os dados retornados:

{
    "cmd": 6,
    "data": {
        "items": [
            {
                "free": 26342813696,
                "name": "C:",
                "total": 85405782016,
                "type": "Fixed"
            }
        ]
    },
    "id": 16873875158734957000,
    "output": "",
    "success": true
}
Manipulador nº 7 - Criar novo diretório de pastas

Este manipulador de comandos cria um novo diretório com base em um caminho fornecido.

Manipulador nº 8, nº 9 - Excluir arquivo, diretório

Este manipulador suporta os IDs de comando #8 e #9, e o desvio é escolhido dinamicamente com base no caminho do arquivo fornecido. Possui a capacidade de excluir arquivos ou uma pasta específica.

Manipulador nº 10, nº 11 - Desmontagem/Limpeza

Esses dois manipuladores chamam a mesma função de desmontagem usando argumentos diferentes para liberar recursivamente alocações de memória heap, objetos C++ internos e dados em cache associados ao ambiente de execução do malware. O objetivo é limpar as estruturas de comando e evitar vazamentos de memória ou instabilidade.

Manipulador nº 12 - Carregador PE personalizado - Executar PE a partir do disco

Este manipulador inclui uma funcionalidade personalizada de carregamento de PE para arquivos existentes no disco. Essa funcionalidade utiliza APIs padrão do Windows juntamente com código auxiliar da biblioteca libPeConv para carregar arquivos PE do disco sem usar o carregador tradicional do Windows.

Em resumo, ele lerá um arquivo PE do disco, copiará o arquivo para a memória, mapeará manualmente as seções/cabeçalhos, preparando o arquivo antes de finalmente executá-lo na memória. Essa implementação é uma técnica deliberada para furtividade e evasão, contornando a interceptação em modo de usuário e a visibilidade tradicional. Por exemplo, quando um arquivo é executado por meio dessa técnica, não há nenhum vestígio de que esse executável tenha sido iniciado usando o Procmon.

A seguir, apresentamos a entrada para este manipulador, onde o caminho do arquivo local é fornecido na chave (args):

{
    "cmd": 12,
    "data": {
        "args": "C:\\tmp\\mare_test.exe"
    },
    "id": 15100174208042555000
}

A captura de tela a seguir mostra a execução bem-sucedida do nosso executável de teste usando essa técnica:

Durante esta análise, um ponto interessante a destacar é a adoção da biblioteca libPeConv, um projeto excelente e útil que nós mesmos utilizamos internamente para diversas tarefas relacionadas a malware. O desenvolvedor do NANOREMOTE utiliza diversas funções desta biblioteca para simplificar tarefas comuns relacionadas ao carregamento e execução manual de arquivos PE na memória. Abaixo estão as funções utilizadas pela biblioteca encontrada no NANOREMOTE:

  • default_func_resolver: Resolve funções em um arquivo PE carregando DLLs dinamicamente e recuperando os endereços das funções exportadas.

  • hooking_func_resolver: Recupera o endereço virtual de uma função pelo nome a partir de uma DLL carregada.

  • FillImportThunks: Preenche a tabela de importação, resolvendo cada função importada para seu endereço real na memória.

  • ApplyRelocCallback: Aplica realocações de base quando um arquivo PE é carregado em um endereço diferente de sua base preferencial.

Outra observação importante neste manipulador é o uso da biblioteca de hooking de código aberto, Microsoft Detours. Esta biblioteca é usada para interceptar as seguintes funções do Windows:

  • Obter identificador padrão
  • RtlExitUserThread
  • RtlExitUserProcess
  • Saída Fatal
  • ExitProcess

Essa rotina de interceptação em tempo de execução intervém em funções relacionadas ao término para impor um comportamento controlado e melhorar a resiliência. Por exemplo, o NANOREMOTE impede que uma falha em uma única thread de trabalho encerre todo o processo NANOREMOTE.

Manipulador nº 13 - Definir diretório de trabalho

Este manipulador define o diretório de trabalho para um diretório específico usando a chave (caminho). Segue abaixo um exemplo de solicitação:

{
    "cmd": 13,
    "data": {
        "path": "C:\\tmp\\Log"
    },
    "id": 15100174208042555000
}
Manipulador nº 14 - Obter diretório de trabalho

Este manipulador recupera o diretório de trabalho atual; abaixo está um exemplo de resposta após definir o diretório com o manipulador anterior (#13).

{
    "cmd": 14,
    "data": 0,
    "id": 11010639976590963000,
    "output": "[+] pwd output:\r\nC:\\tmp\\Log\r\n",
    "success": true
}
Manipulador nº 15 - Mover arquivo

Este manipulador permite ao operador mover arquivos na máquina da vítima usando MoveFileExW com dois argumentos (caminho_antigo, caminho_novo), movendo o arquivo para uma pasta diferente realizando uma operação de copiar e excluir o arquivo.

Manipulador nº 16 - Tarefa de download da fila

Este manipulador cria um objeto de tarefa de download com um task_id fornecido e, em seguida, enfileira a tarefa na fila de downloads. Esta implementação utiliza tokens OAuth 2.0 para autenticar solicitações à API do Google Drive. Essa funcionalidade é usada pelo agente da ameaça para baixar arquivos para o computador da vítima. A comunicação criptografada com os servidores do Google faz com que esse tráfego pareça legítimo, impedindo que as organizações o inspecionem ou o diferenciem do uso normal.

Dentro da thread de trabalho principal, existe uma variável global usada para rastrear objetos na fila e processar as tarefas pendentes do malware.

Uma tarefa é processada utilizando diversos campos fornecidos pelo servidor C2:

  • type
  • id_da_tarefa
  • id_do_arquivo
  • caminho_alvo
  • tamanho_do_arquivo
  • md5

Quando uma tarefa de download é processada, o NANOREMOTE recupera o tamanho do arquivo hospedado no Google Drive usando o ID do arquivo (1BwdUSIyA3WTUrpAEEDhG0U48U9hYPcy7). Em seguida, o malware fará o download do arquivo via WinHttpSendRequest e, em seguida, usará o WinHttpWriteData para gravar o arquivo na máquina.

Abaixo está a saída do console mostrando esse processo de download:

Essa funcionalidade de malware representa um desafio singular para as organizações, visto que grupos de ameaças continuam a abusar de plataformas de nuvem confiáveis para exfiltração de dados e hospedagem de payloads. Esse tráfego sem contexto pode se misturar facilmente ao tráfego legítimo, dificultando a detecção por parte dos defensores que dependem da visibilidade da rede.

Manipulador nº 17 - Tarefa de upload na fila

Este manipulador funciona de forma semelhante ao manipulador anterior (#16), porém, em vez disso, cria uma tarefa na fila de upload e a enfileira na fila de upload. Este manipulador é usado pelo agente da ameaça para enviar arquivos da máquina da vítima para a conta do Google Drive controlada pelo adversário.

Os seguintes campos são fornecidos pelo operador através do servidor C2:

  • type
  • task_id
  • upload_name
  • source_path
  • file_size
  • md5

Abaixo está o tráfego de rede gerado pelo malware ao fazer o upload de um arquivo de teste através da API do Google Drive (/upload/drive/v3/files).

A figura abaixo mostra o console durante esse processo de upload.

Abaixo, segue uma captura de tela da demonstração anterior, utilizando o recurso de upload de arquivos com nossa própria conta de teste do Google Drive.

A seguir está a resposta deste manipulador:

{
    "cmd": 17,
    "data": {
        "file_id": "1qmP4TcGfE2xbjYSlV-AVCRA96f6Kp-V7",
        "file_name": "meow.txt",
        "file_size": 16,
        "md5": "1e28c01387e0f0229a3fb3df931eaf80",
        "progress": 100,
        "status": "uploaded",
        "task_id": "124"
    },
    "id": 4079875446683087000,
    "output": "",
    "success": true
}
Manipulador nº 18 - Pausar transferência de download/upload

Este manipulador permite ao operador pausar quaisquer tarefas de download e upload gerenciadas pelo NANOREMOTE, passando o task_id.

Manipulador nº 19 - Transferência de download/upload de currículo

Este manipulador permite ao operador retomar quaisquer tarefas de download ou upload pausadas, gerenciadas pelo NANOREMOTE, usando o task_id.

Manipulador nº 20 - Cancelar transferência de arquivo

Este manipulador permite ao operador cancelar quaisquer tarefas de download/upload gerenciadas pelo NANOREMOTE através do task_id.

Manipulador nº 21 - Execução de Comando

Este é o principal manipulador usado pelo adversário para executar comandos na máquina da vítima. Ele funciona criando novos processos e retornando a saída através de pipes do Windows. Essa é uma característica fundamental encontrada na maioria das portas traseiras usadas por adversários para acesso direto, a fim de enumerar o ambiente, realizar movimentação lateral e executar cargas úteis adicionais.

A figura abaixo mostra a árvore de processos do NANOREMOTE quando este manipulador é invocado. O malware gera o cmd.exe, que por sua vez executa o comando especificado — neste caso, whoami.exe.

Manipulador nº 22 - Executar PE codificado a partir da memória

Este manipulador carrega e executa um arquivo PE codificado em Base64 dentro do processo NANOREMOTE existente. O arquivo PE codificado é fornecido pelo servidor C2 através do campo pe_data. Se o programa exigir argumentos de linha de comando, a chave (argumentos) será usada.

Abaixo segue um exemplo mostrando a saída do console usando o programa de teste:

Semelhança com o FinalDraft

Existe sobreposição entre FINALDRAFT e NANOREMOTE tanto em termos de similaridade de código quanto de comportamento.

Muitas funções apresentam clara reutilização de código entre os dois implantes. Por exemplo, ambos seguem a mesma sequência de geração de um GUID via CoCreateGuid, aplicação de hash com a função Fowler-Noll-Vo (FNV) e execução de verificações idênticas de validação de heap antes de liberar o buffer.

Boa parte do código relacionado ao HTTP, usado para enviar e receber solicitações, também apresenta semelhanças. Abaixo, segue um exemplo de um diagrama de fluxo de controle mostrando a configuração de uma requisição HTTP utilizada por ambas as famílias de malware.

Durante nossa análise, observamos que o WMLOADER descriptografa a carga útil correspondente a partir de um arquivo codificado chamado wmsetup.log – o mesmo nome de arquivo usado pelo PATHLOADER para implantar o FINALDRAFT que publicamos no início do ano.

Outra descoberta interessante é que encontramos uma amostra (wmsetup.log) do VirusTotal, que foi carregado recentemente das Filipinas em 03/10/2025.

Baixamos o arquivo, colocamos ao lado do WMLOADER e, em seguida, executamos o carregador. O arquivo wmsetup.log foi descriptografado com sucesso, revelando um implante FINALDRAFT.

Abaixo, você encontrará um gráfico lado a lado mostrando que a mesma chave AES é usada para descriptografar com sucesso tanto o FINALDRAFT quanto o NANOREMOTE.

Nossa hipótese é que o WMLOADER usa a mesma chave pré-definida por fazer parte do mesmo processo de construção/desenvolvimento, o que lhe permite funcionar com diversas cargas úteis. Não está claro por que o grupo de ameaças por trás desses implantes não está girando a chave; possivelmente, isso se deve à conveniência ou a testes. Isso parece ser mais um forte indício de que existe uma base de código e um ambiente de desenvolvimento compartilhados entre o FINALDRAFT e o NANOREMOTE.

NANOREMOTE através do MITRE ATT&CK

A Elastic usa a estrutura MITRE ATT&CK para documentar táticas, técnicas e procedimentos comuns que as ameaças usam contra redes corporativas.

Táticas

As táticas representam o porquê de uma técnica ou subtécnica. É o objetivo tático do adversário: a razão para executar uma ação.

Técnicas

Técnicas representam como um adversário atinge um objetivo tático executando uma ação.

Mitigando o NANOREMOTE

Em um ambiente de laboratório executando o NANOREMOTE, vários alertas diferentes foram acionados usando o Elastic Defend.

Um dos principais comportamentos que os defensores precisam validar é o uso indevido de serviços legítimos, como a API do Google Drive. Abaixo, segue um exemplo de alerta acionado pela regra "Conexão com serviços da Web comumente abusados" ao interagir com a API do Google para download e upload de arquivos usando o NANOREMOTE.

A técnica de carregamento PE usando o arquivo codificado em Base64 do servidor C2 também foi detectada por meio de alerta Memory Threat Detection Alert: Shellcode Injection .

Detecção/Prevenção

YARA

O Elastic Security criou regras YARA para identificar essa atividade.

rule Windows_Trojan_NanoRemote_7974c813 {
    meta:
        author = "Elastic Security"
        creation_date = "2025-11-17"
        last_modified = "2025-11-19"
	 license = "Elastic License v2"
        os = "Windows"
        arch = "x86"
        threat_name = "Windows.Trojan.NanoRemote"

    strings:
        $str1 = "/drive/v3/files/%s?alt=media" ascii fullword
        $str2 = "08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X" ascii fullword
        $str3 = "NanoRemote/" wide
        $str4 = "[+] pwd output:" wide
        $str5 = "Download task %s failed: write error (wrote %llu/%zu bytes)"
        $seq1 = { 48 83 7C 24 28 00 74 ?? 4C 8D 4C 24 20 41 B8 40 00 00 00 BA 00 00 01 00 48 8B 4C 24 28 FF 15 ?? ?? ?? ?? 85 C0 }
        $seq2 = { BF 06 00 00 00 89 78 48 8B 0D ?? ?? ?? ?? 89 48 ?? FF D3 89 78 78 8B 0D ?? ?? ?? ?? 89 48 7C FF D3 89 78 18 8B 0D }
    condition:
        4 of them
}
rule Windows_Trojan_WMLoader_d2c7b963 {
    meta:
        author = "Elastic Security"
        creation_date = "2025-12-03"
        last_modified = "2025-12-03"
       license = "Elastic License v2"
        os = "Windows"
        arch = "x86"
        threat_name = "Windows.Trojan.WMLoader"
        reference_sample = "fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902"

    strings:
        $seq1 = { 8B 44 24 20 FF C0 89 44 24 20 81 7C 24 20 01 30 00 00 }
        $seq2 = { 41 B8 20 00 00 00 BA 01 30 00 00 48 8B 4C C4 50 FF 15 }
    condition:
        all of them
}

Observações

Os seguintes observáveis foram discutidos nesta pesquisa.

ObservávelTipoNomeReferência
fff31726d253458f2c29233d37ee4caf43c5252f58df76c0dced71c4014d6902SHA-256BDReinit.exeWMLOADER
999648bd814ea5b1e97918366c6bd0f82b88f5675da1d4133257b9e6f4121475SHA-256ASDTool.exeWMLOADER
35593a51ecc14e68181b2de8f82dde8c18f27f16fcebedbbdac78371ff4f8d41SHA-256mitm_install_tool.exeWMLOADER
b26927ca4342a19e9314cf05ee9d9a4bddf7b848def2db941dd281d692eaa73cSHA-256BDReinit.exeWMLOADER
57e0e560801687a8691c704f79da0c1dbdd0f7d5cc671a6ce07ec0040205d728SHA-256NANOREMOTE

Compartilhe este artigo