In unserer Blogreihe zur Malware-Entfernung haben wir Ihnen bereits erklärt, wie Sie Ihren Computer von PUPs und Ransomware befreien können. Heute befassen wir uns mit einer weiteren häufig vorkommenden Malware-Kategorie: Fileless Malware. Dieser Schädling ist in den vergangenen Jahren immer beliebter geworden, da er Sicherheitssoftware zu umgehen weiß. Fileless Malware auf einem infizierten Computer zu finden und diese dann zu entfernen, kann also mitunter zu einer kleinen Herausforderung werden.
Wie immer werden wir für unsere Erläuterungen ein relativ einfaches Beispiel wählen, um das Vorgehen leichter verständlich zu machen.
Was ist Fileless Malware?
Wenn Sie online nach „Fileless Malware“ – wörtlich übersetzt „dateilose Schadsoftware“ – suchen, werden Ihnen die unterschiedlichsten Definitionen angezeigt. Häufig steht dann etwas zu „Exploits“, „Skripten“, „Windows-Tools“, „nur im RAM“ oder „unsichtbar“. Das klingt alles recht kompliziert, falls Sie (noch) nicht mit einer Malware-Analyse vertraut sind. Daher sei zunächst erklärt, was wir meinen, wenn wir in diesem Artikel von „Fileless Malware“ (kurz FM) sprechen.
Es handelt sich hierbei um eine Malware, die ihre schädliche(n) Komponente(n) nicht im Dateisystem von Windows (also wo die Dateien und Ordner gespeichert sind) ablegt. Stattdessen wird ihr bösartiger Code über Windows-Registrierungseinträge oder das Internet direkt in den Arbeitsspeicher (RAM) geladen.
Es wird also keine bösartige Datei angelegt, sondern der Code woanders gespeichert. Das hat einen einfachen Grund: Wenn es auf der Festplatte keine bösartige Datei gibt, kann die Sicherheitssoftware sie beim Scan auch nicht finden. Der Schädling ist also ungeachtet seines Namens nicht wirklich „dateilos“ in dem Sinne. Sie können immer noch Verknüpfungen oder Skript-Dateien (z. B. .bat, .vbs, .ps1) finden, die in der Regel jedoch nur dazu dienen, auf den bösartigen Code zu verweisen oder ihn zu laden.
Wie bereits erwähnt besteht der einzige Grund zur Verwendung von Fileless Malware darin, eine Erkennung durch Sicherheitssoftware zu erschweren. Der Schädling gelangt häufig über bei Hackern beliebte Exploits (wie EternalBlue) auf den Computer, was ebenfalls ein Versuch ist, Sicherheitssoftware zu umgehen. Aber auch klassische Herangehensweisen wie das Versenden von bösartigen E-Mail-Anhängen sind gebräuchliche Verbreitungsmethoden. Fileless Malware lässt sich für viele Zwecke einsetzen, wobei Cryptomining und Klickbetrug wohl die üblichsten sind. Typische Symptome, die auf einem infizierten Computer beobachtet werden können, sind ungewöhnlich hoher CPU-Verbrauch durch reguläre Windows-Prozesse oder Fehlermeldungen wie die folgende:
Dabei tritt der Fehler auf, obwohl Sie in dem Moment keine Anwendung nutzen, die PowerShell benötigen würde …
Werfen wir also einen Blick auf ein paar Windows-Komponenten, die gern von Fileless Malware missbraucht werden. Sie sind bei dem Schädling so beliebt, weil sie das Ausführen verschiedenster Skripte zulassen.
Skripte sind ein einfaches Stück Code, das in den meisten Fällen – zumindest teilweise – ohne maschinelle Hilfe lesbar ist. Zwar lassen sie sich verschleiern, doch es gibt verschiedene Ressourcen online, mit denen sie wieder deutlich gemacht werden können. Der Vorteil dieser Angriffsmethode ist, dass Windows angewiesen werden kann, diese Skripte auszuführen. Folglich wird der Code, der schließlich den bösartigen Prozess lädt, von einer vertrauenswürdigen Windows-Komponente ausgeführt. Dadurch soll eine Erkennung durch Sicherheitslösungen verhindert werden. Inzwischen sind jedoch viele Produkte (Emsisoft Anti-Malware eingeschlossen) auf diese Vorgehensweise vorbereitet und blockieren zahlreiche Aktionen, die von derartigen Skripten ausgeführt werden.
Im Folgenden ist eine Liste der berechtigten Prozesse und Komponenten, die häufig von Fileless Malware missbraucht werden. In unseren Beispielen zur zum Entfernen der Malware kommen wir noch einmal darauf zurück.
- Mshta.exe: Der Microsoft-HTML-Anwendungshost ist ein Hilfsprogramm von Windows zum Ausführen von HTA-Dateien (HTML-Anwendungen). Mehr dazu >
- Wscript.exe: Über den Windows Script Host können Anwender Skripte in verschiedenen Skriptsprachen ausführen, um alle möglichen Aufgaben durchzuführen. Mehr dazu >
- PowerShell: Die Windows PowerShell ist eine Befehlszeilenschnittstelle mit interaktiver Aufforderung und einer Skriptumgebung, also eine leistungsstärkere Variante der normalen Eingabeaufforderung cmd.exe. Mehr dazu >
- WMI: Die Windows-Verwaltungsinstrumentation ist eine Windows-Kerntechnologie, mit der Computer sowohl lokal als auch per Fernzugriff verwaltet werden können. WMI wird für alltägliche Verwaltungsaufgaben mithilfe von Programmier- oder Skriptsprachen eingesetzt. Mehr dazu >
Erkennen von Fileless Malware
Nachdem Sie die bisherigen Ausführungen gelesen haben, kommt Ihnen das Aufspüren von Fileless Malware wahrscheinlich wie die sprichwörtliche Suche nach der Nadel im Heuhaufen vor. Hier kann ich Entwarnung geben. Auch wenn der bösartige Code versteckt ist, gilt für Malware (wie für jedes Programm) eine schlichte Grundvoraussetzung: sie benötigt zum Starten eine Ladeadresse. Weitere Informationen dazu finden Sie in unserem Artikel Grundlagen zur Malware-Entfernung.
Sollten Sie keine Informationen über eine Malware haben, ist die Ladeadresse meistens der beste Ausgangspunkt. Haben Sie diese gefunden, ist noch etwas Detektivarbeit erforderlich, um wirklich alle Bestandteile des Schädlings aufzuspüren. Meistens gibt es eine Reihe von Skripten und Verknüpfungen, die zu dem bösartigen Code führen.
Autoruns ist ein gutes Hilfsmittel, um mit unserer Suche zu beginnen. Meistens ist dann eine manuelle Überprüfung der Objekte nützlich, auf die die Ladeadresse verweist. Sie können beispielsweise die Skripte in einem Texteditor durchgehen, den Zielpfad von Verknüpfungen überprüfen oder nachsehen, welche URLs eingebettet sind. Machen Sie sich am besten schon jetzt Notizen, damit Sie später keine der zu entfernenden Komponenten übersehen.
Entfernen von Fileless Malware
Wir haben in der Vergangenheit bereits erwähnt, wie wichtig es ist, vor dem Entfernen einer Malware alle ihre Bestandteile zu identifizieren. Bei Fileless Malware ist das umso wichtiger. Sollten Sie nämlich nicht alle Komponenten aufspüren, ist Ihr Computer zu dem Zeitpunkt, an dem Sie mit dem Entfernen der ersten Teile fertig sind, höchstwahrscheinlich schon wieder damit infiziert.
Haben Sie jedoch einmal alle Komponenten gefunden, ist deren Entfernung (in der Regel) wie bei den meisten Malwares recht unkompliziert. Oftmals reichen Tools wie Autoruns und Process Explorer aus. Für ein paar einfache Aufgaben werden wir auch Prozess Monitor und TCPView verwenden.
Schauen wir uns also ein paar praktische Beispiele an.
Beispiele: WMIGhost und Poweliks
Um Ihnen die am häufigsten eingesetzten Techniken und Schlupflöcher von Fileless Malware zu demonstrieren, haben wir zwei Beispiele ausgesucht. Das erste ist der Cryptominer WMIGhost, der mithilfe Ihrer Computerressourcen für die Angreifer Kryptowährung schürft. Das zweite ist Poweliks, eine Malware zum Klickbetrug. Angreifer nutzen sie, um mit Ihrem Computer Geld zu verdienen, indem die Malware im Hintergrund auf Online-Werbung klickt.
1. Beispiel: WMIGhost
Fangen wir mit WMIGhost an. Mit diesem Beispiel möchten wir Ihnen zeigen, dass sich eine kompliziert aussehende Infektion mithilfe gesunden Menschenverstands und VirusTotal recht einfach identifizieren und entfernen lässt. Was der Name schon andeutet, bestätigt sich im Scanbericht von Autoruns. Dieser Schädling nutzt eine WMI-Ladeadresse.
Auf den ersten Blick sieht das von der WMI geladene Skript nach purem Nonsens aus. Zum Glück müssen wir jedoch nicht den gesamten Inhalt verstehen, um herauszufinden, ob es gut- oder bösartig ist. Konzentrieren wir uns auf ein paar Hauptelemente. Es werden einige URLs aufgeführt. Mit einer Suche auf VirusTotal können wir mehr über sie herausfinden. Schon beim Durchsehen der Suchergebnisse für die erste URL werden unter „Kommunizierende Dateien“ viele Dateien mit hohen Erkennungsraten angezeigt, die auf diese URL verweisen. Die anderen URLs haben ähnliche Ergebnisse.
Ohne den Rest des Skripts verstehen zu müssen, können wir bereits jetzt sagen, dass es bösartig ist. Wir können auch erkennen, dass es höchstwahrscheinlich zu dem Prozess „scrcons.exe“ führt. Dabei handelt es sich um die Skriptanwendung WMI Standard Event Consumer, die zum Ausführen von WMI-Skripten dient.
Nun können wir mithilfe von TCPView bestätigen, dass ein Skript ausgeführt wird, das auf die vorgenannten URLs zuzugreifen versucht:
Wenn wir über www.virustotal.com die unter „Remote Address“ aufgeführten IPs abgleichen, werden wir feststellen, dass sie tatsächlich auf *.blogspot.com, *.wordpress.com, *.livejournal.com und *.tumblr.com verweisen. Das sind die URLs, die wir in dem obigen Skript gefunden haben.
Zum Entfernen können wir in Autoruns einfach einen Rechtsklick auf das WMI-Skript machen und „Delete“ auswählen. Sollte immer noch ein „scrcons.exe“-Prozess laufen, müssen wir diesen zunächst manuell beenden. Anschließend können wir mit TCPView oder Process Explorer überprüfen, ob es seitens der scrcons.exe immer noch Verbindungsversuche zu diesen Adressen gibt.
2. Beispiel: Poweliks
Schauen wir uns nun eine Infektion mit Poweliks an. Da wird es schon etwas komplizierter. Aber eins nach dem anderen. Wir beginnen zunächst wieder mit Autoruns. Hier finden wir unter einem Run-Registrierungsschlüssel eine Ladeadresse, die eigentlich recht eindeutig sein sollte.
Offenbar wurde dieser Standardwert infiziert und verweist nun auf eine .bat-Datei, die im Ordner C:\Users\Admin\Appdata\Local\500f2 liegt. Eine .bat-Datei, auch als Batch- oder Stapelverarbeitungsdatei bezeichnet, ist in der Regel ein einfaches Skript. Schauen wir sie uns also einmal genauer an. Wir finden sie in dem besagten Ordner zusammen mit einer anderen nichtssagenden Datei.
Wie Sie sehen, besteht die Datei aus nur einer Befehlszeile, die nichts anderes bedeutet als „Führe 39267.2f489e aus!“. Dabei handelt es sich offensichtlich um die zweite Datei in dem Ordner. Jetzt werden Sie sich sicher fragen, warum der Run-Schlüssel nicht einfach direkt auf die Datei verweist. Durch diese Methode wird eine vollkommen harmlos aussehende Batchdatei geladen, die keinerlei verdächtigen Strings enthält, die wiederum von einer Sicherheitslösung erkannt werden könnten.
Schauen wir uns nun die zu ladende Datei C:\Users\Admin\Appdata\Local\500f2\39267.2f489e an. Hier ist VirusTotal leider keine große Hilfe. Die Analyse bringt keine Ergebnisse und es gibt weder ein Dateiformat noch andere aussagekräftige Informationen zu der Datei, die von Nutzen sein könnten.
Es gibt jedoch einen Punkt, an dem wir ansetzen können: die ungewöhnliche Dateiendung .2f489e. Da wir nicht sagen können, wofür sie steht und was sie tut, schlagen wir sie in der Windows-Registrierung nach. Dazu verwenden wir den Registrierungsschlüssel HKEY_CLASSES_ROOT (HKCR), in dem alle Dateiendungen gespeichert sind. Ist die Endung darin nicht aufgeführt, kann auch die b31a2.bat nichts mit der Datei anfangen, da Windows nicht weiß, wie es damit umgehen soll.
Für die Endung .2f489e ist zwar ein Registrierungseintrag vorhanden, der jedoch zu nichts weiter dient, als auf einen anderen HKCR-Schlüssel zu verweisen: e862b.
Und hier wird es interessant … Schauen wir uns den Eintrag unter HKCR\e862b\Shell\Open\Command an, wird deutlich, dass unsere Datei letztendlich über die Mshta.exe ein JavaScript-Objekt startet, das wiederum weitere Daten aus dem Wert „zflends“ im Schlüssel HKEY_CURRENT_USER\software\juapuofg abruft. Das sieht alles recht willkürlich und nicht sonderlich vertrauenswürdig aus. Gehen wir dem also weiter nach.
Da die in seinen Werten gespeicherten Informationen verschleiert wurden, lässt sich nur schwer sagen, was der Registrierungseintrag bewirken soll. Einen Hinweis hierzu kann uns Process Explorer geben.
Wenn wir die Malware manuell starten (etwa durch Doppelklick auf die b31a2.bat), werden wir feststellen, dass die mshta.exe eben jenes Skript lädt, das den „zflends“-Wert mit dem schädlichen Code liest und daraufhin PowerShell startet. Der im „zflends“-Wert gespeicherte Code ist also höchstwahrscheinlich ein verschleiertes PowerShell-Skript.
Das ist jetzt aber nicht unbedingt von Belang. Wir haben den bösartigen Code gefunden. Er war verschlüsselt und auf clevere Weise in einem willkürlich benannten Registrierungseintrag versteckt. Damit ist er die letzte zu entfernende Komponente auf unserer Liste (die Sie sich spätestens jetzt angelegt haben sollten).
Bevor wir jedoch mit dem eigentlichen Entfernen beginnen, lassen Sie uns die gefundenen Bestandteile noch einmal zusammenfassen (in der Reihenfolge, wie sie gefunden wurden):
- HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run – Standardwert Dieser Wert wurde geändert, um auf die b31a2.bat zu verweisen. Er darf nicht entfernt, sondern muss auf den Standardeintrag zurückgesetzt werden: der leere Wert „Default“ ohne weitere Daten.
- C:\Users\Admin\Appdata\Local\500f2 Dieser Ordner enthält die Dateien b31a2.bat und 39267.2f489e.
- HKEY_CLASSES_ROOT\.2f489e Das ist der Schlüssel, in dem die .2f489e-Dateiendung registriert ist. Er erfüllt keine andere Aufgabe, als auf den Schlüssel e862b zu verweisen.
- HKEY_CLASSES_ROOT\ e862b Das ist der Schlüssel, auf den die Endung .2f489e verweist. Der Standardwert in dem Unterschlüssel Shell\Open\Command wird von Windows überprüft, sobald dieser Dateityp ausgeführt wird. In unserem Beispiel enthält er die Information, das Skript mit dem eigentlichen Schadcode zu laden.
- HKEY_CURRENT_USER\software\juapuofg Dieser Schlüssel enthält in einem seiner Werte den bösartigen Code, der als verschleiertes PowerShell-Skript ausgelegt ist.
Jetzt wo wir wissen, was wir entfernen müssen, können wir mit der eigentlichen Reinigung anfangen. Versuchen wir jedoch, den infizierten Standardwert über Autoruns zu entfernen, erhalten wir eine Fehlermeldung. Wenn wir dann den 500f2-Ordner löschen, wird er binnen einiger Sekunden neu angelegt. Offensichtlich läuft ein Prozess, der die Malware überwacht und sicherstellt, dass sie nicht entfernt wird. Schauen wir uns die Einträge in Process Explorer an, fällt uns nichts dergleichen auf. Wir könnten jetzt einfach wahllos Prozesse beenden in der Hoffnung, den richtigen schnell zu finden und Windows nicht zum Absturz zu bringen. Es gibt jedoch eine einfachere Methode, um den Prozess zu finden, der den 500f2-Ordner anlegt (und damit höchstwahrscheinlich die Entfernung verhindert).
Dafür nutzen wir Process Monitor. Um uns die Sache zu erleichtern, deaktivieren wir unter „File“ die Option „Capture Events“ und wählen dann unter „Edit“ die Option „Clear Display“. Jetzt müssen wir das für uns interessante Ereignis aufzeichnen: das erneute Erstellen des 500f2-Ordners samt seinen Inhalten. Wenn wir zum Aufzeichnen bereit sind, aktivieren wir unter „File“ die Option „Capture Events“. Dann löschen wir den Ordner und warten, bis er wieder erstellt wurde. Nun deaktivieren wir die Option „Capture Events“ wieder, damit damit das Protokoll nicht zu lang wird.
Jetzt haben wir eine lange Liste mit aufgezeichneten Ereignissen. Wir müssen jedoch nicht einmal auf „Operation is WriteFile“ filtern. Der Ordnername 500f2 ist so einzigartig, dass wir ihn schlicht über die Suchfunktion (Strg + F) finden können – mit folgendem Ergebnis:
Offensichtlich ist die regsvr32.exe der Prozess, der die soeben gelöschten Objekte wieder anlegt. Wir suchen den regsvr32.exe-Prozess also in Process Explorer und beenden ihn. (Beachten Sie hierbei, dass die Datei regsvr32.exe selbst legitim ist und nicht entfernt werden darf.) Jetzt können wir den Ordner löschen, ohne dass er erneut angelegt wird. Außerdem können nun die HKCR-Schlüssel und der HKCU\Software\juapuofg-Schlüssel gelöscht werden.
Beim Run-Registrierungsschlüssel ist das nicht ganz so einfach. Bei jedem Zugriffsversuch erhalten wir die folgende Fehlermeldung:
Natürlich könnten wir herauszufinden versuchen, wo genau das Problem liegt. Da der Schlüssel jedoch leer ist und keine weiteren berechtigten Werte enthält, können wir auch einfach probieren, den gesamten Schlüssel zu löschen, damit Windows ihn wieder neu anlegt. In unserem Fall funktioniert es. Bei Poweliks wird der Fehler häufig durch ungültige Zeichen im Wert oder einen Unterschlüssel ausgelöst, den der Registrierungs-Editor nicht interpretieren oder darstellen kann.
Fazit
Selbst kompliziertere Malware lässt sich ohne umfassende Kenntnisse in der Malware-Analyse entfernen – vorausgesetzt Sie recherchieren genau, mit welcher Art von Schädling Sie es zu tun haben. Das Entfernen von Fileless Malware mag eine interessante Herausforderung sein, ist jedoch auch mit einem gewissen Zeitaufwand verbunden. Es ist und bleibt daher unerlässlich, Ihren Computer zu schützen. Wir empfehlen Ihnen den Einsatz einer Sicherheitslösung, die auch einen Befall mit Fileless Malware verhindern kann (beispielsweise Emsisoft Anti-Malware). Halten Sie zudem Ihr Betriebssystem und die darauf installierten Programme immer auf dem neuesten Stand, damit Malware bei Ihrem Computer keine Chance hat.
WEBINAR-ANKÜNDIGUNG: Elise führt am Mittwoch, den 24. Oktober um 21:00 Uhr (MEZ) ein Webinar (auf Englisch) zur Entfernung von Fileless Malware durch, in dem Ihnen das in diesem Artikel beschriebene Vorgehen live demonstriert wird. Hier können Sie sich registrieren.
Hinweis: Das Webinar ist nur auf Englisch verfügbar.
Sollten Sie Fragen haben, die Elise während des Webinars ansprechen soll, schreiben Sie sie gerne in die Kommentare unten. Natürlich können Sie auch während des Webinars Fragen stellen. Wir freuen uns auf Sie.
PS: Die Teilnehmerzahl ist beschränkt.
Haftungsausschluss: Dieser Artikel und das Webinar dienen allein zu Präsentationszwecken. Es gibt die unterschiedlichsten Varianten von Fileless Malware und für viele von ihnen ist je nach Einsatzzweck ein anderer als der hier beschriebene Ansatz zum Entfernen erforderlich. Uns ist durchaus bewusst, dass es für jede Regel eine Ausnahme gibt und die Situation wesentlich komplexer ausfallen kann. Auf all diese Ausnahmen einzugehen, wäre jedoch nicht im Sinne dieses Blogartikels. Sollten Sie beim Entfernen von Malware Unterstützung benötigen, laden Sie sich gern unser kostenloses Emsisoft Emergency Kit herunter oder wenden Sie sich an unsere Malware-Analytiker unter support@emsisoft.com.
Wir wünschen eine schöne (Malware-freie) Zeit.
Übersetzung: Doreen Schäfer