Produktivitätssoftware ist zu einem der unverzichtbarsten und zugleich am stärksten ausgenutzten Verbreitungswege moderner Bedrohungskampagnen geworden. Die Beliebtheit kostenloser Produktivitätsprogramme erleichtert die Verbreitung von Projextor, da Nutzer diesen Anwendungen häufig vertrauen und sie herunterladen, ohne zu überprüfen, woher sie stammen.
Diese Beobachtung ist nicht neu. Bereits bei früheren Malware-Kampagnen wie TamperedChef nutzten Bedrohungsakteure Websites mit hohen Platzierungen in den Suchergebnissen, um Nutzer zum Download eines vermeintlich funktionierenden „Produktivitätstools“ oder einer „Kommandozentrale“ für die PDF-Verwaltung zu verleiten.
Auf Grundlage der von uns gesammelten Samples konnten wir eine Gruppe Electron-basierter Anwendungen identifizieren, darunter Kitchen Canvas, Food or Meal Formula, DocConvertWizard sowie weitere PDF-Konvertierungsprogramme unter unterschiedlichen Namen. Unter einer funktionierenden Benutzeroberfläche verbargen sie jeweils dieselbe Malware.
Die Anwendungen verschaffen sich unbemerkt die Möglichkeit, eingeschleuste Skripte dynamisch auszuführen und über Electron-APIs auf Funktionen zur Desktop-Aufnahme zuzugreifen.
Eine auffällige URL ist:
hxxps://doceditorinc[.]com/
Die Domain scheint bewusst so gestaltet worden zu sein, dass sie den legitimen Online-Dienst zur Dokumenten- und Bildbearbeitung imitiert:hxxps://doceditor[.]in
Installation und Infektionskette
Das Erstellen von Ausgaben, die Interaktion mit lokalen Inhalten und die Nutzung von Systemressourcen sind erwartbare Verhaltensweisen einer Produktivitätsanwendung. Dadurch kann sich bösartiges Verhalten in einem Strom legitimer Aktivitäten verbergen, was es schwieriger macht, eine Kompromittierung zu erkennen.
Die erste Stufe der Kampagne besteht aus einem Installer oder Downloader, über den die Hauptanwendung abgerufen wird. Einige Samples werden mit NSIS (Nullsoft Scriptable Install System) verpackt, während andere Squirrel Installer oder Inno Setup verwenden. Unabhängig von der jeweiligen Verpackungsmethode erfüllt die Datei der ersten Stufe denselben Zweck: Sie liefert die Electron-basierte Produktivitätsanwendung der zweiten Stufe aus.
Beispielsweise enthält PDFGrip_646990.exe (SHA-256 71656539cc644513396f56100ffb56f9ef9eaa5b7a16b0773d6e5d370a912a88) in seinem NSIS-Skript den Download-Link: hxxps://conv.doceditorinc[.]com/latest/part
Zum Zeitpunkt der Analyse wurde über diesen Link die Datei mit dem SHA-256-Hash 4ce5e5768d2f9f71e2835ab8ebc4a2191d436ca3a990a56e9bc264235c7b5b55 als zweite Stufe heruntergeladen. Sie enthält die Funktionalität von main.js und preload.js, die in den folgenden Abschnitten beschrieben wird.
Missbrauch der Electron-Preload-Schicht
Electron ist ein plattformübergreifendes Anwendungsframework, das Chromium und Node.js kombiniert und Entwicklern ermöglicht, Desktop-Anwendungen mit Webtechnologien wie HTML, CSS und JavaScript zu erstellen. Im Gegensatz zu herkömmlichen Webanwendungen können Electron-Anwendungen über Node.js-APIs auf native Funktionen des Betriebssystems zugreifen. Dazu gehören beispielsweise der Zugriff auf das Dateisystem, die Ausführung von Prozessen, Interprozesskommunikation (IPC) und die Interaktion mit lokalen Systemressourcen.
Um die Kommunikation zwischen dem Chromium-Renderer-Prozess und privilegierten Node.js-Funktionen zu ermöglichen, verwendet Electron eine Komponente, die als Preload-Skript bezeichnet wird. Das Preload-Skript wird ausgeführt, bevor der Renderer-Prozess vollständig initialisiert ist, und dient als Brücke zwischen der Browserumgebung und den Node.js-APIs. Dadurch können Anwendungsentwickler gezielt privilegierte Funktionen für Webinhalte verfügbar machen.
Die Haupt- und Preload-Skripte werden im Ressourcenverzeichnis der Anwendung installiert und beim Start der Anwendung automatisch ausgeführt.
%AppData%\{Application Name}\resources\app\lib\preload.js
%AppData%\{Application Name}\resources\app\lib\main.js
Der folgende Codeausschnitt zeigt die Datei main.js der Anwendung PDF Grip. Sie weist Electron an, preload.js bei jedem Start der Anwendung automatisch zu laden und auszuführen. Da preload.js ausgeführt wird, bevor die Benutzeroberfläche angezeigt wird, dient es als Einstiegspunkt der Anwendung zum Laden zusätzlicher JavaScript-Module.
Die Einstellungen in main.js sind sehr unsicher. Die Electron-Anwendung verwendet contextIsolation:false. Das bedeutet, dass die Remote-Website über die durch das Preload-Skript hinzugefügten Node.js-Funktionen Zugriff auf das System erhält.
In modernen Electron-Versionen ist diese Einstellung standardmäßig auf true gesetzt. contextIsolation: false wird nur dann verwendet, wenn ein Entwickler die Funktion ausdrücklich deaktiviert hat.
Warnungen wurden mit disableOldBuildWarning bewusst deaktiviert. Dadurch werden Warnungen bei der Verwendung veralteter und unsicherer Electron-Versionen unterdrückt. Wie auch aus Kommentaren der Entwickler im Code hervorgeht, wurde die Anwendung bewusst unsicher konfiguriert.
Eine der besorgniserregendsten Erkenntnisse ist die Fähigkeit der Anwendung, beliebige JavaScript-Module dynamisch zu laden und auszuführen. Dadurch können Bedrohungsakteure nach der Installation neue Funktionen hinzufügen und flexibel beliebige Aktionen aus der Ferne ausführen, ohne den ursprünglichen Anwendungscode verändern zu müssen.
Desktop Capture Capability
Die Anwendung implementiert außerdem Funktionen zur Desktop-Aufnahme über Electron. Das Preload-Skript enthält eine benutzerdefinierte Screen-Share-Picker-Schnittstelle, die verfügbare Desktops und Anwendungsfenster auflistet, Vorschaubilder anzeigt und Nutzern die Auswahl einer Aufnahmequelle ermöglicht. Die Sicherheitsauswirkungen dieser Funktion sind erheblich. Bei Missbrauch könnten Funktionen zur Desktop-Aufnahme es Bedrohungsakteuren ermöglichen, Nutzeraktivitäten zu überwachen, sensible Dokumente aufzuzeichnen, Authentifizierungsprozesse zu beobachten und Informationen zu erfassen, die innerhalb von Unternehmensanwendungen, Browsern, E-Mail-Clients und Kollaborationsplattformen angezeigt werden.
Im Gegensatz zu herkömmlichen Methoden zum Diebstahl von Zugangsdaten, die auf gespeicherte Geheimnisse abzielen, können Bildschirmaufnahmen Informationen offenlegen, die ausschließlich während einer aktiven Benutzersitzung sichtbar sind.
Dies zeigt, wie das Preload-Skript über Electron-IPC-Kommunikation Quellen für Desktop-Aufnahmen anfordert. Dadurch erhält die Anwendung Einblick in die aktive Desktop-Umgebung des Nutzers, einschließlich verfügbarer Monitore und geöffneter Anwendungsfenster.
Obwohl Funktionen zur Desktop-Aufnahme an sich nicht zwangsläufig bösartig sind, erhöht ihr Vorhandensein in Produktivitätsanwendungen das Risikoprofil der Software erheblich – insbesondere in Kombination mit der Möglichkeit, beliebigen JavaScript-Code auszuführen.
Fazit
Diese Anwendungen sind nicht gefälscht; sie tun tatsächlich das, was sie versprechen. Problematisch ist jedoch, dass sie zusätzlich Funktionen enthalten, mit denen weiterer JavaScript-Code zur Laufzeit geladen und ausgeführt werden kann. Dadurch erhält die Anwendung Fähigkeiten, die weit über das hinausgehen, was von einem Produktivitätstool zu erwarten wäre.
Obwohl die Anwendungen unterschiedliche Namen und Einsatzzwecke haben, hat unsere Analyse ergeben, dass sie dasselbe Electron-Framework sowie dieselbe Implementierung von main.js und preload.js verwenden. Dies deutet darauf hin, dass sie Teil derselben Kampagne sind oder auf derselben Codebasis entwickelt wurden. Wir verfügen jedoch nicht über genügend Beweise, um zu dem Schluss zu kommen, dass sie vom selben Bedrohungsakteur entwickelt oder betrieben wurden.
Dies ist eine Erinnerung daran, dass selbst vollständig funktionsfähige Anwendungen nur aus vertrauenswürdigen Quellen heruntergeladen und vor der Installation überprüft werden sollten.
MITRE ATT&CK Mapping
Technique | ID | Description |
User Execution: Malicious File | T1204.002 | User downloads and executes the installer |
Masquerading | T1036 | Applications present themselves as legitimate productivity tools |
JavaScript | T1059.007 | Dynamically loads and executes injected JavaScript files |
Screen Capture | T1113 | Implements Electron desktop capture functionality |
Inter-Process Communication | T1559 | Uses Electron IPC channels
|
Match Legitimate Resource Name or Location | T1036.005 | Lookalike domain and branding imitate legitimate services |
IOCs:
Hashes | G DATA Detection |
A799417BD79060D63E93682F339FBE2868DE3881F9C5865D9B583F5B715C70A9 | Win32.Malware.Projextor.E |
71656539CC644513396F56100FFB56F9EF9EAA5B7A16B0773D6E5D370A912A88 | Win32.Malware.Projextor.E |
e7bc36c7345b3894bc1da3d18ff3dbf0a20713d17b93a585ac0da65776d29027 | Win32.Malware.Projextor.E |
3C1DBC3F56E91CC79F0014850E773A7F12BBFEF06680F08F883B2BF12873ECCC | Win32.Malware.Projextor.E |
D50CA2FA212DF1C1FF69B5D26BA594BD39BFD86A71B068A650CC577E5DC9A94E | Script.Malware.Projextor.B |
C21EB14BA63E943DB5EA9AB64AF02A50A17260C7D8538A133C4F6E0957D36F47 | Script.Malware.Projextor.% YWJ8N9 |
4ce5e5768d2f9f71e2835ab8ebc4a2191d436ca3a990a56e9bc264235c7b5b55 | Script.Malware.Projextor.B |
hxxps://doceditorinc[.]com | |
hxxps://conv.doceditorinc[.]com/latest/part | |
hxxps://meal-formula[.]com/ | |
hxxps://kitchen-canvas[.]com/ | |
hxxps://flipformatpdf[.]com/ | |
hxxps://pdfgrip[.]com/ |








