Neue APT-Attacke offenbart technischen Fortschritt in der Exploit-Entwicklung

Vor kurzem hatten wir es mit einer interessanten zielgerichteten Attacke zu tun, die die meisten Antiviren-Produkte zu umgehen in der Lage ist. Es handelt sich dabei um eine Spearphishing-Attacke, die sich gegen verschiedene Tibet- und Menschrechtsaktivisten richtet. Sie macht deutlich, welche Anstrengungen unternommen werden, um diese Gruppen zu infiltrieren. Mit einigen – im Verhältnis zu vielen anderen Exploits, die die Sicherheitslücke CVE-2012-0158 ausnutzen – einzigartigen Merkmalen. Hier ein Beispiel für derartige E-Mails:

207319837

Betreff: 噶厦政府发起彻查中国民主人硬汉李旺阳被杀事件签名

Übersetzt bedeutet das in etwa: “Die Kashag-Regierung hat gründliche Ermittlungen zum Mord an Chinas Bürgerrechtler Li Wangyang eingeleitet”

Attachment: 民主硬汉李旺阳.doc

(a5513fd67fa3ef135b6eeab4661f6640 – Kaspersky “Exploit.MSWord.CVE-2012-0158.l” auch CVE-2012-0158; Exploits wie dieses werden proaktiv, generisch vom Modul Automatic Exploit Prevention während der Laufzeit als „PDM:Exploit.Win32.Generic“ detektiert)

Übersetzt „Demokratischer zäher Kerl Li Wangyang.doc“

Nachricht: “Kollegen:

Möge es Euch wohlergehen! Um Chinas demokratischen Kurs zu unterstützen, hat sich die tibetanische Kashag-Regierung entschlossen, eine gründliche Ermittlung im Mordfall des chinesischen Demokratie-Verfechters Li Wangyang durchzuführen und eine tibetanische Unterschriftenaktion für die Aktivisten zum Zwecke der Wiedergutmachung durchzuführen.

Lausanne, Nima”

Interessanterweise handelt es sich bei der Democractic Party of HK um eine weitere Gruppe, deren Webserver kompromittiert wurden, und die unwissend mit APT in Verbindung stehende Exploits und Backdoors verbreiten, die die politisch motivierten Besucher angreifen. Darüber berichteten wir bereits.

Das Attachment wurde an eine lange Liste von tibetanischen Communitys, Aktivisten und Menschenrechtler gesendet, und zwar von dem gefälschten Account einer anderen Adresse von tibetanischen Aktivisten, die merkwürdigerweise über eine lecke Datenbank des Stratfor-Vorfalls offen gelegt worden war. Allerdings wurde nie ein Personenname mit dem Nutzer-Account in der offengelegten Stratfor-Datenbank in Verbindung gebracht, so dass wir hier nicht sagen können, wie gut die Angreifer die tibetanische Community kennen. Auf technischer Seite gibt es einige interessante Merkmale hinsichtlich des Attachments von 266 KB, was eine normale Größe für viele uns bekannte Spearphishing-Attacken ist. Bei der Datei handelt es sich um ein Exploit, das als Word-Dokument daher kommt und einen fehlerhaften Code in mscomctl.ocx ausnutzt, auch bekannt als CVE-2012-0158. Sobald Word die Datei öffnet, parst die Anwendung die Befehlswörter und findet dabei heraus, dass es den MSComCtlListView ActiveX Control laden soll. Trotzdem ist der Inhalt dieser Datei, die die gewünschte Kontrollstruktur forciert, anders als das Metasploit PoC, das fast alle Exploits zu CVE-2012-0158 aufweisen. Zunächst repräsentiert der Datei-Header nicht die überaus gebräuchliche RTF-Implementation des Exploits, die so aussieht:

207319836

Anstelle dessen ist die gesamte Datei als einzelner OLE-Stream .doc file implementiert. Hier der Beginn der Datei, der den Datei-Typ anzeigt. Diese Art von Content ist ungewöhnlich für alle CVE-2012-0158-Spearphishing-Attacken, mit denen wir es bisher zu tun hatten:

207319835

Diese Dateityp-Implementation ist für das Exploit einmalig. Diese Leute sind bei ihrer Entwicklung nicht von Metasploit oder den COTS Exploit-Kits abhängig. Da einige Scanner nach eingebetteten Objekten oder OLE-Streams in Verbindung mit object und objocx Befehlswörtern gesucht haben, konnten viele diese Implementation gänzlich überspringen.

Wenn sich die Datei öffnet und die Ausführung auf dem verwundbaren Code abläuft und einen Stapelüberlauf verursacht, steht ecx auf 0xc00. Dieser Wert ist sehr viel höher als fast der meiste andere Code da draußen bei 3,072 Bytes Code. Anders als fast jeder andere Exploit-Code erfordert dieser Shellcode-Abschnitt keinen NOP-Schlitten irgendeiner Art. Doch wie fast der gesamte andere Code da draußen kehrt der Exploit-Code zur Mitte einer Instruktion zurück, um maßgeschneidert eine jmp esp-Instruktion innerhalb des mscomctl.ocx zu erstellen und in seinen Shellcode-Abschnitt zu schwenken. Der Abschnitt selbst ist recht gewöhnlich; er stellt den Stapel ein und decodiert daraufhin die verbleibenden 2k Bytes des Shellcode-Teils mit einer xor 0x70 Schleife – ein weiterer simpler Obfuskations-Trick, um eine statische Analyse zu verhindern.

207319834

Der Code lokalisiert dann den PEB und geht die geladene Modulliste durch, um den Speicherort des ersten Eintrags in der Liste zu identifizieren. Dieser Ort wird später für die API-Lookups verwendet, während Aufrufe von GetProcAddress von ungewöhnlichen Speicherorten verhindert werden (eine weitere Umgehung von Anti-Malware-Produkten).

Aufrufe der Import Address Resolution Funktion des Shellcodes sind durchsetzt mit Aufrufen der Base Address Locator Funktion des geladenen Moduls. Hier wird der “shlwapi.dll”-String in den Stapel kopiert und sein ptr wird für einen LoadLibraryA-Aufruf in den Stapel eingekellert:

207319833

Die maßgeschneiderte Funktion ImportHashAddressResolution ist eine Implementation von GetProcAddress, um die Adressen der win32api-Funktionen aufzulösen. Merkwürdigerweise enthalten einige dieser Funktionen CreateFileMapping, MapViewofFile und ImageHLP.ResolveRVAtoVA. Das sind ungewöhnliche Aufrufe zur Implementation, um die Bibliotheken zu laden und Funktionen zu lokalisieren, ohne die üblicherweise verwendeten API-Aufrufe zu benutzen.

Wenn das Exploit schließlich Ax.tmp (f3219d66e36924ded709fe0da1d5d2c8 – Kaspersky “Backdoor.Win32.Agent.cjqi”) in %temp% erstellt, dechiffriert es den Datei-Content im Speicher mit einer simplen “xor – ror”-Schleife, bevor die Datei auf die Festplatte geschrieben wird. Diese simplen Schleifen tragen dazu bei, den schädlichen ausführbaren Content zu verbergen, ohne Verdacht zu erregen.

207319832

Die letzte der in dieses Exploit integrierten Ausweichtechniken schließt einen Sprung zwei Instruktionen hinter dem normalen Eintrag von kernel32.WinExec ein, und überspringt so den ganzen Einleitungsteil. Eine Reihe von verhaltensbasierten Sicherheitsprodukten setzen Nutzer-Modus-Hooks auf Funktionen wie WinExec und ShellExecute um, was durch diesen Sprung komplett ausgelassen würde.

207319831

Es lässt sich das Fazit ziehen, dass das Exploit-Entwicklungsteam, dass hinter einigen dieser APT-Attacken steckt, langsam seine Fertigkeiten ausweitet, und hart daran arbeitet, die Entdeckung durch AV-Produkte zu umgehen. Zum gegenwärtigen Zeitpunkt sind die Angriffe gegen CVE-2012-0158 am populärsten, doch wir können davon ausgehen, dass die kürzlich entdeckten IE 0-Days sie bald ablösen werden.

Wir werden in einem späteren Posting näher auf den abgesetzten Backdoor und die dazugehörige Kommunikation eingehen.

Ähnliche Beiträge

Schreibe einen Kommentar

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