ESET-Forscher haben die Aktivitäten von Webworm aus dem Jahr 2025 analysiert. Webworm ist eine chinesisch ausgerichtete APT-Gruppe, die es zunächst auf Unternehmen in Asien abgesehen hatte, ihren Fokus aber kürzlich nach Europa verlagerte. Auch wenn dies unser erster öffentlicher Blogpost zu dieser Gruppe ist, beobachten wir die Aktivitäten von Webworm, seit Symantec im Jahr 2022 erstmals über diesen Bedrohungsakteur berichtete. Im Laufe der Jahre haben wir festgestellt, dass dieser Bedrohungsakteur seine Taktiken, Techniken und Verfahren (TTPs) ständig ändert.

Webworm steht in Verbindung mit anderen aus China stammenden APT-Gruppen wie SixLittleMonkeys und FishMonger. In der Vergangenheit nutzte Webworm bekannte Malware-Familien wie McRat (auch bekannt als 9002 RAT) und Trochilus. Doch in den letzten Jahren hat die Gruppe begonnen, sich sowohl bestehenden als auch benutzerdefinierten Proxy-Tools zuzuwenden, die getarnter sind als vollwertige Backdoors. In 2025 fügte Webworm außerdem zwei neue Backdoors zu seinem Toolset hinzu: EchoCreep, das Discord für die C&C-Kommunikation nutzt, und GraphWorm, das die Microsoft Graph API für denselben Zweck verwendet. Die Hacker sind auch dafür bekannt, dass sie ihre Malware und Tools in GitHub-Repositories bereitstellt. Damit wollen sie sicherstellen, dass die Malware direkt auf den Computer des Opfers heruntergeladen werden kann.

Die wichtigsten Punkte des Blogposts:
  • Seit ihrer Entdeckung im Jahr 2022 hat die APT-Gruppe Webworm ihr Toolset und ihre Angriffsziele aktiv aktualisiert.
  • Im Jahr 2025 begann die Gruppe mit dem Einsatz von Backdoors, die Discord und Microsoft Graph API für die C&C-Kommunikation nutzen.
  • ESET-Forscher entschlüsselten über 400 Discord-Nachrichten und eine Bash-Historiendatei, die auf einem Betreiberserver entdeckt wurde und Aufklärungsbefehle enthält, die gegen mehr als 50 einzelne Ziele eingesetzt wurden.
  • Zusätzlich zu den Backdoors nutzt Webworm mehrere bestehende und eigene Proxy-Tools.
  • Die Gruppe nutzt GitHub, um ihre Malware zu entwickeln.

Aufgrund der Informationen, die wir nach der Entschlüsselung der Discord-Nachrichten, die von der EchoCreep-Backdoor für die C&C-Kommunikation verwendet werden, entdeckt haben, führen wir die Kampagne 2025 auf Webworm zurück. Die Informationen führten uns zum GitHub-Repository der Angreifer, das inszenierte Artefakte wie die SoftEther-VPN-Anwendung enthielt. In der SoftEther-Konfigurationsdatei fanden wir eine IP-Adresse, die einer bekannten Webworm-IP entspricht.

Opfer, die von Webworm aus den in diesem Blogpost genannten Ländern betroffen waren, wurden entsprechend benachrichtigt. Darüber hinaus wurden von uns identifizierte Dienste wie ein GitHub-Repository und ein S3-Bucket vom Netz genommen.

Sich entwickelnder Ansatz

Im Jahr 2022 war eines der Hauptmerkmale von Webworm die Verwendung etablierter Hintertüren und Fernzugriffstrojaner (RATs) wie McRat und Trochilus. Wie im Symantec-Blogpost beschrieben, hatte die Gruppe ursprünglich vor allem Länder in Asien im Visier.

Im Jahr 2024 beobachteten wir, dass die Gruppe begann, sich von traditionellen Hintertüren zu entfernen und stattdessen legitime oder halblegale Tools wie SOCKS-Proxys (SoftEther VPN) und andere Netzwerklösungen zu verwenden. Diese helfen Webworm zwar dabei, sich der Entdeckung zu entziehen, doch fehlt ihnen der vollständige Befehlssatz, der normalerweise in Backdoors zur Verfügung steht. Deshalb müssen die Betreiber auf Befehlsinterpreter wie cmd.exe oder powershell.exe zurückgreifen müssen.

Zu dieser Zeit wurde auch festgestellt, dass die Gruppe ihre Aktivitäten in Asien verlangsamte und ihren Schwerpunkt auf europäische Länder verlagerte. Dieser Trend setzte sich im Jahr 2025 fort, wobei die von uns beobachteten Angriffe auf Regierungsorganisationen in Belgien, Italien, Serbien und Polen abzielten. Zur gleichen Zeit unternahm Webworm auch einen Vorstoß nach Südafrika und kompromittierte eine lokale Universität.

Bei diesen jüngsten Kampagnen scheint Webworm Trochilus und McRat ganz aufgegeben zu haben, während er sein Toolset weiter ausbaut. Zu den neuen Tools gehören vor allem zwei neue Backdoors: der auf Discord basierende EchoCreep und der auf Microsoft Graph basierende GraphWorm. Während die Gruppe weiterhin bestehende Proxy-Lösungen verwendet, insbesondere die von Go geschriebenen iox (Port-Weiterleitung und Intranet-Proxy-Tool) und frp (Fast Reverse Proxy), hat sie auch eigene Proxy-Lösungen WormFrp, ChainWorm, SmuxProxy und WormSocket hinzugefügt.

Diese benutzerdefinierten Proxy-Tools sind nicht nur in der Lage, die Kommunikation zu verschlüsseln, sondern unterstützen auch die Verkettung über mehrere Hosts sowohl intern als auch extern in einem Netzwerk. Wir glauben, dass die Betreiber diese Tools in Verbindung mit SoftEther VPN verwenden, um ihre Spuren besser zu verwischen und die Heimlichkeit ihrer Aktivitäten zu erhöhen. Alle Webworm-Proxys und VPN-Dienste sind Cloud-Server, die zur Netzwerkinfrastruktur gehören, die von Vultr und IT7 Networks kontrolliert wird. Ausgehend von der Anzahl der Proxy-Tools und ihrer Komplexität könnte Webworm ein viel größeres verstecktes Netzwerk aufbauen, indem er seine Opfer dazu bringt, seine Proxys auszuführen.

C&C-Kommunikation über Discord und Microsoft Graph API

Im Jahr 2025 begann Webworm, Discord und Microsoft Graph API für die C&C-Kommunikation zu missbrauchen. Bei der Analyse der EchoCreep-Backdoor konnten wir mehr als 400 Discord-Nachrichten aufdecken. Außerdem fanden wir vier einzigartige Kanäle, die jeweils einem anderen Opfer zugeordnet sind. EchoCreep verwendet Discord, um Dateien hochzuladen, Laufzeitberichte zu senden und Befehle zu empfangen. Die Netzwerkkommunikation der Backdoor läuft über die Discord-APIs unter Verwendung manipulierter HTTP-Anfragen.

Im Fall von GraphWorm, der die Microsoft Graph API für die C&C-Kommunikation nutzt, haben wir festgestellt, dass er ausschließlich OneDrive-Endpunkte verwendet, insbesondere um neue Aufträge zu erhalten und um Opferinformationen hochzuladen. Für jedes einzelne Opfer wird ein separates OneDrive-Verzeichnis erstellt. Da die von GraphWorm verwendete OneDrive-Instanz in der Cloud ausgeführt wird, kann die Backdoor den Microsoft Graph API-Endpunkt /createUploadSession nutzen, um große, gestaffelte Dateien hochzuladen.

Amazon S3-Bucket

Während unserer Untersuchung der 2025 Kampagnen entdeckten wir, dass Webworm begonnen hatte, seine benutzerdefinierte Proxy-Lösung WormFrp zu verwenden, um Konfigurationen von einem kompromittierten Amazon S3-Bucket mit der Adresse wamanharipethe.s3.ap-south-1.amazonaws[.]com abzurufen. Ein Amazon S3-Bucket ist eine öffentliche Cloud-Speicherlösung, die in Amazon Web Services verfügbar ist, wobei S3 für Simple Storage Service steht. Wir gehen davon aus, dass es sich bei dem kompromittierten Bucket um die öffentlich zugängliche - oder möglicherweise sogar politisch falsch konfigurierte - Version von whpjewellers.s3.amazonaws[.]com handelt.

Unsere erste Überprüfung der im Bucket gespeicherten Dateien ergab mehrere Snapshots von Hosts virtueller Maschinen, von denen einer die aktuelle Konfiguration und den aktiven Status einer Maschine enthielt, die einer staatlichen Einrichtung in Italien gehört. Dies könnte bedeuten, dass es den Betreibern gelungen ist, in die Umgebung einzudringen, die für die Verwaltung der virtuellen Maschinen des Opfers verantwortlich ist. Sie könnten sich aber auch nur Zugang zu einem einzelnen Host verschafft haben, auf dem Snapshots gespeichert waren. In jedem Fall ist es offensichtlich, dass Webworm über dieses S3-Bucket Daten exfiltrieren kann, während ein ahnungsloses Opfer die Rechnung für den Dienst bezahlt.

Ende Oktober 2025 luden die Bedrohungsakteure eine weitere Datei in den S3-Bucket hoch, eine ausführbare Datei namens SharpSecretsdump. Dieses Tool ahmt, wie in seiner Dokumentation erwähnt, die Aktivität des berüchtigten secretsdump.py von Impacket nach, um Anmeldeinformationen von dem betroffenen Windows-Host, auf dem es eingesetzt wird, abzuladen. Wir gehen davon aus, dass die Betreiber von Webworm dieses Tool in den S3-Bucket hochgeladen haben, um es gegen ihre Opfer einzusetzen.

Zwischen Dezember 2025 und Januar 2026 luden die Betreiber 20 neue Dateien in den Dienst hoch, von denen zwei von einer Regierungsbehörde in Spanien exfiltriert worden waren. Die erste dieser beiden Dateien, eine XML-Datei, enthält die gespeicherten Konfigurationen von virtuellen Hosts, die von mRemoteNG, einem Open-Source-Remote-Verbindungsmanager, verwendet werden. Bei der zweiten Datei handelt es sich um ein Microsoft-Visio-Diagramm, in dem die Infrastruktur hinter einer von dieser staatlichen Einrichtung genutzten Domäne dargestellt ist.

GitHub-Repository

Bei der Durchsicht der Discord-C&C-Infrastruktur von EchoCreep konnten wir die eindeutigen Discord-Kennungen für Benutzer, Kanäle und Gilden abrufen. Leider gab es aufgrund des eingeschränkten Zugriffs auf das Token des Bots keine API-Aufrufe, mit denen die Informationen über die Eigentümer des Servers oder des Bots selbst aufgezählt werden konnten.

Die Discord-Nachrichten enthüllten jedoch das GitHub-Repository https://github[.]com/anjsdgasdf/WordPress, das als Dateispeicher für andere Tools und Malware dient, die von Webworm verwendet werden (eines dieser Tools nutzte den oben erwähnten kompromittierten Amazon S3-Bucket). Da es sich um eine direkte Abspaltung des legitimen WordPress-Repositorys handelt, konnte es sich im Verborgenen halten. Abbildung 1 zeigt einen Überblick über dieses Repository, wobei die bereitgestellten Dateien im Verzeichnis wp-admin abgelegt sind.

Figure 1. Forked WordPress repository
Abbildung 1. Geforktes WordPress-Repository

Sich einschleusen

Obwohl wir den Einstiegspunkt, über den Webworm seine Opfer kompromittiert, nicht finden konnten, haben wir herausgefunden, dass die Gruppe Open-Source-Dienstprogramme verwendet, um die Dateien und Verzeichnisse der Opfer-Webserver zu durchsuchen und darin nach Schwachstellen zu suchen.

Wir fanden dies heraus, nachdem wir festgestellt hatten, dass ein Opfercomputer mit einem Proxyserver kommunizierte, der unter 64.176.85[.]158 gehostet wurde. Die Überprüfung der IP-Adresse ergab, dass dort zuvor ein offenes Verzeichnis auf Port 80 gehostet worden war, das die oben erwähnten Open-Source-Dienstprogramme enthielt. Abbildung 2 gibt einen Überblick über dieses offene Verzeichnis.

Figure 2. Open directory listing
Abbildung 2. Auflistung offener Verzeichnisse

Die wichtigsten Verzeichnisse, die für unseren Blogpost relevant sind, sind nuclei/, .dirsearch/ und die .bash history-Datei. Wie in Abbildung 3 zu sehen ist, waren die Betreiber von Webworm in der Lage, Verzeichnisse und Dateien innerhalb von Webservern mit roher Gewalt zu infiltrieren, indem sie dirsearch, ein Dienstprogramm zum Scannen von Webpfaden mit der Fähigkeit, bestimmte Statuscodes zu filtern, und nuclei, einen Open-Source-Scanner für Sicherheitslücken, verwendeten, um mögliche Sicherheitslücken für bestimmte Ziele zu identifizieren.

Figure 3. History of nuclei and dirsearch
Abbildung 3. Verlauf von nuclei und dirsearch

Die Ergebnisse der Ausführung von dirsearch wurden im Verzeichnis .dirsearch gespeichert. Daraus ging hervor, dass das Tool gegen 56 Ziele aus einer Vielzahl von Ländern wie Spanien, Ungarn, Belgien, Nigeria, Tschechien und Serbien ausgeführt wurde.

Im Verzeichnis nuclei fanden wir das Skript LegalHackers mit dem Namen _1.sh. Es ist ein Proof-of-Concept-Exploit für CVE 2017 7692, eine Sicherheitslücke, die Remotecodeausführung nach der Authentifizierung im Webmail-Client SquirrelMail ermöglicht. Bei einem Blick in das Verzeichnis .bash_history entdeckten wir, dass ein ähnlich benanntes Skript gegen ein serbisches Webmail-Ziel ausgeführt worden war. Dies lässt vermuten, dass die Gruppe die Anmeldedaten des serbischen Opfers erlangt hat und diese Schwachstelle möglicherweise als Teil des Erstzugriffs genutzt hat.

Werkzeugsatz

In diesem Blogpost gehen wir im Detail auf die Neuzugänge im Arsenal von Webworm ein. Zunächst auf die beiden benutzerdefinierten Backdoors: EchoCreep und GraphWorm. Dann betrachten wir die benutzerdefinierten Proxy-Lösungen, die die Gruppe in ihren Kampagnen im Jahr 2025 eingesetzt hat: WormFrp, ChainWorm, SmuxProxy und WormSocket.

EchoCreep

EchoCreep ist eine neue, in Go geschriebene Backdoor, die Discord als C&C-Server verwendet und bereits am 21. März 2024 mit Nachrichten beginnt. Sie ist in der Lage, die in Tabelle 1 aufgeführten Befehle auszuführen.

Tabelle 1: EchoCreep-Befehle

Command Arguments Description
upload File path Uploads a file, as an attachment, to Discord from the specified file system path.
download Source (URL) and destination (path) Downloads a file from the provided source URL to the file system path destination.
shell String Executes the string within a cmd.exe shell.
sleep Integer (seconds) Sleeps for the specified number of seconds before providing a success report back to the Discord server.

Wir konnten zwar nicht bestätigen, wie die Hintertür auf den Computer des Opfers gelangte, aber es scheint, dass die Persistenz erst nach der Kompromittierung über C&C-Befehle erreicht wurde.

Die gesamte Netzwerkkommunikation von EchoCreep wird über Discord-API-Endpunkte geleitet, wobei manipulierte HTTP-Anfragen verwendet werden. Um Befehle zu analysieren, muss die Backdoor sie zunächst mit base64 und dann mit AES-CBC-128 entschlüsseln. Abbildung 4 zeigt ein Beispiel für einen Befehl und eine Antwort, nachdem beide entschlüsselt worden sind.

{{CODE_BLOCK_0}}

Abbildung 4: EchoCreep-Befehl und -Antwort

Aus allen 433 Discord-Nachrichten, die wir entschlüsselt haben, ging nicht hervor, wer genau betroffen war, da es sich nicht um ESET-Kunden handelt. Allerdings konnten wir anhand der Kanalnamen zumindest die Anzahl der von EchoCreep kompromittierten Opfer ermitteln. Wir entdeckten, dass diese Namen entweder die IP-Adresse des Opfers oder eine Kombination aus der IP-Adresse und dem Hostnamen des Opferrechners waren. Da wir vier eindeutige Kanäle mit dieser Namenskonvention gefunden haben, gehen wir davon aus, dass es vier Opfer gibt.

Bei der ersten Ausführung versucht EchoCreep nicht, einen neuen Kanal zu erstellen, sondern sendet eine Nachricht mit der Meldung " Up Success" an einen bereits bestehenden Kanal (siehe Abbildung 5 und Abbildung 6). Dies deutet darauf hin, dass die Kanäle vor der Ausführung der Hintertür erstellt wurden, was darauf schließen lässt, dass die Betreiber die Ziele entweder kannten oder die erforderlichen Informationen nach dem ersten Zugriff exfiltriert haben.

Figure 5. EchoCreep Discord Up Success message
Abbildung 5. EchoCreep Discord Up Success Nachricht
Figure 6. EchoCreep backdoor Up Success message
Abbildung 6. EchoCreep-Backdoor Up Success-Nachricht

Bei den frühesten Nachrichten, die zwischen dem 21. März 2024 und dem 31. März 2025 gesendet wurden, handelt es sich offenbar um Operator-Testbefehle. Abbildung 7 zeigt, dass die Bedrohungsakteure einige Informationen über ihre lokalen IP-Konfigurationen darin hinterlassen haben.

{{CODE_BLOCK_1}}

Abbildung 7. Windows ipconfig-Ausgabe

Viele der anderen früheren Meldungen enthielten Müllwerte, die möglicherweise als Test zur Feststellung einer ordnungsgemäßen Kommunikation verwendet wurden, wie in Abbildung 8 zu sehen ist.

Figure 8. Junk commands
Abbildung 8. Junk-Befehle

Bald darauf sahen wir Download-Vorgänge wie in Abbildung 9, die die Entwicklung von fortgeschrittenen Befehlen zeigen.

Figure 9. frp download
Abbildung 9. frp-Download

Außerdem sind in Abbildung 10 Testaktivitäten zu sehen, bei denen es sich möglicherweise um frühe Anpassungen des Persistenzmechanismus handelt, den Webworm später gegen seine Opfer einsetzen wird. Interessant ist auch, dass der Befehl run anstelle des später verwendeten Shell-Befehls ausgeführt wird, was unsere Vermutung stützt, dass es sich um frühe Tests handelt.

Figure 10. Test VBScript
Abbildung 10. Test-VBScript

Die erste tatsächliche Kompromittierung fand am 9. April 2025 statt, als in den Protokollen neue Up Success-Meldungen in Verbindung mit einem neuen Kanalnamen auftauchten. Kurz nach der ersten Kompromittierung verwendete der Bedrohungsakteur Shell-Befehle, um curl zum Herunterladen von Dateien auszuführen.

GraphWorm

GraphWorm ist eine weitere neue Backdoor, die von Webworm eingesetzt wird. Er führt sich selbst aus, sobald sich das Opfer auf dem Rechner anmeldet. GraphWorm verwendet die Microsoft Graph API für die C&C-Kommunikation, was zeigt, dass Webworm über eine neue Infrastruktur verfügt, um Opfer zu kompromittieren, indem er Informationen in einem Microsoft Graph-Mandanten speichert. Nach dem, was wir gesehen haben, verwendet die Backdoor ausschließlich OneDrive, um Befehle zu empfangen und Opferdaten zu senden. Die Daten, die an dieser Kommunikation beteiligt sind, werden zunächst mit AES-256-CBC verschlüsselt, indem OpenSSL EVP-Bibliotheksaufrufe verwendet werden, und dann base64-kodiert. GraphWorm ermöglicht auch die Konfiguration von Proxy-Einstellungen, so dass jeglicher Datenverkehr durch den angegebenen Proxy getunnelt wird.

Bei der ersten Ausführung erstellt die Backdoor eine eindeutige Opfer-ID, indem sie die IP-Adresse des Netzwerkadapters, die Prozessor-ID und die Seriennummer eines physischen Geräts mithilfe des WMI-Frameworks miteinander verknüpft.

Die eindeutige ID wird im Prozess zum Umbenennen oder Erstellen eines neuen OneDrive-Ordners innerhalb des Mandanten verwendet. Jeder Ordner ist einzigartig für einen Kompromiss und enthält spezifische Unterordner unter jedem Opfer. Die drei Unterordner /files, /result und /job werden zum Speichern von Dateien, Ergebnissen von auf dem Opfercomputer ausgeführten Befehlen bzw. von Aufträgen, die von den Betreibern in die Warteschlange gestellt wurden, verwendet.

Nachdem der Ordner erfolgreich erstellt wurde, sammelt die Hintertür Informationen über den Opfercomputer, was zu dem in Abbildung 11 dargestellten JSON-Objekt führt.

{
    "Host Name": "<computer_name>",
    "IP Address": "<ip>",
    "MAC Address": "<mac>",
    "Operating System": "<os>",
    "Privilege": "<Admin|Regular User>",
    "Time Zone": "<UTC-XXXX>",
    "User Name": "<username>",
    "Workgroup": "<workgroup",
    "publicKey": "<key>"
}

Abbildung 11. Struktur der Konfiguration

Die Befehle, die GraphWorm über OneDrive empfängt, sind in Tabelle 2 in der Reihenfolge ihrer Entdeckung beschrieben.

Tabelle 2: GraphWorm-Befehle

Command Arguments Description
keyExchange String <adminPublicKey> This value is set in memory and unfortunately its purpose is not easily identifiable. It could be used to set a public key within the application to gain reverse shell access.
sessionKey String <sessionKey> String <keyId> Another set of values set within memory and not evident how they are used. Believed to be an RSA private key and AES key to be updated in memory and used for cryptographic functions.
kill N/A Stops the execution of the backdoor.
shell N/A Spawns a new instance of cmd.exe.
exec File path Executes a new process using CreateProcessW.
upload String <onedrive_path> String <agent_path> Downloads a file based on the OneDrive and agent path. The <onedrive_path> is believed to be the full path as it appears in OneDrive, resulting in the format of /me/drive/root:/<onedrive_path>, and <agent_path> is the full file path as it appears on disk.
sleep Integer Updates sleep duration.
poll Integer Updates sleep duration for an undetermined reason. Possibly because the development of commands is still ongoing.
rest Integer Sleep for a duration of time.
upgrade JSON text The JSON text contains configuration settings to update fields in memory, followed by writing of these changes to the config.dat file on disk.
download String <onedrive_path> String <file_path> Uploads the file from the provided <file_path> to the path desired in OneDrive. <onedrive_path> is believed to be in the format of /me/drive/root:/<uniqueid>/<filename>/:content.
heartbeat Integer <min> Integer <max> Used to create a random delay period between the min and max of how long to wait to update alive.txt.

Bei unseren Recherchen haben wir festgestellt, dass die Ergebnisse nach Abschluss des Shell-Befehls in die Datei beacon_shell_output.txt geschrieben und in einem temporären Verzeichnis gespeichert wurden. Um diese umfangreichen Shell-Befehlsausgaben hochzuladen, nutzten die Anwender höchstwahrscheinlich den Microsoft Graph API-Endpunkt /createUploadSession, da die Backdoor mit einer Cloud-Instanz von OneDrive arbeitet.

WormFrp

WormFrp ist ein Proxy-Tunneling-Tool, das sich an das bestehende Fast-Reverse-Proxy-Dienstprogramm (frp) anlehnt, das auch von Webworm verwendet wird. Die Bedrohungsakteure erweiterten frp um benutzerdefinierte Funktionen, so dass das Tool seine Konfigurationswerte von einem kompromittierten Amazon S3-Bucket, wamanharipethe.s3.ap-south-1.amazonaws[.]com, beziehen kann.

Der kompromittierte S3-Bucket enthält mehrere Dateien mit .txt-Erweiterungen, die mit AES im ECB-Modus verschlüsselt sind. Jede WormFrp-Instanz ist mit einem eindeutigen AES-Schlüssel fest codiert und ruft eine eindeutige Datei aus dem S3-Bucket ab. Die Konfigurationsdatei wird während der Ausführung von WormFrp aktualisiert, um Informationen an den Betreiber zurückzusenden, um zu ermitteln, von wo aus der Tunnel eine Verbindung herstellt.

Für die Ausführung von WormFrp ist ein Befehlszeilenargument erforderlich. Nachdem er seine Konfiguration aus dem S3-Bucket bezogen hat, versucht WormFrp, sich bei einem frp-Server anzumelden und öffnet einen Reverse-Proxy und einen TCP-SOCKS5-Proxy. Ausgehend von den beobachteten Beispielen werden der Benutzername und das Passwort immer zufällig generiert.

Jede Instanz von WormFrp verbindet sich mit einem frp-Server über eine öffentliche IP-Adresse. Sobald der Reverse-Proxy konfiguriert ist, können vom Rechner des Opfers aus zusätzliche Netzwerkaktivitäten beobachtet werden.

ChainWorm

ChainWorm ist ein weiteres benutzerdefiniertes Proxy-Tool, das von Webworm-Betreibern verwendet wird. Die Hauptfunktion von ChainWorm scheint darin zu bestehen, die Proxy-Infrastruktur von Webworm zu erweitern, indem ein Port auf dem Rechner geöffnet wird, auf dem es installiert ist. Webworm kann dieses Tool verwenden, um Proxys zu verketten, bei denen speziell erstellte Daten über den Port gesendet werden, der eine Verbindung zu einem anderen entfernten System herstellt, und den Datenverkehr über eine unbestimmte Anzahl von Sprüngen an das nächste Ziel weiterleiten.

In der Regel ist der Port, der auf dem betroffenen Host geöffnet wird, im Tool fest kodiert. Anschließend werden TCP-Verbindungen über den fest kodierten Port geöffnet, um alle Übertragungen zu empfangen, die zu weiteren ausgehenden Verbindungen mit einer direkten IP-Adresse oder einem Hostnamen und dem entsprechenden Port führen würden.

Anhand der Kombination aus Hostname und Port wird eine Verbindung zum nächsten Schritt in der Kette hergestellt. Wenn die Verbindungen zwischen Quelle und Ziel hergestellt sind, werden alle durchgelassenen Daten an den nächsten vorgelagerten Hop in der Kette weitergeleitet. Wenn zu irgendeinem Zeitpunkt eine Ausnahme auftritt, wird die Quelle mit der Bytefolge 0x05 01 00 01 00 00 00 00 00 00 00 benachrichtigt, bevor sie versucht, die Verbindung wiederherzustellen.

SmuxProxy

SmuxProxy ist ein Dienstprogramm, das auf iox basiert, einem Werkzeug für Portweiterleitung und Intranet-Proxy. Zusätzlich zu den bestehenden iox-Funktionen enthält SmuxProxy kleine Anpassungen, um die Eingabe einer fest kodierten Server-IP-Adresse und eines Ports zu ermöglichen, was das Ablegen und Ausführen für den Benutzer erleichtert. Es kann auch einen Zufallsschlüssel und einen Initialisierungsvektor für verschlüsselte Kommunikation erzeugen.

WormSocket

Der letzte der neuen benutzerdefinierten Proxys von Webworm ist WormSocket, ein Tool, das konfigurierte Server nutzt, auf denen socket.io läuft, um einen Proxy für Webanfragen einzurichten. WormSocket ermöglicht ein hochgradig konfigurierbares und skalierbares Proxy-Netzwerk, so dass jederzeit mit bestimmten Knoten interagiert werden kann.

Seine Konfiguration beruht sowohl auf fest kodierten Werten als auch auf Kommandozeilenargumenten. WormSocket akzeptiert ein optionales Kommandozeilenargument --proxy, gefolgt von einer URI, die eine Basisauthentifizierung enthält und als Konfiguration zur Erstellung eines WebProxy-Objekts verwendet wird. Der Proxy wird dann zusätzlich zu einer Verbindung zu einem Websocket verwendet. Die Konfigurationen für diesen Web-Socket sind in WormSocket fest einprogrammiert.

Sobald WormSocket gestartet ist, stellt es zunächst eine Verbindung zur konfigurierten IP-Adresse und zum Port her, indem es versucht, Verbindungen über die Schemata ws, wss, http und https herzustellen. Sobald eine erfolgreiche Verbindung hergestellt ist, wird eine asynchrone Aufgabe gestartet, um neue Nachrichten zu empfangen und zu senden. Es gibt vier mögliche Nachrichtentypen, die in Tabelle 3 ausführlich beschrieben sind.

Type Message class Values Description
1 InitiateForwarderClientReq String <ForwardedClientId> Uses the IpAddress field to perform a DNS lookup to obtain the host address of a possible domain passed through, the result of which is used to create a new TCP client with the Port. Once the client establishes connectivity, it is stored within a dictionary of ForwardedClientId and TcpClient pairs.
In addition, a new InitiateForwarderClientRep message object is created with the same information used to build the TCP client, and sent with the messages read through the client and stored in a ConcurrentQueue for later use.
String <IpAddress>
Integer <Port>
2 InitiateForwarderClientRep String <ForwarderClientId> ForwarderClientId is used to look up an already configured TCP client created by InitiateForwarderClientReq in the client dictionary, all other values appear to not be in use. Once the TCP client is retrieved, new messages are read and stored in a ConcurrentQueue for later use.
String <BindAddress>
Integer <BindPort>
Integer <AddressType>
Integer <Reason>
3 SendDataMessage String <ForwarderClientId> Sends the Data through base64 encoding followed by the TCP client associated with ForwarderClientId.
Bytes[] <Data>
4 CheckInMessage String <MessengerId> Assigns MessengerId to the internal MessengerId, which does not appear to be used for anything.

Schlussfolgerung

Webworm ist eine mit China verbündete APT-Gruppe, die seit mindestens 2022 aktiv ist. Sie setzt ein sich ständig weiterentwickelndes Toolkit ein, das hauptsächlich aus Backdoors und einer Kombination aus Open-Source- und benutzerdefinierten Proxy-Dienstprogrammen besteht. In den von uns beobachteten Kampagnen im Jahr 2025 begann Webworm mit Discord-basierten (EchoCreep) und Microsoft Graph API-basierten (GraphWorm) Backdoors. Die Gruppe stellt auch weiterhin Dateien in GitHub-Repositories bereit, und wir können nur vermuten, dass sie dies auch in Zukunft tun wird.

Durch unsere Analyse hatten wir das Glück, von einem Server ausgeführte Befehle wiederherzustellen, die einen Einblick in die potenziellen anfänglichen Zugriffstechniken der Gruppe gaben, indem wir einen Open-Source-Schwachstellen-Scanner verwendeten und einige ihrer Ziele identifizierten.

Es ist klar, dass es sich bei Webworm um eine sehr aktive APT-Gruppe handelt, die auch weiterhin nach neuen Werkzeugen suchen wird, um ihre Opfer zu kompromittieren, sei es von einem anfänglichen Zugangspunkt aus oder nach der Kompromittierung.

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

Eine umfassende Liste von Kompromissindikatoren (Indicators of Compromise, IoCs) und Beispielen finden Sie in unserem GitHub-Repository.

Dateien

SHA-1 Filename Detection Description
CB4E50433336707381429707F59C3CBE8D497D98 SearchApp.exe WinGo/Agent.ZK EchoCreep backdoor using Discord for C&C.
1DF40A4A31B30B62EC33DC6FECC2C4408302ADC7 ssh.exe WinGo/HackTool.Proxy.AE WormFrp proxy tool.
7DCFE9EE25841DFD58D3D6871BF867FE32141DFB svc.exe MSIL/HackTool.Proxy.H WormHole proxy tool.
77F1970D620216C5FFF4E14A6CCC13FCCC267217 C2OverOneDrive_v0316.exe Win32/Agent.VWD GraphWorm backdoor using the Microsoft Graph API for C&C.
948159A7FC2E688386864BEA59FD40DFFC4B24D6 MessengerClient.exe MSIL/HackTool.Proxy.I WormSocket proxy tool.
A3C077BDF8898E612CCD65BC82E7960834ADB2A9 dsocks.exe WinGo/Riskware.Iox.L SmuxProxy, a custom iox with hardcoded IP.

Netzwerk

IP Domain Hosting provider First seen Details
N/A wamanharipethe.s3.ap-south-1.amazonaws[.]com N/A 2025-04-14 Compromised S3 for frp configurations and data exfiltration.
45.77.13[.]67 N/A Vultr Holdings, LLC 2025-04-07 WormSocket web socket server.
64.176.85[.]158 N/A The Constant Company, LLC 2025-06-28 SmuxProxy server.
104.243.23[.]43 N/A IT7 Networks Inc 2025-04-09 SmuxProxy server.
108.61.200[.]151 N/A Vultr Holdings, LLC 2025-04-10 WormFrp proxy server.
144.168.60[.]233 N/A IT7 Networks Inc 2025-06-30 Reverse shell IP discovered on SmuxProxy server.

MITRE ATT&CK-Techniken

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

Tactic ID Name Description
Reconnaissance T1595.002 Active Scanning: Vulnerability Scanning Webworm utilized the open-source vulnerability scanner nuclei against targets.
T1595.003 Active Scanning: Wordlist Scanning Webworm used dirsearch, which leverages wordlists, to perform web directory scanning on targets.
Resource Development T1588.006 Obtain Capabilities: Vulnerabilities Webworm used publicly available exploit code for post-authentication remote code execution.
T1583.004 Acquire Infrastructure: Server Servers for WormFrp, SmuxProxy, and WormSocket are hosted on cloud services operated on Vultr and IT7 Network ASNs.
T1583.003 Acquire Infrastructure: Virtual Private Server Webworm makes use of SoftEther VPN servers that have been seen hosted on Vultr cloud services.
T1584.006 Compromise Infrastructure: Web Services Webworm has been seen compromising S3 buckets as well as using tools like nuclei to find footholds.
T1608.002 Stage Capabilities: Upload Tool Webworm staged tools in its GitHub repo for direct download onto compromised systems.
Execution T1059.003 Command and Scripting Interpreter: Windows Command Shell EchoCreep and GraphWorm both use the Windows command line to execute operator commands.
T1053.005 Scheduled Task/Job: Scheduled Task EchoCreep is executed under the custom-created MicrosoftSSHUpdate scheduled task.
Persistence T1547.001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder GraphWorm persists by making updates to registry Run keys.
Defense Impairment T1070.004 Indicator Removal: File Deletion GraphWorm cleans up a created beacon file after successful upload.
T1112 Modify Registry GraphWorm makes modifications to registry Run keys for persistence.
T1027.013 Obfuscated Files or Information: Encrypted/Encoded File GraphWorm and EchoCreep use encryption and encoding techniques to obfuscate data.
T1550.001 Use Alternate Authentication Material: Application Access Token GraphWorm and EchoCreep use API keys to communicate with the C&C infrastructure.
T1078.004 Valid Accounts: Cloud Accounts GraphWorm uses a valid cloud account to access Microsoft Graph APIs.
T1070.006 Indicator Removal: Timestomp EchoCreep contains a modified timestamp attribute.
Lateral Movement T1021.007 Remote Services: Cloud Services Webworm makes use of a compromised S3 bucket to use as a file staging zone.
Collection T1005 Data from Local System Both EchoCreep and GraphWorm can collect data from the local system.
T1074.001 Data Staged: Local Data Staging GraphWorm stages a beacon file locally before uploading to the C&C.
T1074.002 Data Staged: Remote Data Staging GraphWorm stages files and tasks within OneDrive via the Microsoft Graph API.
Command and Control T1071.001 Application Layer Protocol: Web Protocols EchoCreep, GraphWorm, and WormSocket make use of HTTP and the WebSocket protocol.
T1132.001 Data Encoding: Standard Encoding EchoCreep, GraphWorm, and WormSocket make use of base64 encoding.
T1573.002 Encrypted Channel: Asymmetric Cryptography EchoCreep, GraphWorm, WormSocket, and WormFrp use AES in some capacity.
T1090.003 Proxy: Multi-hop Proxy WormSocket and ChainWorm create multiple proxy hops.
T1090.002 Proxy: External Proxy WormFrp, ChainWorm, WormSocket, SmuxProxy, and GraphWorm have the capability to connect to external proxies.
T1090.001 Proxy: Internal Proxy ChainWorm and WormSocket can create internal proxies.
T1102.002 Web Service: Bidirectional Communication EchoCreep and GraphWorm use Discord and the Microsoft Graph API for C&C infrastructure.
Exfiltration T1041 Exfiltration Over C2 Channel EchoCreep and GraphWorm exfiltrate data to their respective C&C infrastructures.
T1567.002 Exfiltration Over Web Service: Exfiltration to Cloud Storage GraphWorm exfiltrates data to OneDrive via the Microsoft Graph API.