Hijacking von COM-Objekten: Persistenz der diskreten Art

30.10.2014
G DATA Blog

Die Experten von G DATA SecurityLabs entdeckten ein neues Fernsteuerungstool, das wir COMpfun genannt haben. Dieses Fernsteuerungstool unterstützt Windows-Versionen mit 32-Bit und 64-Bit bis Windows 8. Die Features sind für heutige Spionage-Tools recht gängig: Dateimanagement (Download und Upload), Anfertigen von Screenshots, Keylogger-Funktion, die Möglichkeit, Code auszuführen und anderes mehr. Das Tool nutzt HTTPS und eine asymmetrische Verschlüsselung (RSA) für die Kommunikation mit dem Command- und Control-Server. Das große Novum ist der Persistenzmechanismus: Die Malware manipuliert ein legitimes COM-Objekt, sodass dieses in die Prozesse des kompromittierten Systems eingeschleust werden kann. Bemerkenswert ist, dass diese Manipulation keine Administratorrechte erfordert. Mit diesem Fernsteuerungstool können Angreifer ein infiziertes System über einen recht langen Zeitraum ausspionieren, da die Methode zur Umgehung der Erkennung und der Persistenz wirklich sehr innovativ ist!

Was ist ein COM-Objekt?

COM (Component Object Model) wird von Microsoft als „plattformunabhängiges, verteiltes, objektorientiertes System zur Erstellung binärer Softwarekomponenten beschrieben, die zusammenwirken können“. Zweck dieser Technik ist die Bereitstellung einer Schnittstelle, die es Entwicklern gestattet, Objekte anderer Anwendungen zu steuern und zu manipulieren. Wir haben über diese Technologie bereits beim Fall „IcoScript“ berichtet. Jedes COM-Objekt wird durch eine eindeutige ID, die so genannte CLSID, definiert. Beispielsweise lautet die CLSID zur Erstellung einer Instanz von Internet Explorer {0002DF01-0000-0000-C000-000000000046}.

Analyse der COM-Objekt-Manipulation

Während der Installation speichert die Malware zwei Dateien im folgenden Ordner: %APPDATA%\Roaming\Microsoft\Installer\{BCDE0395-E52F-467C-8E3D-C4579291692E}\
Die Dateinamen werden nach folgendem Schema erstellt: api-ms-win-downlevel-[4zufaellige-zeichen]-l1-1-0._dl. Eine Datei ist die 32-Bit-Version der Malware, die zweite ist die 64-Bit-Version.
Im zweiten Schritt werden zwei Registry-Einträge erstellt:

  • HKCU\Software\Classes\CLSID\{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}\InprocServer32
  • HKCU\Software\Classes\Wow6432Node\CLSID\{BCDE0395-E52F-467C-8E3D-C4579291692E }\InprocServer32

Bei jedem Eintrag ist der Standardwert der Pfad zu den Dateien, die zuvor gespeichert wurden. Die Datei mit rhwm im folgenden Screenshot ist die 64-Bit-Version der Malware. Die Datei, deren Name dtjb enthält, wurde für die 32-Bit-Version erstellt.

Zweck dieser Schlüssel ist die Definition eines COM-Objekts mit den CLSIDs {b5f8350b-0548-48b1-a6ee-88bd00b4a5e7} bzw. {BCDE0395-E52F-467C-8E3D-C4579291692E}. Wenn diese Objekte instanziiert werden, wird die Bibliothek in den jeweiligen Prozess geladen. Die CLSIDs sind jedoch von Microsoft vorgegeben, und die neu erstellten ersetzen die ursprünglichen Objekte:

Diese beiden Instanzen werden von zahlreichen Anwendungen verwendet, z.B. vom Browser (durch Verwendung der Funktion CoCreateInstance()). Mit dem Process Explorer können wir die Bibliothek auflisten, die in einem bestimmten Prozess geladen wurde. Hier die geladenen Bibliotheken, die für einen 32-Bit-Prozess entwickelt wurden:

Der folgende Screenshot zeigt die in einen 64-Bit-Prozess geladenen Bibliotheken:

In beiden Fällen sehen wir die fragliche Bibliothek. Die Prozesse verwenden den zuvor erstellten Registry-Schlüssel, um statt der Original-Bibliothek von Microsoft die mit Schadcode infizierte Bibliothek zu laden.

Fazit

Dieses neue Konzept des Persistenzmechanismus bietet mehrere Vorteile: Der Angreifer muss keine „DLL Injection“ vornehmen, welche in der Regel von Virenschutz-Software überwacht wird. Deshalb hat er in den meisten Fällen eine wichtige Sicherheitsmaßnahme überwunden.

Sobald die Infektion erfolgreich war, führt Microsoft Windows die Bibliothek in den Prozessen des infizierten Benutzers nativ aus. Daher ist der Malware-Prozess schwer zu identifizieren. Die Manipulation von COM-Objekten ist zweifellos ein sehr diskretes Verfahren. Es wird nicht einmal mit „Autoruns“ von Sysinternals erkannt.
In unserem Fall haben wir gesehen, wie dieser Mechanismus in Verbindung mit einem Fernsteuerungstool verwendet wird. Dies würde für jeden infizierten und somit betroffenen Benutzer ein ziemliches Ärgernis bedeuten, da die Angreifer ihn ziemlich lange Zeit unbemerkt ausspionieren könnten. Natürlich ist dieser neue Persistenzmechanismus aber nicht auf die Verwendung mit Fernsteuerungstools begrenzt. Angreifer können ihn auch mit jeder anderen Art von Malware kombinieren!

Die Kunden von G DATA sind geschützt: Die aktuellsten Virenscanner erkennen die analysierten Samples (siehe unten). Darüber hinaus identifiziert und blockiert unsere verhaltensbasierte Technologie (Behavior Blocker) diese Art der Bedrohung.

IOC

Registry

  • HKCU\Software\Classes\CLSID\{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}\
  • HKCU\Software\Classes\Wow6432Node\CLSID\{BCDE0395-E52F-467C-8E3D-C4579291692E }

 

Dateien

  • %APPDATA%\Roaming\Microsoft\Installer\{BCDE0395-E52F-467C-8E3D-C4579291692E}\

Die Dateinamen werden nach folgendem Schema erstellt: api-ms-win-downlevel-[4zufaellige-zeichen]-l1-1-0._dl

 

MD5

  • 482a70b7f29361665c80089fbf49b41f    (Trojan.Generic.11683196; Win32.Trojan.COMpfun.B)
  • 88fc61bcd28a9a0dc167bc78ba969fce    (Trojan.Generic.11671459; Win32.Trojan.COMpfun.A)
  • 11f814e7fb9616f46c6e4b72e1cf39f6    (Gen:Trojan.Heur2.LP.dq8@aKnXWtic; Win32.Trojan.COMpfun.C)
  • 671d230ae8874bb89db7099d1c8945e0    (Win64.Trojan.COMpfun.C)

Randnotiz:

Sie fragen sich vielleicht, weshalb die Malware-Signaturbezeichnung „fun“ enthält. Während unserer Analyse lautete der Wert [4zufaellige-zeichen] der Malware „pfun“. Das fanden wir schon einigermaßen „funny“ ;-)

Wichtige IT-Security-News per E-Mail

  • Aktuelle IT-Gefahren
  • Schutz-Tipps für Privatkunden
  • 15 % Willkommensgutschein