
Reverse-Engineering-Analyse einer dateilosen Remcos-RAT-Variante, die sich über Native-API-Aufrufe in svchost.exe einschleust. Umfasst extrahierte obfuskierte Payloads, Registry-Persistenz, Clipboard-Überwachung, API-Hooking und UAC-Bypass-Techniken.
Der folgende Binary Ninja-Ausschnitt zeigt den zentralen Injektionsmechanismus, den Remcos nutzt, um seine Nutzlast in svchost.exe zu injizieren.
CreateProcessW mit dem Flag CREATE_SUSPENDED startet einen neuen svchost-Prozess in einem angehaltenen Zustand.VirtualAlloc reserviert Speicher im Zielprozess unter Verwendung der Flags MEM_COMMIT und PAGE_READWRITE, sodass die Nutzlast direkt in den Prozessspeicher geschrieben werden kann.WriteProcessMemory schreibt die Nutzlast in den reservierten Speicherbereich des angehaltenen svchost-Prozesses.ReadProcessMemory liest den Speicher des Zielprozesses, vermutlich um den ursprünglichen Einstiegspunkt abzurufen oder die Injektion zu validieren.TerminateProcess wird verwendet, um den angehaltenen svchost-Prozess zu beenden, falls die Injektion fehlschlägt, um zu verhindern, dass er in einem instabilen Zustand zurückbleibt.
Binary Ninja-Ansicht der Remcos-Injektionsroutine unter Verwendung nativer APIs, mit MEM_COMMIT, PAGE_READWRITE, ReadProcessMemory und TerminateProcess.
Remcos fügt einen Schlüssel zur Windows-Registrierung hinzu, um eine dauerhafte Präsenz auf dem System aufzubauen. Dieser Schlüssel stellt sicher, dass die Schadsoftware bei jedem Systemstart erneut ausgeführt wird.
HKEY_USERS\S-1-5-21-3807688912-2840792520-522192237-1001\Software\kamolprf-CFKPWC
exepath-Wert als REG_BINARY gespeichert ist, kann er nicht direkt gelesen werden. Dies erschwert die Erkennung.UID- und licence-Werte erlauben es dem Angreifer, das Opfer zu identifizieren und eine Lizenzprüfung durchzuführen.time-Wert gibt Aufschluss darüber, wann die Schadsoftware installiert oder zuletzt ausgeführt wurde.
Registrierungsschlüssel und die darin enthaltenen Werte exepath, licence, time und UID.
Der folgende WinDbg-Ausschnitt zeigt eine Trampolin-Funktion innerhalb des injizierten svchost.exe-Prozesses. Dieser Code scheint Teil des API-Hooking- oder Nutzlast-Ausführungsmechanismus von Remcos zu sein.
jmp qword ptr [svchost+0x9758] – Wahrscheinlich ein Hook oder Trampolin, das zu einer API oder Funktion springt.mov / movdqa-Anweisungen – Sichern und Wiederherstellen von Registern (xmm0-xmm3, rcx, rdx, r8, r9), um den Aufrufkontext zu bewahren.call svchost+0x3e50 – Ruft eine Kernfunktion auf, möglicherweise Teil der Nutzlast oder des Hook-Handlers.jmp rax – Endgültiger Sprung zur ursprünglichen Funktion oder zur nächsten Stufe.INT3-Fallen – Anti-Debugging-Anweisungen, um die Ausführung zu unterbrechen, falls ein Debugger angehängt ist.Diese Struktur ist typisch für API-Hooking oder Detour-Funktionen, bei denen Remcos Aufrufe kritischer Windows-APIs abfängt. Die Verwendung von xmm-Registern (für Gleitkomma- oder SIMD-Operationen) deutet darauf hin, dass dieser Hook möglicherweise auf Funktionen platziert ist, die SSE-Anweisungen verwenden.
WinDbg-Ansicht der Trampolin-Funktion innerhalb von svchost.exe mit jmp- und call-Anweisungen sowie INT3-Fallen.
Der folgende Hex-Dump wurde aus einem PAGE_READWRITE-Speicherbereich innerhalb des injizierten svchost.exe-Prozesses extrahiert. Dieser Bereich enthält keine direkten call- oder jmp-Anweisungen, was bestätigt, dass es sich nicht um ausführbaren Code handelt, sondern um eine verschleierte oder verschlüsselte Nutzlast.
RPC Control und PC- in den Daten eingebettet.ctk, m und mafasakaaam scheinen Teil einer strukturierten Konfiguration zu sein, die möglicherweise Verschlüsselungsschlüssel, API-Namen oder Registrierungspfade enthält.
Binary Ninja-Ansicht des verschleierten Hex-Dumps aus dem PAGE_READWRITE-Bereich von svchost.exe mit eingebetteten Zeichenfolgen wie RPC Control und PC-.
Die verschleierte Hex-Nutzlast, die aus dem PAGE_READWRITE-Bereich extrahiert wurde, wurde weiter mit der Zeichenfolgenansicht von Binary Ninja analysiert. Trotz der starken Verschleierung tauchten mehrere lesbare Zeichenfolgen und Muster auf.
PC--präfixierte Zeichenfolgen (z. B. PC-475ce3d749612b, PC-4a757962f31b84) – Wahrscheinlich MachineGuid oder eindeutige Systemkennungen zur Opferverfolgung.svchost.exe – Der Name des Zielprozesses, der den Injektionsvektor bestätigt..dll-Erweiterungen – Deuten darauf hin, dass Remcos entweder bestimmte DLLs lädt oder danach sucht, möglicherweise für API-Hooking oder Persistenz.ontroll\ – Wahrscheinlich ein Fragment eines Registrierungspfads (Control\), was auf Persistenz oder Konfigurationsspeicherung hinweist.EEF931 und 1AA81C6FD0CF04A816B – Diese scheinen GUIDs oder Verschlüsselungsschlüssel zu sein, die möglicherweise zur XOR/AES-Entschlüsselung der Nutzlast verwendet werden.TEMP – Deutet auf die Erstellung temporärer Dateien oder die Ausführung aus dem Temp-Verzeichnis hin.
Binary Ninja-Zeichenfolgenansicht der verschleierten Hex-Nutzlast mit lesbaren Fragmenten wie PC-, svchost.exe, .dll und EEF931.
Diese Analyse hat eine hochgradig ausgeklügelte, dateilose Variante von Remcos RAT aufgedeckt, die mit minimaler Festplattennutzung und fortschrittlichen Umgehungstechniken arbeitet. Die Schadsoftware injiziert ihre Kernnutzlast mithilfe nativer API-Aufrufe wie ZwCreateSection und ZwMapViewOfSection in svchost.exe, was Persistenz und Tarnung gewährleistet.
PC-, svchost.exe, .dll und EEF931 preisgibt.HKEY_USERS\...\Software\kamolprf-CFKPWC aufrecht, die verschlüsselte exepath-, licence-, time- und UID-Werte speichern.svchost.exe auf abnormale Speicherbereiche (PAGE_READWRITE).Software\kamolprf-CFKPWC.ZwCreateSection- und ZwMapViewOfSection-Aufrufe, die von Nicht-Systemprozessen ausgehen.PC- und EEF931.Diese Remcos-Variante zeigt ein hohes Maß an Professionalität und wurde eindeutig entwickelt, um traditionelle Sicherheitslösungen zu umgehen. Ihre Kombination aus dateiloser Ausführung, Prozessinjektion und registrierungsbasierter Persistenz macht sie zu einer erheblichen Bedrohung, die fortschrittliche Erkennungsstrategien erfordert.
Verwendete Tools: Ghidra, Binary Ninja, WinDbg, Process Hacker
Das analysierte Remcos RAT-Beispiel ist auf MalwareBazaar für diejenigen verfügbar, die eine eigene Analyse durchführen möchten:
| API | Zweck in Remcos |
|---|
| CreateProcessW | Startet svchost in einem angehaltenen Zustand für die Injektion. |
| VirtualAlloc | Reserviert Speicher mit MEM_COMMIT und PAGE_READWRITE für die Nutzlast. |
| WriteProcessMemory | Schreibt die Nutzlast in den reservierten Speicher. |
| ReadProcessMemory | Liest den Speicher des Zielprozesses (zur Validierung oder zum Abrufen des Einstiegspunkts). |
| TerminateProcess | Beendet den angehaltenen Prozess, falls die Injektion fehlschlägt. |
| Wertname | Typ | Wert | Beschreibung |
|---|
| exepath | REG_BINARY | Verschlüsselte Binärdaten | Der verschlüsselte Dateipfad von Remcos oder dessen injizierter Nutzlast. Wahrscheinlich durch XOR oder AES geschützt. |
| licence | REG_SZ | DA8E22D4CD8D349953DF1FAD364CAB05 | Remcos-Lizenzschlüssel. Kann ein fester Wert in Raubkopien oder Demoversionen sein. |
| time | REG_DWORD | 0x6a53ac27 (1783868455) | Installations- oder letzte Ausführungszeit im Unix-Zeitstempelformat. |
| UID | REG_DWORD | 0xfeb60bd4 (4273343444) | Eindeutige Benutzer-ID. Wird zur Identifizierung des Opfers verwendet. |