Veröffentlichungen

Wie man Exploit-Packs in Flash-Objekten versteckt

Inhalt

Eine Grundvoraussetzung für das Gelingen jeder beliebigen Malware-Attacke ist, dass der Angriff nicht bemerkt wird, weder vom Schutzsystem noch vom Opfer. Die Hauptrolle bei der Umsetzung einer verborgenen Attacke spielen Exploits zu Sicherheitslücken in der Software, mit Hilfe derer unbemerkt Schadcode auf den Computer des Opfers geladen werden kann. Die Exploits werden in der Regel in Exploit-Packs transportiert, bei denen es sich um ein Plugin-Detect handelt (das feststellt, welche Software welcher Versionen auf dem Computer des Anwenders installiert ist) und in dem mehrere Exploits zusammengefasst sind, von denen eins an den Nutzer ausgeliefert wird, wenn eine passende Sicherheitslücke gefunden wurde.

Vor kurzem stießen wir auf eine neue Methode, einen Angriff unter Verwendung von Exploits zu verbergen, und zwar verpackten die Cyberkriminellen das Exploit-Pack in einer Flash-Datei.

Laden der Exploits

Bei der Durchführung einer standardmäßigen Drive-by-Attacke wird auf einer Webseite normalerweise ein Link auf eine Seite mit Exploit-Pack platziert (Landing-Page), von der dem Nutzer das notwendige Exploit zugestellt wird. Aus Sicht der Sicherheitssoftware demaskiert dieses Schema alle Komponenten des Exploit-Packs, da sie einfach auf die Seite geladen werden, was zur Folge hat, dass die Exploits und auch das Plugin-Detect im Traffic präsent sind. Damit ein Angriff unbemerkt bleibt, müssen die Cyberkriminellen alle Komponenten einzeln verschleiern.

Ein neuer außergewöhnlicher Ansatz unter Verwendung einer Flash-Verpackung ist aus der Sicht Cyberkrimineller sehr viel effektiver. Die übliche Landing-Page fehlt dabei. Der Nutzer landet dabei über einen Link auf einer Seite mit einem gepackten Flash-Objekt, hinter dem sich sowohl ein Exploit-Pack als auch die Konfigurationsdatei in Form eines Bildes verbirgt. Die gepackte Flash-Datei mit Exploit-Pack wir im Browser mit Lese- und Modifizierungsrechten auf die Seite geladen. Das bedeutet, sie kann auf der Seite Exploits hinzufügen, die später ausgeführt werden.

Schauen wir uns einmal an dem konkreten Beispiel des Exploit-Packs Neutrino an, wie genau das funktioniert.

So sieht das gepackte Flash-Objekt aus:

Gepacktes Flash-Objekt(Exploit-Pack)

Und so sieht es ohne Obfuskation aus:

Flash-Objekt(Exploit-Pack) ohne Obfuskation

Die Verpackung soll das schädliche Objekt vor Entdeckung schützen. Von den meisten der gängigen Deobfuscatoren wird ein solches Flash-Objekt nicht automatisch geöffnet. Der SWF Decompiler beispielsweise hängt sich auf und gibt eine Fehlermeldung aus.

Folgen der Anwendung eines gängigen Deobfuscators an einem Flash-Objekt mit dem Exploit-Pack Neutrino

Dabei schreibt sich das Flash-Objekt auf die Seite im Browser des Anwenders mit dem Parameter allowscriptaccess = "always" ein. Dadurch erhält es die Möglichkeit, die Seite zu modifizieren, sogar wenn das Objekt selbst von einer anderen Domain geladen wird. Einerseits ist es nicht unbedingt ungefährlich, Flash die Erlaubnis zur Modifizierung einer Seite zu geben, da die Verwendung von Flash-Objekten derartige Möglichkeiten nicht erforderlich macht, und das könnte Misstrauen erwecken. Gleichzeitig ist es aber eine völlig legale Option, und sehr viel Flash-Content wird auf eben diese Weise geladen. Dank dieser Option schreibt ein schädliches Flash-Objekt aus seinen Binärdaten einfach die Exploits auf die Seite hinzu.

Auf diese Weise taucht kein schädlicher Content auf – weder im Traffic, noch auf der Seite, die an den Browser weitergeleitet wird. Alles ist in einer schönen Verpackung verborgen, und die Exploits werden bei der Verarbeitung der Seite im Browser sichtbar.

Inhalt des Flash- Objekts

Schauen wir uns nun einmal an, was das zu untersuchende Flash-Objekt enthält und was es auf die Webseite schreibt. Nach dem Entpacken sehen wir, dass sechs binäre Objekte enthalten sind. Diese binären Objekte sind mit RC4 verschlüsselt und einige sind zusätzlich mit dem Standardalgorithmus deflate komprimiert.

Verschlüsselte binäre Objekte innerhalb desFlash-Objekts

Und so wird eins der Objekte entschlüsselt und ausgegeben:

Code zum Entschlüsseln und Einfügen des Exploits auf die Seite

Die übrigen Objekte werden auf dieselbe Weise geöffnet.

Hier eine Aufstellung der binären Objekte, die im Flash-Pack enthalten sind:

  • Ein Exploit zu der Sicherheitslücke CVE-2013-2551 im Internet Explorer.
  • Exploit zur Sicherheitslücke CVE-2013-2551

  • Eine schädliche dll, die auch in anderen Versionen des Exploit-Packs Neutrino enthalten ist (davon wir später noch die Rede sein).
  • Zwei Exploits zu der Sicherheitslücke CVE-2014-6332 in der VBS-Routine im IE:
  • Exploits zur Sicherheitslücke CVE-2014-6332

  • Ein Exploit zu der Sicherheitslücke 2014-0569 in Adobe Flash
  • Exploit zur Sicherheitslücke 2014-0569

  • Exploit zur Sicherheitslücke CVE-2014-0515 in Adobe Flash
  • Exploit zur Sicherheitslücke CVE-2014-0515

In diesem Exploit-Pack gibt es übrigens kein Plugin-Detect für Exploits zu Sicherheitslücken in Adobe Flash, die jeweilige Version von Adobe Flash wird mit Hilfe von ActionScript ermittelt. Die Versionen von Adobe Flash, die für eine Attacke unter Verwendung von Exploits geeignet sind, sind in den Code des Flash-Packs geschrieben:

In den letzten Modifikationen wurden Veränderungen am Flash-Pack vorgenommen, unter anderem wurde ein weiteres Exploit zu der Sicherheitslücke CVE-2015-0536 in Adobe Flash hinzugefügt.

Konfigurationsdatei

Werfen wir nun einen Blick auf eine interessante Funktion im Flash-Pack.

Wie schon erwähnt, wird zusammen mit dem Flash-Objekt auf der Landing-Page ein Bild platziert (die Konfigurationsdatei).

Auf der Seite platziertes Bild

Eine spezielle Funktion überträgt dieses Bild von der Landing-Page, decodiert es mit Base64 und RC4 und erhält die Konfigurationsdatei.

Funktion zum Erhalt der Konfigurationsdatei

Die Konfigurationsdatei enthält die Schlüssel und IDs der oben besprochenen Exploits, die auf das System des Anwenders geladen werden können. Die Konfigurationsdatei ermöglicht den Cyberkriminellen ein flexibles Arbeiten: Sie können, ohne das Exploit-Pack selbst zu verändern, Arbeitsparameter einstellen, die für eine gewisse Zeitspanne optimal sind. So kann einzelnen Exploits beispielsweise eine höhere Priorität zugewiesen werden oder die Schlüssel zur Dechiffrierung der Objekte im Pack können separat gespeichert werden.

Die aus dem Bild dechiffrierte Konfigurationsdatei

In den nachfolgenden Modifikationen des Flash-Packs wurde die Konfigurationsdatei übrigens nicht mehr in Form eines einzelnen Bildes umgesetzt, sondern sie ist im Exploit-Pack selbst enthalten.

Erhalt der Payload

Der Shellcode eines der Exploits ist der vbs-Code mit Binärcode in der Zeile, der infolge der Ausnutzung der Sicherheitslücke CVE-2014-6332 in der vbs-Routine im IE ausgeführt wird. Das hat zur Folge, dass in das Verzeichnis "%temp%/System32/ die Datei shell32.dll geladen wird.

Der Pfad und der Name der geladenen Datei sind der Adresse und dem Namen der Standard-Bibliotheken von Windows sehr ähnlich. Dadurch ist es möglich, unter Anwendung der Standardtechnik dll-Hijacking nicht die Funktionen run, start, open usw. zu benutzen und auf diese Weise den Start der schädlichen dll vor Antiviren-Programmen zu verbergen.

Anwendung von dll-Hijacking an der shell32.dll

Das Exploit ändert die Umgebungsvariable sysdir und versucht System.ShellApplication zu laden und auf diese Weise die schädliche dll zu starten.

Die gestartete dll ist ein Dropper, der das Skript "p.js" auf den Computer des Opfers lädt und startet.

Hauptteil des Codes der shell32.dll

Gestartetes Skriptp.js

Dieses Skript ist der Loader der eigentlichen Ziel-Schaddatei.

Verbreitung

Die in diesem Artikel beschriebene Version des Flash-Packs erschien Ende des Jahres 2014 und wurde im Laufe des ersten Quartals 2015 aktiv verbreitet. Mittlerweile sind neue Versionen des Flash-Packs erschienen, doch das Funktionsprinzip ist gleich geblieben.

Allein im März 2015 registrierten wir einen Angriff des Flash-Packs Neutrino auf die Computer von 60.451 Anwendern. Durchschnittlich wurden täglich etwa 2.000 Nutzer angegriffen, und an einzelnen Tagen stieg die Zahl der potentiellen Opfer auf 5.000 bis 6.000.

Zahl der individuellen Anwender, die vom Flash-PackNeutrino angegriffen wurden

Dieses Exploit-Pack wird hauptsächlich in Angriffen auf Nutzer in den USA und in Kanada verwendet.

Geografie der Attacken des Flash-PacksNeutrino (März 2015)

Fazit

Die relativ neue Technik zur Verbreitung von Exploits unter Einsatz eines Flash-Packs hat sich für Cyberkriminelle als recht vorteilhaft erwiesen. Die Standardeigenschaften von Flash erlauben es ihnen, ein Exploit-Pack in ein Flash-Objekt zu packen und es durch einen Obfuscator zu verbergen. Und die Eigenschaft von Flash, Parameter für den Zugriff auf eine Seite ausgeben zu können, ermöglicht es, Exploits auf eine Seite im Browser des Anwenders zu schreiben. Dabei sind weder im Traffic noch in der zu ladenden Seite Komponenten des Exploit-Packs vorhanden.

Obwohl die Malwareautoren das Exploit-Pack ständig aktualisieren und den schädlichen Flash-Code modifizieren, um eine Erkennung zu verhindern, reagiert Kaspersky Lab rechtzeitig auf diese Bedrohungen. Neben den Standard-Schutzmethoden verwenden unsere Produkte die Spezialkomponente „Automatic Exploit Prevention“ (AEP), die diese Bedrohung mit Hilfe einer Verhaltensanalyse detektiert.

Kaspersky Lab detektiert dieses Flash-Pack als HEUR:Exploit.Script.Blocker, HEUR:Exploit.SWF.Generic.

Wie man Exploit-Packs in Flash-Objekten versteckt

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

 

Berichte

Virologie mobiler Geräte 2016

Im Jahr 2016 stieg die Zahl der Werbe-Trojaner, die in der Lage sind, Superuser-Rechte zu nutzen, weiterhin an. Im Verlauf des gesamten Jahres war das die Bedrohung Nummer eins und wir können bisher keinerlei Anzeichen für eine Trendwende in diesem Bereich erkennen.

Spam im Jahr 2016

Im Jahr 2016 haben sich in den Spam-Strömen verschiedene Veränderungen vollzogen. Die bedeutsamste Veränderung ist dabei sicherlich die Zunahme von Versendungen mit schädlichen Erpresser-Programmen. Wenn man berücksichtigt, wie relativ einfach diese Programme auf dem Schwarzmarkt zu haben sind, so wird sich diese Tendenz aller Wahrscheinlichkeit fortsetzen.

Kaspersky Security Bulletin 2016/2017. Jahresrückblick. Statistik für 2016

2016 war ein angespanntes und turbulentes Jahr im Cyberspace – von riesigen IoT-Botnets über Ransomware bis hin zu zielgerichteten Cyberspionage-Attacken, Finanzdiebstählen und Hacktivismus war alles vertreten – und sogar noch vieles mehr. Der Jahresrückblick und die Statistik für 2016 von Kaspersky Lab liefern einen detaillierten Überblick über diese Ereignisse. Die Kurzzusammenfassung finden Sie hier.

Kaspersky Security Bulletin 2016/2017. Die Ransomware-Revolution

Zwischen Januar und September 2016 hat sich die Zahl der Ransomware-Attacken auf Unternehmen verdreifacht, das ist gleichbedeutend mit einem Angriff alle 40 Sekunden. Der Markt für Ransomware-as-a-Service boomt, das Projekt NoMoreRansom wurde ins Leben gerufen: Für Kaspersky Lab ist Ransomware DAS Thema des Jahres 2016.

Abonnieren Sie unsere wöchentlichen E-Mails

Brandaktuelle Themen direkt in Ihr Postfach