Es müssen nicht immer neu entwickelte Schadcodes sein, die Angreifer verwenden. Oftmals nutzen sie auch erprobte Malware für ihre Zwecke, wenn es für sie passend erscheint. Ungleich wichtiger in einem solchen Fall ist es dann natürlich, den Verbreitungsweg so zu wählen, dass sich die Schadsoftware unbemerkt beim Opfer platzieren lässt. Wir haben uns ein solches Vorgehen einmal etwas genauer am Beispiel NanoCore angeschaut.
NanoCore ist ein Remote Access Trojaner, der seit 2013 in verschiedenen Versionen als vergleichsweise günstiges Fertigprodukt zu erwerben ist. Remote Access Trojaner sind eine sehr gefährliche Malwareart, die es Angreifern erlaubt, infizierte Systeme komplett aus der Ferne zu steuern und zu überwachen. 2015 wurde die Vollversion von NanoCore mit allen Plugins gecracked und ist seitdem in Untergrundforen kostenlos erhältlich.
Der Entwickler von NanoCore wurde letztes Jahr festgenommen und in einem spannenden Verfahren zu 3 Jahren Haft verurteilt. Von besonderer Bedeutung ist der Fall vor allem deshalb, da erstmals ein Entwickler eines Dual-Use-Tools verurteilt wurde, der das Tool nicht „für den Eigenbedarf“ zum Hacken verwendet hat. Entscheidend für die Verurteilung war, dass der Entwickler die Software in Hackerforen angeboten hatte und wusste, dass manche seiner Kunden das Tool für illegale Zwecke einsetzen würden.
NanoCore ist noch immer nicht aus der Mode gekommen und treibt weiterhin sein Unwesen. Da das Tool jedoch sehr gut analysiert ist und daher leicht von Antivirenprodukten aufgespürt werden kann, müssen die Angreifer oft kreativ werden, um den Trojaner auszuliefern. Hierfür denken sie sich ausgefeilte Verschleierungsmethoden aus.
In der vergangenen Woche konnten wir einen Cyberangriff mit NanoCore beobachten, in dem auf kreative Art und Weise verschiedene Techniken kombiniert wurden, um den Remote Access Trojaner auszuliefern und zu installieren. Hierfür verwendeten die Angreifer eine Kombination aus Phishing, einem selbstextrahierenden Winrar-Archiv sowie dem legitim nutzbaren Administrationswerkzeug AutoIT.
Das anhängende Phishing-PDF sieht aus wie ein Link zu Dropbox, beinhaltet aber eine URL, über die eine Archivdatei aus einer anderen Quelle heruntergeladen wird.
In diesem „inquiry.zip“ ZIP-Archiv befindet sich die Datei „inquiry.scr“. Die Dateiendung „scr“ ist nur eine Alternative zu „exe“ und wurde früher für ausführbare PE-Dateien verwendet, die Bildschirmschoner installieren. In diesem Fall handelt es sich um ein selbstextrahierendes Winrar-Archiv, das als Malwaredropper missbraucht wird.
Auslieferung per Phishingmail
Die initiale Phishingmail gaukelt dem Empfänger ein besonderes Geschäftsangebot vor, das in einem mitgelieferten PDF namens „inquiry.pdf“ im Anhang stehen soll. Durch die Verwendung vollständiger Kontaktinformationen soll die Mail überzeugender wirken. Da diese Informationen häufig echt sind, haben wir sie im nachfolgenden Screenshot ausgeschwärzt.
Beispiel für eine Phishing Mail
Verwendung eines selbstextrahierenden Archives
Die in der Datei enthaltenen Strings zeigen, dass es sich bei der scr-Datei um ein selbstextrahierendes Winrar-Archiv handelt. Signifikante Strings sind beispielsweise:- Software\WinRAR SFX
- winrarsfxmappingfile.tmp
- WinRAR self-extracting archive
- 42 zufällig benannten Dateien mit unterschiedlicher Endung, die nur um die 500 Byte groß sind und ASCII Daten enthalten
- Das legitime Administrationstool AutoIT, umbenannt als „mta.exe“
- Eine ASCII Datei „qoa.docx“, die 951K groß ist und die Konfiguration für AutoIT enthält
- Eine ASCII Datei „stt=dsr“, die 3MB groß ist und ein obfuskiertes Script in der AutoIT-eigenen VBA-ähnlichen Scriptsprache enthält
Angreifer missbrauchen Automatisierungstool AutoIT
AutoIT ist ein legales Werkzeug, das zur Automatisierung von Administrationsaufgaben verwendet wird. Es stellt hierfür eine eigene Scriptsprache bereit, die an VBA angelehnt ist. Das Tool ist frei erhältlich und wurde leider schon öfter von Kriminellen zur Installation von Malware verwendet, so dass es manchmal fälschlicherweise als gefährlich eingestuft wird. Das AutoIT-Script in der Datei „stt=dsr“ aus dem ZIP-Archiv hat eine AntiAV-Technik eingebaut, die die Ausführung schlafen legt, falls der Prozess „avastui.exe“ auf dem System läuft. Es liest aus der „qoa.docx“ Konfigurationsdatei verschiedene Werte aus der Sektion „Setting“ aus. Danach wird eine zufällig benannte Datei erstellt, in die einer der ausgelesenen Strings geschrieben wird. Diese Datei ist ebenfalls ein obfuskiertes AutoIT-Script, 272K groß, und heißt in unserem Fall „DIENU“. In dieser Datei wird der String „Settings File Name“ mit dem Namen der Konfigurationsdatei „qoa.docx“ überschrieben. Anschließend setzt das Script die Attribute aller extrahierten Dateien auf „hidden“ und „read only“, um sie möglichst unscheinbar werden zu lassen. AutoIT wird gestartet und das erstellte „DIENU“-Script, das „qoa.docx“ als Konfigurationsdatei verwendet, wird AutoIT übergeben.Intelligente Systemprüfung vor Installation von NanoCore
Das „DIENU“-Script nimmt einige Änderungen am System vor, so zum Beispiel das Ändern der Systemkonfiguration und von Registryeinträgen. Es versucht herauszufinden, ob es in einer VMware oder Virtualbox Sandbox läuft – falls dies der Fall ist, bricht das Script ab, um einer möglichen Analyse zu entgehen. Im weiteren Verlauf wird der Remote Access Trojaner installiert, indem Schadcode in den Prozessspeicher von „RegSvcs.exe“ injiziert wird – ein .NET Tool, das zur Installation von Services gedacht ist. Diese Technik wird gerne verwendet, um Malware in legitimen Programmen zu verstecken.Flexibilität von NanoCore durch modularen Aufbau
NanoCore ist modular aufgebaut. Die jeweiligen Plugins, die sich unabhängig voneinander ein- und ausschalten lassen, hat DigiTrust in einem Artikel ausführlich beschrieben. Bei diesem Angriff wurden zwei Plugins verwendet: Das Client Plugin in Version 1.2.0.0 und das Surveillance Plugin mit der Produktversionsnummer 1.0.1.7. Die Plugins wurden als Bibliotheksdateien „ClientPlugin.dll“ und „SurveillanceExClientPlugin.dll“ für .NET geschrieben und mit dem Tool „Eazfuscator.NET 3.3“ verschleiert. Um Analysen mit einem Debugger zu erschweren, sind die Methoden mit den Attributen „DebuggerHiddenAttribute“ und „DebuggerNonUserCode“ versehen. Hierdurch wird ein Debugging dieser Methoden und das Setzen von Breakpoints verboten.Client-Plugin
Das Client-Plugin ist der Grundbaustein, der sich um die Kommunikation mit dem Command-and-Control-Server und die Verwaltung der gesammelten Informationen in einer Key/Value-Sammlung kümmert. Die Informationen lassen sich optional komprimiert per Pipe an den C2-Server senden. Der Client hat des Weiteren Optionen, um Einstellungen zu ändern, Plugins und sich selber zu deinstallieren und den Hostcomputer zu steuern, also diesen zum Beispiel herunterzufahren, neu zu starten, oder Sicherheitsmechanismen zu deaktivieren.Surveillance-Plugin
Das Surveillance-Plugin bringt allerlei Features für die Überwachung des Opfers mit. So kann der Angreifer Passwörter, Logs und DNS Records sammeln. Der Hostcomputer ist per Remote-Desktop steuerbar, und es können Mitschnitte von Tasteneingaben, dem Mikrofon oder der Webcam aufgenommen werden. Das Surveillance Plugin kann vier Kommandos empfangen:- Password: SendTools, EmailClient, InternetBrowser
- Logging: (KeyboardLogging, ApplicationLogging, DNSLogging, GetLogs, DeleteLogs, ExportLogs, ViewLogs)
- Keyboard: Write, Download, LogToServer
- Dns: GetRecords
Kein Durchkommen dank Hornetsecurity ATP
So ausgefeilt die Verschleierungsmethoden dieses NanoCore-Angriffes auch sind, die wahre Absicht des Tools wird durch die Verhaltensanalysen der Hornetsecurity ATP Sandbox erkannt. Diese erkennt sowohl das Entpacken der Dateien, das Erstellen der neuen Dateien, die Prozessinjektion der NanoCore DLLs in einen legitimen Prozess, die Modifikation der Registyeinträge als auch die Netzwerkkommunikation.Indicators of Compromise
Die folgenden Dateien mit ihren sha256-Hashwerten wurden in dem Angriff verwendet. Da AutoIT eine legitime Software ist, führen wir das Tool hier nicht mit auf.- inquiry.pdf** 9c5d693e7c86f8f0c05af495d95a9d6f998ec93bec5c6f8d560d54f8a945f866
- inquiry.zip** e0d88bab6749297eb1c03ec1e86bb0d9b7e53d10de8c05dcde032e5f040d03a2
- inquiry.scr** 4a71602852c7a1a2b3c3c9690af9a96b57c622b459e4fff4f34d43c698b034b8
- DIENU** 5612ac210a8df891f9ed07c5a472beb0d78f1f714f9f37e31320ec1edbc41d9c
- SurveillanceExClientPlugin.dll** 01e3b18bd63981decb384f558f0321346c3334bb6e6f97c31c6c95c4ab2fe354
- ClientPlugin.dll** 61e9d5c0727665e9ef3f328141397be47c65ed11ab621c644b5bbf1d67138403
- qoa.docx** f36603bf7558384d57a9f53dfcd1e727bd6f56d4a664671f06fd5ca1383413d0
- stt=dsr** 6236beb6702dd8396339fdad8c4539d7e177733a0f7cff1ded06f060895feac1