Paketmanager npm: Remote Access Trojan tarnt sich als JSON-Tool

Die zwei Pakete jdb.js und db-json.js versuchen njRAT zu installieren und die Windows-Firewall passend zu öffnen.

Lesezeit: 2 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 11 Beiträge

(Bild: Serg001/Shutterstock.com)

Von
  • Rainald Menge-Sonnentag

Erneut hat Sonatype Schadcode in zwei Paketen entdeckt, die im Repository des JavaScript-Paketmanager npm zu finden waren. Die inzwischen entfernten Pakete jdb.js und db-json.js stammen vom selben Autor.

Bei jdb.js handelt es sich nicht, wie der Name suggerieren mag, um eine einfache JavaScript-Datei, sondern um ein npm-Paket, das aus drei Dateien besteht: der üblichen Manifestdatei package.json, einer verschleierten JavaScript-Datei namens module.js und der unter Windows ausführbaren Datei "patch.exe".

Letztere enthält den eigentlichen Schadcode in Form eines in .NET geschriebenen njRAT-Dropper. Der Remote Access Trojan (RAT), der auch Bladabindi heißt, tauchte erstmals vor sieben Jahren auf und führte ein Jahr später dazu, dass Microsofts die Umleitung von Domains des DynDNS-Dienstes NoIP erzwang, der maßgeblich zur Verbreitung des Trojaners beigetragen haben soll. 2017 schoben Hacker njRAT der Amaq News Agency unter, einer Nachrichtenagentur, die der Terrormiliz OS zugeschrieben wird.

Beim Ausführen kopiert sich patch.exe in einen lokalen TEMP-Ordner und nennt sich anschließend in dchps.exe um. Bevor die Software schließlich die Kommunikation mit einem Command-and-Control-Server (C2) unter 46.185.116.2:5552 aufnimmt, greift sie in die Regeln der Windows-Firewall ein und versucht, über den Network-Shell-Befehl Zugriff nach außen zu erhalten: netsh firewall add allowedprogram "C:\Users\admin\AppData\Local\Temp\dchps.exe" "dchps.exe" ENABLE.

Ein Blick in die Strings, die hartkodiert in patch.exe zu finden sind, zeigt unter anderem die IP-Adresse des C2-Servers.

(Bild: Sonatype)

Die genannte IP-Adresse des C2-Servers tauchte bereits bei Mitte November entdeckten CursedGrabber-Schadpaketen auf. Laut dem Sonatype-Blog können Angreifer nach einer erfolgreichen Attacke unter anderem Tastatureingaben aufzeichnen, Registry-Werte ändern, Windows herunterfahren oder neu starten, kritische Systemprozesse neu starten oder abschießen und zu Usern über das SpVoice-Interface mittels Sprachsynthese sprechen.

Die JavaScript-Datei des Pakets module.js enthält zahlreiche Base64-kodierte Blöcke, die laut Sonatype beim Entpacken zu unverständlichem Kauderwelsch werden. Das Skript führt wohl einige verdächtige Aktivitäten wie das Sammeln und Erkunden von Daten aus, bevor es schließlich patch.exe aufruft.

Das zweite auf npm veröffentlichte Paket db-json.js geht im Vergleich zum ersten wohl deutlich trickreicher vor. Zunächst einmal fand sich auf npm dazu die zugehörige Readme-Datei, die JSONDB als leicht zu verwendendes Modul zum Erstellen von Datenbanken auf Basis von JSON-Dateien beschreibt.

Die zusätzlich hinter zahlreichen Leerzeilen zu findende Zeile findet sich erst ab Version 1.0.4 im Paket.

(Bild: Sonatype)

Ein Blick in den Code zeigt offensichtlich auf den ersten Blick reguläres JavaScript, das tatsächlich die beschriebene Funktionsweise nahelegt. Der eigentlich Fallstrick findet sich in der zugehörigen package.json-Manifestdatei, die das Schadpaket jdb.js als Dependency listet. Für ein Update als Version 1.0.4 findet sich zusätzlich die Zeile require('jdb.js'); am Ende der Datei dbmanager.js – und zwar nach gut 200 Leerzeilen im Code.

"Jetzt ist schon wieder was passiert", möchte man in Anlehnung an die Brenner-Romane des österreichischen Schriftstellers Wolf Haas sagen. Der Angriff reiht sich in eine lange Liste ähnlicher Meldungen ein. npm hat zwar nach einer deutlichen Zunahme der Angriffe vor drei Jahren zusätzliche Sicherheitsfunktionen eingeführt, die aber niemals vollständigen Schutz gewähren können. Dass scheinbar funktionstüchtige Pakete Schadcode nachladen, ist dabei ein bekanntes Muster.

Daneben nutzen die Verteiler der Pakete vor allem Brandjacking wie im Fall des Anfang November entdeckten Pakets twilio-npm, das nahelegen sollte, es käme von Twilio. Auch das Typosquating ist ein beliebtes Angriffsmustern: Pakete erhalten dabei Namen, die den Bezeichnungen beliebter Pakete ähneln. Zu den beiden neuen Schadpaketen existieren mit jdb und db-json jeweils legitime Pendants ohne .js im Namen.

Auch wenn der aktuelle Angriff Windows-Rechner zum Ziel hat, existieren durchaus Angriffe auf andere Betriebssystem. So zielte der Twilio-Brandjacking-Angriff ausschließlich auf Linux und andere Unix-basierte Systeme. Der Angriff nutzte übrigens ebenso wie der jetzige unterschiedliche Versionen und ging dabei noch ein wenig raffinierter vor, indem die zuerst veröffentlichte Version 10.0 keinen Schadcode enthielt, sondern erst ab Version 10.1 entsprechende Funktionen hatte.

(rme)