Emotet ist wieder da – DC_Studio/Envato
Was bedeutet das Wiederauftauchen von Emotet und wie können sich Unternehmen auf neue Bedrohungen vorbereiten? Wir haben die neue DLL analysiert, eine neue Entpacktechnik und neue Funktionen aufgeschlüsselt und Ähnlichkeiten der neuen Variante mit der Vorgängerversion überprüft.
Wir werden auch ein neuartiges Tool namens „DeMotet“ untersuchen, das die Analyse von Emotet-Samples in großem Umfang automatisiert und einen Entpacker für die neuesten Loader und Entschlüsselungsskripte für die Nutzlast enthält. Es wird verwendet, um jede Änderung der Malware zu erkennen, und ist jetzt öffentlich verfügbar.
Emotet – eine statische Analyse
Für diese Analyse wird das folgende Beispiel verwendet: 76816ba1a506eba7151bce38b3e6d673362355063c8fd92444b6bec5ad106c21Der Ausführungsfluss von Emotet besteht aus mehreren Stufen, die nacheinander ausgepackt werden. Bei der neuen Variante ist dies erwartungsgemäß nach wie vor der Fall. Die auf den Datenträger geschriebene DLL ist nicht die eigentliche Nutzlast, die mit den C2-Servern kommuniziert. Dies kann durch eine Überprüfung der statischen Informationen der Ressourcen gesehen werden.
Die Entropie der Bitmap-Ressource ist hoch und enthält höchstwahrscheinlich verschlüsselte Informationen. Um die nächste Stufe zu entpacken, muss die Entschlüsselungsroutine gefunden werden.
Auf diese Ressource wird zugegriffen, bevor die Entschlüsselung beginnt. Um diesen Punkt zu erreichen, kann auf der Funktion „FindResourceA“ ein Breakpoint gesetzt werden.
Extrahieren der nächsten Stufe
Die Malware erreicht den Breakpoint und kehrt dann an die Adresse 0x10005701 zurück.Die Parameter für „FindResourceA“ stimmen mit der verdächtigen Ressource überein. Diese API wird über ein Register aufgerufen, da sie nicht importiert wird. Die Adresse befindet sich in Runtime, um eine statische Analyse zu verhindern. Die Funktion weist dann Speicher basierend auf der Größe der Ressource zu und durchläuft einige Entschlüsselungsschleifen.
Der Rückgabewert ist die nächste Stufe. Die Größe der Datei wird im Code angegeben, was das Extrahieren aus dem Speicher noch einfacher macht.
Variantenvergleich
Früher gab es eine Mittelstufe zwischen Lader und Nutzlast. Basierend auf unserer vorherigen Analyse der Emotet-Nutzlast handelt es sich bei der extrahierten Datei um die Nutzlast selbst und nicht um eine mittlere Stufe.- Die PE-Datei enthält keine importierten API-Funktionen.
- Es sind kaum Strings vorhanden.
- Die Malware verwendet dieselben Techniken zur Codeverschleierung.
Links: der neue Payload. Rechts: ein Payload vom Januar 2021
Der Payload verbirgt ihre Fähigkeiten, indem sie Informationen versteckt, die für die statische Analyse verwendet werden. Die Namen der API-Funktionen werden nach dem Hashing im Code gespeichert. Ihre Adresse wird zur Laufzeit ermittelt, anstatt die Importadressentabelle zu verwenden. Die Strings werden innerhalb der Datei verschlüsselt.
Der Code wird mit Control Flow Flattening mit verschleiert, das wie folgt funktioniert:
- Jedem Basisblock wird eine Zahl zugewiesen.
- Der Obfuscator führt eine Blocknummernvariable ein, die angibt, welcher Block ausgeführt werden soll.
- Jeder Block aktualisiert die Blocknummer-Variable auf seinen gewählten Nachfolger, anstatt die Steuerung wie üblich mit einem Verzweigungsbefehl an einen Nachfolger zu übertragen.
- Der normale Kontrollfluss wird durch eine switch-Anweisung über die Blocknummernvariable ersetzt, die in eine Schleife eingeschlossen ist.
Dem Payload wurden neue importierte Funktionen aus bcrypt.dll hinzugefügt. Die Strings, die Konstanten für diese Funktionen darstellen, wurden ebenfalls hinzugefügt, z. B. „ECDH_P256“ und „Microsoft Primitive Provider“. Dies liegt wahrscheinlich daran, dass Emotet sein Kommunikationsprotokoll von HTTP auf HTTPS umgestellt hat.
Die Algorithmen für Namens-Hashing und String-Entschlüsselung wurden beibehalten. Das bedeutet, dass „DeMotet“ diese Informationen immer noch entdecken kann.
Das ist „DeMotet“
Deep Instinct beobachtet Emotet seit einiger Zeit genau. „DeMotet“ wurde entwickelt, um die Recherche zu der Malware zu automatisieren.Das Tool ist ein statischer Entpacker für die neueste Variante des Emotet-Loaders. Es kann den verschlüsselten Payload aus der Ressource extrahieren, ohne die Malware auszuführen. Python-Skripte sind ebenfalls in diesem Tool enthalten. Sie enthüllen die versteckten Strings und API-Aufrufe, die der Payload verwendet. Das erste ist ein eigenständiges Skript, mit dem diese Informationen aus einer großen Anzahl von Payloads extrahiert werden können. Das zweite ist ein IDA-Plugin. Es fügt diese Informationen als Kommentare in den Code ein.
„DeMotet“ kann verwendet werden, um neue Varianten der Malware zu verfolgen. Neue Beispiele von Emotet können regelmäßig heruntergeladen und entpackt werden. Sobald der Entpackprozess der Malware geändert wird, schlägt das Tool fehl.
Dies ist ein Hinweis auf eine neue Variante. Die Variante wird dann manuell analysiert, um das Tool zu aktualisieren, damit die Automatisierung wiederhergestellt werden kann. Das Auffinden neuer Strings und importierter Funktionen in der Payload ist ebenfalls ein Hinweis auf ein neues Feature.
Das Tool ist in diesem GitHub-Repository verfügbar.
Fazit
Das berüchtigte Botnet Emotet ist zurück und wir können erwarten, dass im Laufe der Operation neue Tricks und Umgehungstechniken in die Malware implementiert werden. Dies kann möglicherweise sogar wieder zu einer bedeutenden globalen Bedrohung werden.
Deep Instinct verfolgt einen Präventionsansatz, um Ransomware und andere Malware mithilfe des weltweit ersten und speziell entwickelten Deep-Learning-Ansatzes zu stoppen. Wir prognostizieren und verhindern bekannte, unbekannte und Zero-Day-Bedrohungen in unter 20 Millisekunden – 750-mal schneller als die schnellste Ransomware verschlüsseln kann.
Wenn Sie mehr über unsere Malware-, Ransomware- und Zero-Day-Prevention-Funktionen erfahren möchten, melden Sie sich gerne bei uns für eine kostenlose Demo.