
.NET-Prozessmonitor, der CLR auf der nativen Ebene einhakt, reflektive Assemblys aus dem Arbeitsspeicher entlädt und die Integrität von AMSI/ETW im Vergleich zu den Binärdateien auf der Festplatte prüft.
Windows-Tool, das ich gebaut habe, weil ich es leid war, in Malware-Samples auf Jlaive-Forks zu starren, ohne dass es etwas Öffentliches gibt, um sie zur Laufzeit tatsächlich auseinanderzunehmen.
Kurz gesagt: Es ist ein .NET-Prozessmonitor, der die CLR auf der nativen Ebene hookt, reflektive Assembly-Loads verfolgt und PEs automatisch direkt aus dem Speicher dumpt. Außerdem prüft es die AMSI- und ETW-Integrität gegen die Original-Binaries auf der Festplatte und erkennt Bypass-Techniken wie clr.dll-String-Patching und direkte LoadFromBuffer-Nutzung.
Wo findet man Samples? Ich empfehle, https://tria.ge anzuschauen (keine Werbung) – dort kann man jedes gewünschte Sample herunterladen und nach Familie filtern.
Du fragst dich vielleicht, warum der Name Nemesis?
Weil er den genauen Zweck des Tools repräsentiert. Eine Nemesis ist etwas, das als ständige Herausforderung oder Verhängnis für einen Gegner steht – und das ist die Idee hinter diesem Projekt.
In der griechischen Mythologie war Nemesis der Geist der göttlichen Vergeltung, derjenige, der jeden zur Rechenschaft zog, der zu arrogant wurde oder sich für unantastbar hielt. Etwas zu treffend für Malware, die damit prahlt, „FUD" zu sein, wenn du mich fragst.
Ich bin Malware-Analyst. Wenn man diesen Job (für mich ein Hobby) lange genug macht, sieht man immer wieder dieselben Loader-Ketten – besonders seit Jlaive (auch Crybat genannt) explodiert ist und jeder Script-Kiddie es geforkt hat.
Das Muster ist dumm einfach, aber verdammt nervig zu handhaben:
something.bat → obfuscated powershell → csharp stub → your actual payload
Du doppelklickst auf eine .bat, die wie ein Wortsalat aussieht. cmd startet PowerShell mit einer Wand aus Müll. PowerShell entschlüsselt/dekomprimiert einen .NET-Stub (AES, Gzip, Base64). Dieser Stub patcht AMSI + ETW, lädt die echte EXE/DLL reflektiv in den Speicher, und fertig – nichts Freundliches landet jemals in brauchbarer Form auf der Festplatte.
Das hat mich gestört. Es gibt nicht wirklich ein gutes öffentliches Tool, das genau diese Kette bekämpft – dort hookt, wo die .NET-Payload tatsächlich materialisiert, sie dumpt, bevor der Prozess sich selbst auffrisst, und die AMSI/ETW-Patches fängt, die diese Stubs immer machen. Also habe ich Nemesis gebaut.
Keine Wunderwaffe. Wird deine Sandbox nicht ersetzen. Aber es gibt dir etwas Echtes, das du gegen eine verdächtige .bat auf einer Testbox laufen lassen und tatsächlich Artefakte herausziehen kannst.
Launcher (Launcher.exe)
Nemesis.dll, bevor der Main-Thread läuftNemesis DLL (Nemesis.dll)
nLoadImagenLoadFileAssemblyNative::LoadFromBuffer (Pattern aufgelöst über nLoadImage)%TEMP%\Nemesis_dumps einamsi.dll / ntdll.dll-Exporte mit den Kopien auf der Festplatte (fängt den klassischen ret-Patch auf AmsiScanBuffer / EtwEventWrite).rdata-Strings, wenn CLR geladen ist (manche Bypasses patchen stattdessen diese; dazu gibt es ein großartiges vxug-Paper mit dem Titel: 2024-11-21 - New AMSI Bypss Technique Modifying CLRDLL in Memory.pdf)%TEMP%\Nemesis.log; es hat auch ENABLE_VIRTUAL_TERMINAL_PROCESSING, um Probleme mit einer – sagen wir mal – seltsamen Konsole zu vermeiden :DIm Grunde: Lass die BAT-Kette laufen, fange die Payload dort, wo der Crypter sie tatsächlich lädt, und logge die Evasion-Tricks unterwegs.
Benötigt Visual Studio 2022+ mit C++ Desktop + MASM (x64).
Öffne Nemesis.slnx, wähle Release | x64, baue die Solution.
Das ist der eigentliche Anwendungsfall – richte es auf eine verdächtige BAT und schau, was herausfällt:
cd x64\Release
.\Launcher.exe "C:\path\to\suspicious.bat"
Zusätzliche Argumente nach -- werden an das Ziel weitergegeben:
.\Launcher.exe myapp.exe -- --some-flag
Benutzerdefinierter DLL-Pfad:
.\Launcher.exe --dll C:\path\Nemesis.dll myapp.exe
Artefakte:
%TEMP%\Nemesis.log%TEMP%\Nemesis_dumpsist:
ist nicht:
LNK1104 fehl? Irgendetwas hat noch nemesis.dll geladen – töte das Ziel und baue neupwsh.exe-vcpkg-Rauschen während des Builds ist harmlos, ignoriere esWenn du verstehen willst, wogegen du kämpfst:
Durch die Nutzung von Nemesis akzeptierst du dies. Es wird wie besehen und ohne Gewährleistung bereitgestellt – du trägst das gesamte Risiko.