
Ein .NET-Malware-Lader, der API-Hashing verwendet, um statische Analyse zu umgehen.
Ein .NET-Malware-Loader, der API-Hashing und dynamisches Aufrufen verwendet, um statische Analysen zu umgehen
NixImports verwendet meine verwaltete API-Hashing-Implementierung HInvoke, um die meisten seiner aufgerufenen Funktionen zur Laufzeit dynamisch aufzulösen. Um die Funktionen aufzulösen, benötigt HInvoke zwei Hashes: den typeHash und den methodHash. Diese Hashes repräsentieren den Typnamen und den FullName der Methode. Zur Laufzeit parst HInvoke die gesamte mscorlib, um den passenden Typ und die passende Methode zu finden. Aufgrund dieses Prozesses hinterlässt HInvoke keine Importverweise auf die darüber aufgerufenen Methoden.
Ein weiteres interessantes Merkmal von NixImports ist, dass es so weit wie möglich vermeidet, bekannte Methoden aufzurufen. Wo immer möglich, verwendet NixImports interne Methoden anstelle ihrer Wrapper. Durch die ausschließliche Verwendung interner Methoden können wir grundlegende Hooks und Überwachungen umgehen, die von einigen Sicherheitstools eingesetzt werden.
Für eine detailliertere Erklärung sieh dir meinen Blogbeitrag an.
Du kannst Hashes für HInvoke mit diesem Tool generieren.
NixImports benötigt lediglich einen Dateipfad zur .NET-Binärdatei, die du damit packen möchtest.
NixImports.exe <filepath>
Es wird automatisch eine neue ausführbare Datei namens Loader.exe im Stammordner generieren. Die Loader-ausführbare Datei enthält deine codierte Nutzlast und den erforderlichen Stub-Code, um sie auszuführen.
Wenn du dich für Detection Engineering und die mögliche Erkennung von NixImports interessierst, sieh dir den letzten Abschnitt meines Blogbeitrags an.
Oder klicke hier für eine einfache YARA-Regel, die NixImports abdeckt.