Angler Exploit Kit – Operieren auf der Höhe der Zeit

Wie wir in einem unserer früheren Blog-Beiträge über Exploit-Kits (Nuclear EK) versprochen haben, werden wir einen genaueren Blick auf das Angler Exploit Kit werfen. Angler EK ist wahrscheinlich das raffinierteste Exploit-Kit, das derzeit von Cyberkriminellen verwendet wird. Es hat Pionierarbeit geleistet und Lösungen entwickelt, die andere Exploit-Kits erst später einsetzten, z. B. Antiviren-Erkennung und verschlüsselte Dropper-Dateien. Außerdem integriert Angler am schnellsten die neuesten Zero-Days, wie z. B. den Adobe Flash Zero-Day (CVE-2015-0311) von vor ein paar Wochen, und verwendet eine bemerkenswerte, einzigartige Verschleierung. Schließlich führt Angler die abgelegte Malware aus dem Speicher aus, ohne jemals auf die Festplatte zu schreiben; diese einzigartige Technik unter den Exploit-Kits macht es für herkömmliche Antiviren-Technologien extrem schwierig, sie zu erkennen, da sie auf das Scannen des Dateisystems angewiesen sind.

Während Angler das fortschrittlichste Exploit-Kit in der heutigen Bedrohungslandschaft ist, sind Websense-Kunden mit ACE, unserer Advanced Classification Engine, in den folgenden Stufen vor dieser Bedrohung geschützt:

  • Stufe 2 (Köder) – ACE verfügt über eine Erkennung für die kompromittierten Websites.
  • Stufe 3 (Umleitung) – ACE erkennt den eingeschleusten Code, der den Benutzer auf die Exploit-Seite umleitet.
  • Stufe 4 (Exploit-Kit) – ACE erkennt den bösartigen Code, der versucht, diesen Cyberangriff auszuführen.
  • Stufe 5 (Dropper-Dateien) – ACE erkennt die mit diesem Angriff verbundenen Binärdateien

Verschleierung

Die Landing Page von Angler besteht aus vier grundlegenden Teilen. Erstens gibt es einen sichtbaren englischen Text, der dem Opfer des Exploit-Kits vorgaukelt, eine legitime Seite aufgerufen zu haben. Zweitens enthält sie verschiedene Deobfuskationsroutinen, um die eigentlichen bösartigen Skripte zu deobfuskieren. Diese Skripte befinden sich in p class-Tags und sind als base64 kodiert. Die Dekodierung der base64-Strings offenbart den eigentlichen verschleierten Code des Exploit-Kits. Und schließlich enthält die Landing Page mehrere verschlüsselte Strings, die verschiedene URLs enthalten, die zu den verschiedenen im Kit enthaltenen Exploits (Flash, Silverlight, Internet Explorer) führen.

Beispiele von der Angler-Landing-Page

Angler

Exploit

Deobfuscated Exploit Code

Wenn die Landing-Page deobfuscated ist, wird die wahre Natur des Codes enthüllt. Angler verwendet, genau wie Nuclear und verschiedene andere Exploit-Kits, eine sehr einfache zweite Ebene der Verschleierung, um die Erkennung durch Sicherheitsprodukte noch schwieriger zu machen.

Es verwendet auch Antiviren-Erkennung zusätzlich zur Erkennung verschiedener Virtualisierungslösungen (VMWare, VirtualBox, Parallels) sowie einen Web-Debugging-Proxy namens Fiddler, der von Sicherheitsforschern häufig verwendet wird. Die Umsetzung dieser Maßnahmen macht es sehr schwierig, dieses Exploit-Kit in freier Wildbahn zu beobachten und zu untersuchen, da sich die meisten Sicherheitsforscher häufig stark auf diese Tools verlassen.

Erkennung verschiedener .sys- und .dll-Dateien, die zu AV- und Virtualisierungssoftware gehören

Software

VMWare, VirtualBox, Parallels-Erkennung sowie Fiddler Web-Debugging-Proxy

Exploit

Das einzigartigste Merkmal von Angler ist die Verwendung dieser verschlüsselten URL-Pfade. Zur Ver- und Entschlüsselung dieser Daten wird eine einfache transpositionsbasierte Chiffre verwendet (vereinfacht ausgedrückt: die Buchstaben werden verwürfelt).

Die Entschlüsselungsroutine ist in den verschleierten Teil des Exploit-Kits eingebettet.

Entschlüsselungsroutine, wie sie im Kit zu finden ist

Routine

Entschlüsselungsroutine formatiert und kommentiert

Exploit

Wir werden ein sehr einfaches Beispiel verwenden, um zu zeigen, wie die Entschlüsselung funktioniert. Nehmen wir an, unser Chiffretext (verschlüsselte Daten) ist „TEER CSURH TO PLTAOEL IX TP“ und unser Entschlüsselungsschlüssel ist „OBFUSCATE“. Angler nimmt die alphabetische Reihenfolge der Buchstaben des Schlüssels und ordnet den verschlüsselten Text entsprechend um. Zum Beispiel:

OBFUSCATE → 6,2,5,9,7,3,1,8,4

So erhalten wir die Reihenfolge der Buchstaben im Chiffriertext. Damit können wir ihn leicht entschlüsseln, indem wir die Buchstaben neu anordnen.

Beispiel Entschlüsselung

Malware

Und schließlich werden Leerzeichen aus der entschlüsselten Zeichenfolge entfernt. Natürlich ist dies eine äußerst rudimentäre Form der Verschlüsselung und wäre auch ohne Schlüssel sehr leicht zu knacken, wenn (wie im obigen Beispiel) der Klartext aus echten Wörtern bestünde. Angler verwendet jedoch stark randomisierte URLs, so dass diese Art der Verschlüsselung mehr als ausreichend ist, um die wahre Natur dieser Zeichenfolgen und die tatsächlichen URL-Pfade vor verschiedenen Sicherheitsprodukten zu verbergen.

Der Rest des entschleierten Codes folgt den üblichen Mustern von Exploit-Kits: Es gibt verschiedene Plugin-Erkennungs- und Versionsprüfungsroutinen, so dass das Exploit-Kit „weiß“, welche(r) Exploit(s) auf das Ziel abzufeuern ist. Es gibt auch eine ganze Reihe von Shellcode-Erstellungsroutinen, da Angler einen mehrstufigen Shellcode verwendet, bei dem verschiedene Stufen verschlüsselt und von den vorherigen Stufen dekodiert werden. Es enthält auch einen fest kodierten Verschlüsselungs-/Entschlüsselungsschlüssel für die Dropper-Datei.

Verschlüsselungsschlüssel für Nutzlast

Verschlüsselung

Mehrstufiger Shellcode

Shellcode

Dropper

Wenn der Exploit erfolgreich ist, wird die Nutzlast von Angler auf dem System des Opfers abgelegt. Auf dem Weg durch das Netzwerk ist die Nutzlast immer noch verschlüsselt und wird später vom Shellcode der letzten Stufe entschlüsselt. Diese Technik wird verwendet, um die Erkennung des bösartigen Droppers für herkömmliche Intrusion Detection Systeme (IDS) sehr schwierig zu machen. Wie bereits erwähnt, verwendet Angler „dateilose“ Dropper, was bedeutet, dass sie direkt aus dem Speicher ausgeführt werden. Der von Angler verwendete Dropper heißt Bedep, der eigentlich nur ein Downloader ist – d.h. er ist nicht per se bösartig, sondern wird zum Herunterladen und Ausführen verschiedener Malware verwendet.

Die Nutzlast besteht aus einer Kombination aus Shellcode und der Bedep-DLL. Wenn die ersten paar Bytes der Nutzlast „909090“ (NOPs oder No Operations in x86-Assembler) sind, wird die DLL aus dem Speicher geladen, andernfalls wird sie wie eine normale Dropper-Datei auf die Festplatte geschrieben. Der Shellcode ist für das Ausführen der DLL aus dem Speicher verantwortlich.

API

Der Shellcode löst APIs wie kernel32.dll und wininet.dll auf

API

Zusammenfassung

Angler Exploit Kit ist zweifellos eines der gefährlichsten Exploit Kits, die heute in freier Wildbahn unterwegs sind. Es verfügt über verschiedene Techniken in seinem Arsenal, um herkömmliche Erkennungsmethoden zu umgehen, z. B.:

  • Einzigartige Verschleierung
  • Erkennung von Antiviren-/Virtualisierungssoftware
  • Verschlüsselte Nutzlast
  • Fileless-Infektionen

Außerdem ist Angler oft der Erste, der die neuesten Exploits einsetzt, zu denen von Zeit zu Zeit auch Zero-Days gehören. Die sich ständig weiterentwickelnde Natur von Angler unterstreicht auch die Notwendigkeit von Sicherheitslösungen, die Schutz über die gesamte Kill Chain bieten, anstatt sich nur auf eine Stufe der Kette zu konzentrieren.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.