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.
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.
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.
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.
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.
Bald darauf sahen wir Download-Vorgänge wie in Abbildung 9, die die Entwicklung von fortgeschrittenen Befehlen zeigen.
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.
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 |
| CB4E5043333670738142 |
SearchApp.exe | WinGo/Agent.ZK | EchoCreep backdoor using Discord for C&C. |
| 1DF40A4A31B30B62EC33 |
ssh.exe | WinGo/HackTool. |
WormFrp proxy tool. |
| 7DCFE9EE25841DFD58D3 |
svc.exe | MSIL/HackTool. |
WormHole proxy tool. |
| 77F1970D620216C5FFF4 |
C2OverOneDrive_v |
Win32/Agent.VWD | GraphWorm backdoor using the Microsoft Graph API for C&C. |
| 948159A7FC2E68838686 |
MessengerClient. |
MSIL/HackTool.P |
WormSocket proxy tool. |
| A3C077BDF8898E612CCD |
dsocks.exe | WinGo/Riskware. |
SmuxProxy, a custom iox with hardcoded IP. |
Netzwerk
| IP | Domain | Hosting provider | First seen | Details |
| N/A | wamanharipethe. |
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. |





