
Übersicht
Remcos ist ein Fernzugriffstrojaner (RAT), der erstmals im Juli 2016 von dem deutschen Unternehmen Breaking Security vorgestellt wurde. Obwohl er ursprünglich als legitimes Tool für die Fernadministration von Windows-Systemen vermarktet wurde, hat er sich inzwischen bei Cyberkriminellen für bösartige Zwecke durchgesetzt. Die Malware wird in der Regel über Phishing-E-Mails verbreitet, die bösartige Anhänge enthalten, z. B. Microsoft Office-Dokumente mit eingebetteten Makros oder ZIP-Dateien, die sich als legitime Inhalte tarnen. Wenn diese Anhänge ausgeführt werden, installieren sie Remcos auf dem System des Opfers. In einigen Fällen nutzen die Angreifer bekannte Sicherheitslücken aus, um den Infektionsprozess zu erleichtern.
Remcos bietet Angreifern umfangreiche Möglichkeiten, darunter Keylogging, Screen-Capturing, Audio- und Videoaufzeichnung sowie die Ausführung von Remote-Befehlen. Außerdem kann er Systeminformationen sammeln, Anmeldedaten stehlen und zusätzliche bösartige Nutzdaten herunterladen. Die modulare Architektur der Malware ermöglicht das Hinzufügen neuer Funktionen, so dass sie sich an verschiedene bösartige Kampagnen anpassen lässt.
Jüngste Remcos-Samples ( Version 6.1.1 pro) wurden über Spam-E-Mails verbreitet, die ein bösartiges 7Z-Archiv als Anhang enthalten. Dieses Archiv enthält eine stark verschleierte Batch-Datei, die sich der Entdeckung entziehen soll. Die Batch-Datei enthält zwei verschlüsselte und komprimierte Datenströme, nämlich AES-verschlüsselte und GZIP-komprimierte, die während der Ausführung entschlüsselt und dekomprimiert werden. Dieser Prozess führt letztendlich dazu, dass die Remcos-Nutzlast auf dem Rechner des Opfers installiert wird.
Technische Details
Die bösartige Batch-Datei ist stark verschleiert und enthält eingebetteten Base64-kodierten PowerShell-Code. Um der Entdeckung zu entgehen, haben die Angreifer überall im Skript Junk-Code eingefügt. Wenn Sie beispielsweise in der ersten Zeile die Zeichenfolge „ywg“ ersetzen, wird ein Echo-Befehl angezeigt, der auf eine versteckte Funktionalität hinweist.

Abbildung 1 – Verdeckte Batch-Datei
Bei der Ausführung führt die Batch-Datei ein eingebettetes PowerShell-Skript aus, das überprüft, ob die Datei „dwm.bat“ im Profilverzeichnis des Benutzers vorhanden ist. Wenn die Datei vorhanden ist, liest es ihren Inhalt zeilenweise ein, sucht nach einer Zeile, die die Markierung ::: enthält, und extrahiert den darauf folgenden Inhalt. Bei diesem Inhalt handelt es sich um Base64-kodierten PowerShell-Code, der dann dekodiert und ausgeführt wird. Wenn die Datei „dwn.bat“ nicht vorhanden ist, wird das Skript einfach beendet.

Abbildung 2 – Eingebettetes PowerShell-Skript
Umgehung von AMSI und ETW
Das entschlüsselte PowerShell-Skript definiert eine Funktion namens Invoke-SysRoutine, die eine Technik zur Umgehung sowohl der Antimalware Scan-Schnittstelle (AMSI) als auch der Ereignisverfolgung für Windows (ETW) implementiert. Sie erreicht dies, indem sie System-API-Adressen zur Laufzeit dynamisch auflöst und den Speicher der Zielfunktionen mit Hilfe von .NET-Interoperabilität und nativen Windows-API-Aufrufen verändert, wodurch die Sicherheitstelemetrie deaktiviert und die Erkennung umgangen wird.
Es löst kritische Systemfunktionen wie GetProcAddress und GetModuleHandle dynamisch auf, indem es ihre Namen zur Laufzeit dekodiert, was eine statische Analyse erschwert. Das Skript erstellt benutzerdefinierte Delegierte, um nicht verwalteten Code aufzurufen, und ändert den Speicherschutz mit VirtualProtect, um die AMSI-Funktion AmsiInitialize zu patchen.

Abbildung 3 – AMSI-Bypass
Außerdem werden mehrere AMSI-Anbieter im Speicher gescannt und gepatcht, um eine vollständige Deaktivierung sicherzustellen. Wenn die Option -DisableSvc verwendet wird, zielt es auch auf die Funktion EtwEventWrite in ntdll.dll ab und unterdrückt so die Protokollierung von Sicherheitsereignissen. Der Speicherschutz wird nach dem Patching wiederhergestellt, um die Systemstabilität zu gewährleisten.‘

Abbildung 4 ETW Patching
Entschlüsselung und Dekomprimierung
Nach erfolgreicher Umgehung von AMSI und ETW sucht das eingebettete PowerShell-Skript in der Batch-Datei die Markierung ::, extrahiert den darauf folgenden Inhalt und teilt diese Daten dann mit dem Backslash (\) als Begrenzer auf. Die resultierenden base64-kodierten Werte werden zur weiteren Verarbeitung in einem Array gespeichert.

Abbildung 5: PowerShell-Skript Lesen verschlüsselter Elemente
Die extrahierten Array-Elemente werden dann an eine Entschlüsselungsfunktion weitergegeben, die AES im CBC-Modus (Cipher Block Chaining) verwendet. Diese Funktion entschlüsselt den Inhalt mit einem fest kodierten Schlüssel und einem Initialisierungsvektor (IV), wie im folgenden Codeschnipsel gezeigt. Die entschlüsselte Ausgabe wird anschließend an eine andere Funktion übergeben, die die GZIP-Dekomprimierung durchführt.

Abbildung 6 – AES-Entschlüsselung
Sobald beide Array-Elemente dekomprimiert sind, extrahiert das Skript zwei ausführbare Dateien. Die erste ausführbare Datei enthält eine leere main()-Funktion, die keinen aktiven Zweck erfüllt, während die zweite für das Laden der Remcos-Nutzdaten verantwortlich ist.

Abbildung 7 – AES-Entschlüsselung und GZIP-Dekomprimierung mit CyberChef
Das Skript übergibt dann die extrahierten ausführbaren Dateien an eine Funktion, die Reflection Loading verwendet, um die bösartige Binärdatei direkt aus dem Speicher innerhalb des PowerShell-Prozesses auszuführen, ohne die Binärdateien auf der Festplatte zu speichern. Diese Technik ermöglicht die speicherinterne Ausführung der Nutzdaten, was die Erkennung und Analyse erschwert.

Abbildung 8 – Reflektionsbelastung
Die ausführbare Datei, die aus dem ersten Array-Element extrahiert wurde, enthält eine leere Hauptfunktion, was darauf hindeutet, dass der Angreifer sie möglicherweise als Köder oder Umgehungstaktik verwendet, um nicht entdeckt zu werden.
Remcos Lader
Die ausführbare Datei, die aus dem zweiten Array-Element extrahiert wurde, fungiert als Lader, der die Nutzlast von Remcos auf den Rechner des Opfers lädt. Bei der Ausführung lädt der Lader „ntdll.dll“, ruft die Adresse der Funktion „EtwEventWrite“ ab und ändert den Speicherschutz dieser Funktion in PAGE_EXECUTE_READWRITE.
Auf 32-Bit-Systemen fügt es Anweisungen (0xC2 0x14) hinzu, die die Funktion sofort zurückkehren lassen, wodurch die ETW-Protokollierung effektiv deaktiviert wird. Auf 64-Bit-Systemen ersetzt das Skript den Start der Funktion EtwEventWrite durch die Anweisung 0xC3, die bewirkt, dass die Funktion sofort zurückkehrt, ohne etwas zu tun. Durch diese Änderung wird die Ereignisprotokollierung deaktiviert. Nach der Änderung stellt das Skript den ursprünglichen Speicherschutz wieder her, um weitere Änderungen zu vermeiden. Dadurch wird EtwEventWrite zu einem No-op und hilft der Malware, sich der Erkennung durch Sicherheitstools zu entziehen.

Abbildung 9 – ETWEventWrite-Patching
In der letzten Phase sucht der Lader in den eingebetteten Ressourcen der Assembly nach einem bestimmten Eintrag namens „xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.exe“. Wenn die Ressource vorhanden ist, extrahiert er ihren Inhalt mit GetManifestResourceStream().
Die extrahierten Daten sind sowohl GZIP-komprimiert als auch AES-verschlüsselt. Sie werden mit einem vordefinierten Schlüssel und einem Initialisierungsvektor entschlüsselt. Nach der Entschlüsselung wird die als Remcos identifizierte Nutzlast ausgeführt, die es dem Angreifer ermöglicht, das angegriffene System fernzusteuern.
Netzwerk- und C&C-Verbindungsdetails
Nach erfolgreicher Ausführung sendet Remcos RAT eine GET-Anfrage an geoplugin.net/json.gp, um die Geolocation des Opfers auf der Grundlage seiner öffentlichen IP-Adresse abzurufen. Diese API-Antwort enthält Details wie Land, Stadt, Region, Breitengrad, Längengrad, Zeitzone usw.. Die gesammelten Daten helfen den Angreifern, ein Profil der Opfer zu erstellen und ihre Operationen an den geografischen Standort anzupassen.

Abbildung 10 – Erfassen von Geolocation-Details
Bevor das Remcos RAT die volle Kontrolle über den Rechner des Opfers erlangt, sammelt es zunächst Systeminformationen und sendet sie an den Command and Control (C&C) Server, um das infizierte Gerät zu registrieren. Es baut eine sichere Verbindung zum C&C-Server auf und verwendet TLS, um eine verschlüsselte Kommunikation zu ermöglichen. Jedes Paket enthält eine eindeutige Kennungs-Bytefolge, gefolgt von der Größe der zu übertragenden Daten und einer Befehls-ID, die den beabsichtigten Vorgang angibt, wie unten dargestellt.

Abbildung 11- Ursprüngliches Paket zur Registrierung des Opfergeräts
Remcos nutzt die Befehls-ID 0x4B, um detaillierte System- und Benutzerinformationen vom Rechner des Opfers an den Command and Control (C2) Server des Angreifers zu übermitteln. Diese Daten werden verwendet, um das kompromittierte Gerät zu registrieren und die Kontrolle über den infizierten Host zu übernehmen. Die folgenden Informationen werden in der Regel während dieses Prozesses gesammelt:
- Gerätename & Benutzername
- Standort des Geräts des Opfers
- Infos zum Betriebssystem
- Speicherstatus
- Remcos Version
- Remcos Keylogger Lokaler Dateipfad
- Remcos Vollständiger Pfad
- Aktives Programm Titel
- Privilegstufe des Benutzers
- System-Betriebszeit
- Leerlaufzeit
- Remcos Zugewiesener Name
- C&C Server IP
- Remcos File Type
- Informationen über den Verarbeiter
Nach der ersten Registrierung sendet der Command and Control (C2)-Server einen Befehl mit der ID 0x01 an den Remcos-Client. Dieser Befehl fungiert als „Heartbeat“ oder „Information Beacon“ und veranlasst den infizierten Rechner, regelmäßige Status-Updates an den Angreifer zu senden.
![]()
Abbildung 12 – Beacon-Paket
Als Antwort sendet Remcos Informationen, die Laufzeitsystem-Telemetrie wie z.B. den Titel des aktiven Fensters und die Betriebszeit des Systems usw. enthalten, zusammen mit dem Befehl 0x4C. Auf diese Weise kann der Angreifer die Aktivitäten des infizierten Rechners in Echtzeit überwachen und die Kontrolle über das Gerät aufrechterhalten.
![]()
Abbildung 13 – Antwort auf Beacon-Anfrage
Danach sendet der C&C-Server mit der Befehls-ID 0x11 eine Anfrage an den infizierten Computer, um die Geolocation-Informationen abzurufen, die in der Anfangsphase der Infektion gesammelt wurden. Als Antwort sendet Remcos die Geolokalisierungsdaten mit der gleichen Befehls-ID 0x11 zurück, wie unten gezeigt.

Abbildung 14 – Details zur Geolokalisierung der Exfiltration
Es wurde auch beobachtet, dass die Befehls-ID 0x44 immer dann verwendet wird, wenn eine Datei vom C&C-Server heruntergeladen wird. Insbesondere wenn eine Datei mit einem MZ-Header abgerufen wird, enthält die Kommunikation den Befehl 0x44, gefolgt vom Inhalt der Datei, wie unten gezeigt.

Abbildung 15 – Herunterladen von zusätzlichen Nutzdaten (Quelle: malware-traffic-analysis.net))
Wie hilft Unified SASE as a Service bei der Eindämmung von Remcos-Infektionen?
Ein einheitliches SASE-Framework integriert Netzwerksicherheit und Zero-Trust-Zugangskontrollen, um Bedrohungen wie Remcos RAT abzuwehren, das Command-and-Control-Kanäle (C2) für die Datenexfiltration und Fernoperationen nutzt. SASE bietet einen zentralen Einblick in den Netzwerkverkehr und setzt konsistente Sicherheitsrichtlinien an allen Standorten durch. Unsere integrierten Sicherheitsfunktionen – wie fortschrittliche IDPS, SWG und Echtzeit-Bedrohungsdaten – können Indikatoren für Remcos-Aktivitäten erkennen, einschließlich bestimmter Befehls-IDs und verdächtiger HTTP-Muster. Durch die Inspektion der ausgehenden HTTP-Kommunikation kann SASE Versuche erkennen, Geolokalisierungsdaten zu exfiltrieren oder Remote-Befehle zu übermitteln, wodurch unzulässige Übertragungen automatisch blockiert und das Risiko einer Gefährdung minimiert wird.
MITRE ATT&CK-Mapping: TTPs
- T1566.001 – Phishing: Spearphishing-Anhang
- T1059.001 – Interpreter für Befehle und Skripte: PowerShell
- T1204.002 – Benutzer-Ausführung: Bösartige Datei
- T1027 – Verdeckte Dateien oder Informationen
- T1055.002 – Prozess-Injektion: Portable Executable Injection
- T1562.001 – Beeinträchtigung der Verteidigung: Tools deaktivieren oder modifizieren
- T1003 – OS-Zugangsdaten-Dumping
- T1082 – Ermittlung von Systeminformationen
- T1016 – Erkennung der Systemnetzwerkkonfiguration
- T1071.001 – Protokoll der Anwendungsschicht: Web-Protokolle
- T1056.001 – Eingabeerfassung: Keylogging
- T1113 – Bildschirmfoto
- T1123 – Audio-Aufnahme
- T1125 – Videoaufzeichnung
- T1041 – Exfiltration über C2-Kanal
- T1020 – Automatisierte Exfiltration
Referenz
https://www.fortinet.com/blog/threat-research/new-campaign-uses-remcos-rat-to-exploit-victims