beebright - stock.adobe.com
Wie ein Angriff über das Remote-Desktop-Protokoll abläuft
Mobil arbeitende Mitarbeiter bieten Angreifern legitime Einfallstore, die sie für ihre Zwecke missbrauchen. Kriminelle starten über den Remote-Zugriff vermehrt komplexe Attacken.
Cyberkriminelle starten über den Remotezugriff vermehrt komplexe Attacken auf Opfersysteme, um sich eine nachhaltige Präsenz im angegriffenen System zu verschaffen. Die Fähigkeiten elaborierter Codes legitime Tools wie das Remote Desktop Protocol (RDP) auszunutzen, zeigt die aktuelle Kampagne RDStealer zur automatisierten Cyberspionage. Ziel der Hacker ist es, Zugangsdaten zu kompromittieren und Daten oder Zertifikate zu exfiltrieren.
Die Analyse der komplexen RDStealer-Kampagne zeigt das beängstigende oder beachtenswerte Verbesserungspotenzial der Entwickler von Advanced Persistent Threats (APT). Bei den ersten Versionen der Kampagne im Jahr 2020 nutzten die Hintermänner noch leicht verfügbare Tools wie AsyncRat oder Cobalt Strike. Ab Ende 2021 gingen sie jedoch wie viele andere Cyberkriminelle dazu über, selbst entwickelte Schadsoftware zu verwenden.
Tarnmanöver
Hacker entwickeln komplexe Malware, weil die Abwehrtechnologien Angriffe besser erkennen und abwehren. Im Gegenzug tarnen die Kriminellen ihren Schadcode besser. So verwenden sie als Speicherorte für Schadsoftware zunehmend die Ordner, die Administratoren häufig vom Sicherheitsscan ausschließen. In diesem Fall nutzten sie folgende, an sich unverdächtige Pfade:
- %WinDir%\System32\
- %WinDir%\System32\wbem\
- %WinDir%\Sicherheit\database\
- %PROGRAM_FILES%\f-secure\psb\diagnostics
- %PROGRAM_FILES_x86%\dell\commandupdate\
- %PROGRAM_FILES%\dell\md storage software\md configuration utility\
Angreifer wählen diese Speicherorte, um legitime Software zu imitieren. Sie vermuten offenbar zurecht, dass Administratoren den Anleitungen von Microsoft folgen, wie man etwa den Pfad %WinDir%\security\database nicht mehr durch Sicherheitsprodukte für Endgeräte überprüft. Möglicherweise spekulieren die Angreifer darauf, dass einige Administratoren oder die Sicherheitssoftware den gesamten Ordner von ihren Scans ausblenden, anstatt die zu empfehlenden präziseren und granularen Ausschlüsse vorzunehmen.
Fortgeschrittene Suche nach Daten über legitime Kanäle
Das in Go geschriebene RDStealer ist ein aufschlussreiches Beispiel, wie Hacker ihre Aktivitäten unter dem Remote-Desktop-Protokoll (RDP) tarnen. Sie sammeln dabei schwerpunktmäßig Daten, die ihre Malware aus der Clipboard-Zwischenablage oder aus dem Überwachen von Tastatureingaben (Keylogging) einholt.
Zudem überwacht die Malware eingehende RDP-Verbindungen und übernimmt den virtuellen Kanal des RDP-Protokolls Client Drive Mapping (CDM), der die Daten zwischen dem RDP-Client und dem RDP-Server überträgt. CDM ist für die Anzeige der lokalen Laufwerke des Client-Rechners verantwortlich, der die RDP-Session initiiert.
Administratoren nutzen im legitimen Normalfall diese Funktion, um Dateien zwischen einem Remote-Server und ihrem Administratorarbeitsplatz zu übertragen. Mit dem kompromittierten legitimen CDM sehen nun die Hacker die Daten auf lokalen Laufwerken eines Client-Rechners einer Remote-Desktop-Sitzung und können diese unauffällig übertragen.
Exfiltration für Fortgeschrittene unter Verwendung legitimer Kanäle
Auf kompromittierten Rechnern fand sich RDStealer unter %PROGRAM_FILES%\dell\md storage software\md configuration utility\modular disk service daemon.exe. Folgende Code-Bibliotheken (Pakete) mit den erläuterten Funktionen entdeckten die IT-Sicherheitsforscher:
Paketname | Funktion |
cli | Implementiert die Erfassung des Inhalts aus der Zwischenablage unter Verwendung von Windows-APIs wie OpenClipboard und GetClipboardData. |
key | Implementiert die Erfassung von Tastatureingaben zusammen mit dem Fensternamen. |
main | Agiert als Orchestrator und verwendet die Paketmodule, um die Persistenz einzurichten und die Routine für die Datensammlung zu starten, wenn bestimmte Bedingungen erfüllt sind. |
modules | Implementiert verschiedene Funktionen zum Sammeln und Bereitstellen der Daten für die weitere Exfiltration. |
utils | Implementiert Verschlüsselungs- und Entschlüsselungsfunktionen, Manipulation von Dateiattributen und Protokollfunktion. |
Mit den Hauptfunktionen „cli“ und „key“ startet RDStealer das Sammeln von Daten aus der Zwischenablage und von Tastatureingaben des Hosts. Daraufhin sendet die Malware Daten regelmäßig in verschlüsselten Zeichenfolgen. Die Datenexfiltration erfolgt automatisiert: Sobald die Malware beginnt, Daten zu erfassen, erstellt RDStealer eine Endlosschleife, die die Funktion „diskMounted“ aufruft. „diskMounted“ prüft zum einem regelmäßig die Verfügbarkeit von Terminal-Server-Client-Verbindungen (tsclient) in CDM, welche für die Host-to-Client-Umleitung dienen. Zum anderen fragt die Funktion die Laufwerke C, D, E, F, G oder H ab. Wenn CDM aktiviert ist, erfolgt die Freigabe automatisch und die einzelnen Laufwerke des verbundenen RDP-Clients werden dargestellt.
Gezielte Suche nach Informationen
Liegt eine Freigabe vor, kommen die folgenden Funktionen zum Tragen:
main.notifyMaster: Sie benachrichtigt den Command-and-Control-Server (C2) der Cyberkriminellen, dass ein Client verbunden ist. Die notifyMaster-Funktion stellt eine GET-Anfrage an einen anderen Server im selben Netzwerk, der als Proxy für die Kommunikation mit der C2-Infrastruktur der Angreifer bestimmt ist. Die gesendete URL-Adresse ist das Signal, dass einer der kompromittierten RDP-Hosts einen Versuch unternommen hat, Daten von einem verbundenen Client zu exfiltrieren. Die böswilligen Akteure können die vorbereiteten Daten nun manuell erfassen.
main.DiskEnum: Sie startet die Exfiltration der Daten von einem verbundenen RDP-Client. Vorrangige Ziele der Malware sind dabei spezifische Ordner, darunter mRemoteNG (Multiprotokoll-Fernverbindungsmanager), KeePass (Passwort-Manager) und der Verlauf von Google Chrome.
Cyberkriminelle suchen also aktiv nach Anmeldedaten und gespeicherten Verbindungen zu anderen Systemen. Diese Absicht zeigt auch der nächste Schritt, in dem die Malware einen Client auf Dateien mit bestimmten Erweiterungen an folgenden Orten scannt: %AppData%, %LocalAppData%, Desktop, Documents, Downloads, %ProgramFiles% und %ProgramFiles(x86)%. Folgende Konnektivitätsdaten stehen auf der Suchliste der Hacker.
Daten |
ID |
Details |
.kdb, .kdbx |
kdb |
KeePass-Passwortdatenbank |
confCons.xml |
mre |
mRemoteNG-Verbindungen |
.rdg |
rdg |
Remote-Desktop-Connection-Manager-Verbindungen |
id_rsa |
idrsa |
SSH Private Keys |
.xsh |
xsh |
NetSarang-Xshell-Verbindungen |
.tlp, .bscp |
tlp |
Bitvise-SSH-Client |
.mxtsessions |
mxts |
MobaXterm-Verbindungen |
Alle gefundenen Dateien speichert die Malware in einem ZIP-Archiv auf dem RDP-Host an folgendem Ort: C:\Users\Public\Documents\<ID><timestamp>.dat.
Nachdem die Datenexfiltration vom ferngesteuerten Laufwerk C abgeschlossen ist, beginnt RDStealer mit der Abfrage der Laufwerksbuchstaben D, E, F, G und H, allerdings mit einem etwas anderen Ansatz: Anstatt bestimmte Speicherorte zu scannen, scannt die Malware alle Ordner mit den folgenden Ausnahmen: windows, datareporting, libreoffice, node_modules, all user, default user, user data, .rust, download, desktop, document, assembly, .git, microsoft, winsxs, en-us, mui, .net, dotnet, visual, cache, recycle, systemapp, driverstore, catroot, package, prefetch, installer, fonts, cursors.
Da dieser rekursive Scan sehr viel Zeit in Anspruch nehmen kann, findet dieser Suchlauf nur einmal in der Woche statt.
Nachhaltig im Opfernetz
Die nächste Funktion main.writePersist stellt mit Logutil eine weitere Backdoor auf dem verbundenen RDP-Client bereit, um Downstreams zu kompromittieren. WritePersist erhält dafür eine Liste der Benutzer von \\tsclient\c\users. Die ebenfalls in Go geschriebene Logutil implementiert die notwendigen Funktionen, um im Netzwerk des Opfers dauerhaft Fuß zu fassen, wie etwa das Herunter- und Hochladen von Dateien und die Exekution von Befehlen. Logutil nutzt DLL-Sideloading-Techniken, um sich vor der Abwehr zu verbergen. Zum Teil nutzt die Malware klassische Wege des DLL-Sideloading: Eine geplante Aufgabe startet eine ausführbare Datei, welche ihrerseits eine Bibliothek lädt. Die Hacker tarnen sich aber noch besser und nutzen den Windows-Management-Instrumentation-Dienst (Winmgmt) für ihre Absichten, um die bösartige Binärdatei bithostw.dll (=Logutil) auszuführen.
Um dieses Ziel zu erreichen, platzierten die Täter den Loader ncobjapi.dll in einem Ordner %WinDir%\System32\wbem. Dieses bösartige Implantat imitiert die legitime ncobjapi.dll-Bibliothek, die sich im übergeordneten Ordner %WinDir%\System32 befindet, indem es die gleichen Funktionen exportiert und die Aufrufe an die Originalbibliothek weiterleitet. Da der Unterordner \wbem vor System32 auf das Vorhandensein dieser Bibliothek geprüft wird, wird die bösartige Bibliothek zuerst geladen.
Dieses Implantat löste entweder der WMI-Dienst (der automatisch mit mehreren Wiederherstellungsaktionen startet) oder der WMI-Hostprozess aus. Oft laufen mehrere Instanzen des WMI-Host-Prozesses (WmiPrvSE.exe), und es gibt mehrere Möglichkeiten, diesen Prozess zu starten (unter anderem über die DCOM-Schnittstelle für Remote-WMI-Aufrufe). So ist Logutil eine höchst effiziente Hintertür, die direkt oder über einen anderen Proxyserver im selben Netzwerk mit der C2-Infrastruktur kommuniziert und Befehle entgegennimmt, um DLL-Bibliotheken zu laden, Daten hochzuladen oder automatisiert mit Aktivitäten zu pausieren.
Nur die umfassende Sichtbarkeit von IT-Vorgängen erkennt getarnte Exfiltration
RDStealer zeigt die Komplexität von Advanced Persistent Threats im Detail und belegt, wie gezielt und zugleich automatisiert Hacker systematisch und im negativen Sinne nachhaltig in Opfernetze eindringen, um Daten zu extrahieren. Eine Abhilfe gegen solche gut getarnten und in Phasen verlaufenden Angriffe kann nur eine umfassende Sichtbarkeit der IT sowie eine Abwehr auf mehreren Ebenen sein: Startpunkt ist eine minimierte Angriffsfläche zur Prävention durch eine möglichst geringe Zahl an Endpunkten als Eingangstore ins Netz. Ein Next-Gen-Antivirus bleibt ein wichtiges Element, bedarf aber der Hilfe durch Threat Intelligence und einer integrierten IP-, URL- und Domain-Reputation-Abfrage. Schwachstellen zu schließen und Systeme zu patchen, ist eine Pflicht, deren Relevanz jedem Administrator klar sein muss.
„RDStealer zeigt die Komplexität von Advanced Persistent Threats im Detail und belegt, wie gezielt und zugleich automatisiert Hacker systematisch und im negativen Sinne nachhaltig in Opfernetze eindringen, um Daten zu extrahieren.“
Martin Zugec, Bitdefender
Um die oben geschilderten Prozesse zu erkennen, ist die Sichtbarkeit von Virtuell-Desktop-Infrastrukturen und der Remote-Desktop-Session-Hosts entscheidend. Wirkliche Hilfe schafft nur eine erweiterte Sichtbarkeit aller Vorfälle im Netz über den klassischen Endpunkt hinaus durch Ansätze wie einer Extended Detection and Response (XDR), um Angriffe im gesamten Verlauf der Kill Chain zu erkennen und abzuwehren. Die meisten Unternehmen benötigen die Hilfe von Experten aus einer Managed Detection and Response (MDR).
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.