Duqu – bösartige Nistpuppe

Einführung

Am 1. September 2011 wurde eine Datei namens ~DN1.tmp aus Ungarn an die VirusTotal-Website gesendet. Zu diesem Zeitpunkt wurde die Datei nur von zwei Antiviren-Engines als schädlich erkannt – BitDefender und AVIRA. So begann die Geschichte von Duqu. Mit Blick auf die Zukunft muss gesagt werden, dass die Duqu-Malware-Familie nach dem Namen dieser Datei benannt wurde. Allerdings handelt es sich bei dieser Datei um ein völlig unabhängiges Spyware-Modul mit Keylogger-Funktionen, das wahrscheinlich mit einem bösartigen Downloader-Dropper installiert wurde und nur als „Nutzlast“ betrachtet werden kann, die von der Duqu-Malware während ihres Betriebs geladen wird, und nicht als Komponente ( Modul) von Duqu . Eine der Duqu-Komponenten wurde erst am 9. September an den Virustotal-Dienst gesendet. Seine Besonderheit ist ein von C-Media digital signierter Treiber. Einige Experten begannen sofort, Analogien zu einem anderen berühmten Beispiel für Malware zu ziehen – Stuxnet, das ebenfalls signierte Treiber verwendete. Die Gesamtzahl der mit Duqu infizierten Computer, die von verschiedenen Antiviren-Unternehmen auf der ganzen Welt entdeckt wurden, liegt bei Dutzenden. Viele Unternehmen behaupten, dass der Iran erneut das Hauptziel sei, aber angesichts der geografischen Verteilung der Infektionen lässt sich das nicht mit Sicherheit sagen.
Duqu – bösartige Nistpuppe
In diesem Fall sollten Sie getrost nur mit einem neuen Wort über ein anderes Unternehmen sprechen APT (fortgeschrittene anhaltende Bedrohung).

Verfahren zur Systemimplementierung

Eine von Spezialisten der ungarischen Organisation CrySyS (Ungarisches Labor für Kryptographie und Systemsicherheit an der Technischen und Wirtschaftsuniversität Budapest) durchgeführte Untersuchung führte zur Entdeckung des Installers (Dropper), über den das System infiziert wurde. Es handelte sich um eine Microsoft Word-Datei mit einem Exploit für die Treiberschwachstelle win32k.sys (MS11-087, beschrieben von Microsoft am 13. November 2011), die für den TTF-Schriftart-Rendering-Mechanismus verantwortlich ist. Der Shellcode des Exploits verwendet eine im Dokument eingebettete Schriftart namens „Dexter Regular“, wobei Showtime Inc. als Ersteller der Schriftart aufgeführt ist. Wie Sie sehen, ist den Machern von Duqu Humor nicht fremd: Dexter ist ein Serienmörder, der Held der gleichnamigen Fernsehserie, produziert von Showtime. Dexter tötet (wenn möglich) nur Kriminelle, das heißt, er bricht das Gesetz im Namen der Legalität. Wahrscheinlich machen sich die Duqu-Entwickler auf diese Weise ironisch, dass sie illegale Aktivitäten für gute Zwecke betreiben. Der E-Mail-Versand erfolgte gezielt. Bei der Sendung wurden höchstwahrscheinlich kompromittierte (gehackte) Computer als Vermittler genutzt, um die Nachverfolgung zu erschweren.
Das Word-Dokument enthielt somit folgende Bestandteile:

  • Textinhalt;
  • integrierte Schriftart;
  • Shellcode ausnutzen;
  • Treiber;
  • Installationsprogramm (DLL-Bibliothek).

Bei Erfolg führte der Exploit-Shellcode die folgenden Vorgänge aus (im Kernel-Modus):

  • Es wurde eine Prüfung auf erneute Infektion durchgeführt; dazu wurde das Vorhandensein des Schlüssels „CF4D“ in der Registrierung unter der Adresse „HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZones1“ überprüft; wenn dies korrekt war, hat der Shellcode seine Ausführung abgeschlossen;
  • zwei Dateien wurden entschlüsselt – der Treiber (sys) und das Installationsprogramm (dll);
  • Der Treiber wurde in den Prozess „services.exe“ eingefügt und das Installationsprogramm gestartet.
  • Schließlich löschte sich der Shellcode selbst mit Nullen im Speicher.

Aufgrund der Tatsache, dass win32k.sys unter dem privilegierten Benutzer „System“ ausgeführt wird, haben die Duqu-Entwickler das Problem sowohl des unbefugten Starts als auch der Rechteausweitung (Ausführung unter einem Benutzerkonto mit eingeschränkten Rechten) elegant gelöst.
Nachdem das Installationsprogramm die Kontrolle erhalten hatte, entschlüsselte es drei darin im Speicher enthaltene Datenblöcke, die Folgendes enthielten:

  • signierter Treiber (sys);
  • Hauptmodul (DLL);
  • Konfigurationsdaten des Installationsprogramms (pnf).

In den Konfigurationsdaten des Installationsprogramms wurde ein Datumsbereich angegeben (in Form von zwei Zeitstempeln – Start und Ende). Das Installationsprogramm überprüfte, ob das aktuelle Datum darin enthalten war, und wenn nicht, schloss es die Ausführung ab. In den Konfigurationsdaten des Installers befanden sich auch die Namen, unter denen der Treiber und das Hauptmodul gespeichert wurden. In diesem Fall wurde das Hauptmodul verschlüsselt auf der Festplatte gespeichert.

Duqu – bösartige Nistpuppe

Um Duqu automatisch zu starten, wurde mithilfe einer Treiberdatei ein Dienst erstellt, der das Hauptmodul mithilfe von in der Registrierung gespeicherten Schlüsseln im Handumdrehen entschlüsselte. Das Hauptmodul enthält einen eigenen Konfigurationsdatenblock. Beim ersten Start wurde es entschlüsselt, das Installationsdatum eingetragen, anschließend erneut verschlüsselt und vom Hauptmodul gespeichert. So wurden im betroffenen System nach erfolgreicher Installation drei Dateien gespeichert – der Treiber, das Hauptmodul und seine Konfigurationsdatendatei, während die letzten beiden Dateien in verschlüsselter Form auf der Festplatte gespeichert wurden. Alle Dekodierungsvorgänge wurden nur im Speicher durchgeführt. Dieses komplexe Installationsverfahren wurde verwendet, um die Möglichkeit einer Erkennung durch Antivirensoftware zu minimieren.

Das Hauptmodul

Hauptmodul (Ressource 302), gem информации Firma Kaspersky Lab, geschrieben mit MSVC 2008 in reinem C, aber mit einem objektorientierten Ansatz. Dieser Ansatz ist bei der Entwicklung von Schadcode untypisch. In der Regel wird solcher Code in C geschrieben, um die Größe zu reduzieren und die in C++ inhärenten impliziten Aufrufe zu beseitigen. Hier besteht eine gewisse Symbiose. Außerdem wurde eine ereignisgesteuerte Architektur verwendet. Mitarbeiter von Kaspersky Lab neigen zu der Theorie, dass das Hauptmodul mit einem Präprozessor-Add-on geschrieben wurde, das es ermöglicht, C-Code im Objektstil zu schreiben.
Das Hauptmodul ist für den Empfang von Befehlen von Bedienern verantwortlich. Duqu bietet mehrere Interaktionsmethoden: die Verwendung der HTTP- und HTTPS-Protokolle sowie die Verwendung benannter Pipes. Für HTTP(S) wurden Domänennamen von Kommandozentralen angegeben und die Möglichkeit zur Arbeit über einen Proxyserver bereitgestellt – für sie wurden ein Benutzername und ein Passwort angegeben. Für den Kanal werden die IP-Adresse und der Name angegeben. Die angegebenen Daten werden im Hauptmodul-Konfigurationsdatenblock (in verschlüsselter Form) gespeichert.
Um Named Pipes zu verwenden, haben wir unsere eigene RPC-Server-Implementierung gestartet. Es unterstützte die folgenden sieben Funktionen:

  • die installierte Version zurückgeben;
  • Fügen Sie eine DLL in den angegebenen Prozess ein und rufen Sie die angegebene Funktion auf.
  • DLL laden;
  • Starten Sie einen Prozess, indem Sie CreateProcess() aufrufen.
  • den Inhalt einer bestimmten Datei lesen;
  • Daten in die angegebene Datei schreiben;
  • die angegebene Datei löschen.

Named Pipes könnten innerhalb eines lokalen Netzwerks verwendet werden, um aktualisierte Module und Konfigurationsdaten zwischen Duqu-infizierten Computern zu verteilen. Darüber hinaus könnte Duqu als Proxyserver für andere infizierte Computer fungieren (die aufgrund der Firewall-Einstellungen am Gateway keinen Zugang zum Internet hatten). Einige Versionen von Duqu verfügten nicht über RPC-Funktionalität.

Bekannte „Nutzlasten“

Symantec hat mindestens vier Arten von Payloads entdeckt, die unter Anweisung des Duqu-Kontrollzentrums heruntergeladen wurden.
Darüber hinaus war nur eine davon resident und wurde als ausführbare Datei (exe) kompiliert, die auf der Festplatte gespeichert wurde. Die restlichen drei wurden als DLL-Bibliotheken implementiert. Sie wurden dynamisch geladen und im Speicher ausgeführt, ohne auf der Festplatte gespeichert zu werden.

Die residente „Nutzlast“ war ein Spionagemodul (Infostealer) mit Keylogger-Funktionen. Mit der Übermittlung an VirusTotal begann die Arbeit an der Duqu-Forschung. Die Hauptspionagefunktionalität lag in der Ressource, deren erste 8 Kilobyte einen Teil eines Fotos der Galaxie NGC 6745 (zur Tarnung) enthielten. An dieser Stelle sei daran erinnert, dass einige Medien im April 2012 Informationen veröffentlichten (http://www.mehrnews.com/en/newsdetail.aspx?NewsID=1297506), dass der Iran der schädlichen Software „Stars“ ausgesetzt war, während Einzelheiten darüber Der Vorfall wurde nicht bekannt gegeben. Vielleicht war es genau eine solche Probe der Duqu-„Nutzlast“, die damals im Iran entdeckt wurde, daher der Name „Sterne“.
Das Spionagemodul hat die folgenden Informationen gesammelt:

  • Liste der laufenden Prozesse, Informationen zum aktuellen Benutzer und zur Domäne;
  • Liste der logischen Laufwerke, einschließlich Netzwerklaufwerke;
  • Screenshots;
  • Netzwerkschnittstellenadressen, Routing-Tabellen;
  • Protokolldatei der Tastatureingaben;
  • Namen geöffneter Anwendungsfenster;
  • Liste der verfügbaren Netzwerkressourcen (Freigaberessourcen);
  • eine vollständige Liste der Dateien auf allen Datenträgern, einschließlich Wechseldatenträgern;
  • eine Liste von Computern in der „Netzwerkumgebung“.

Ein weiteres Spionagemodul (Infostealer) war eine Variation dessen, was bereits beschrieben wurde, jedoch als DLL-Bibliothek kompiliert; die Funktionen eines Keyloggers, das Zusammenstellen einer Liste von Dateien und das Auflisten der in der Domäne enthaltenen Computer, wurden daraus entfernt.
Nächstes Modul (Aufklärung) gesammelte Systeminformationen:

  • ob der Computer Teil einer Domäne ist;
  • Pfade zu Windows-Systemverzeichnissen;
  • Betriebssystemversion;
  • aktueller Benutzername;
  • Liste der Netzwerkadapter;
  • System- und Ortszeit sowie Zeitzone.

Letztes Modul (Lebensdauerverlängerer) hat eine Funktion implementiert, um den Wert (gespeichert in der Konfigurationsdatendatei des Hauptmoduls) der Anzahl der verbleibenden Tage bis zum Abschluss des Auftrags zu erhöhen. Standardmäßig war dieser Wert abhängig von der Duqu-Modifikation auf 30 oder 36 Tage festgelegt und wurde jeden Tag um einen Tag verringert.

Kommandozentralen

Am 20. Oktober 2011 (drei Tage nach der Verbreitung der Informationen über die Entdeckung) führten die Duqu-Betreiber ein Verfahren durch, um Spuren der Funktionsfähigkeit der Kommandozentralen zu vernichten. Kommandozentralen befanden sich auf gehackten Servern auf der ganzen Welt – in Vietnam, Indien, Deutschland, Singapur, der Schweiz, Großbritannien, Holland und Südkorea. Interessanterweise liefen auf allen identifizierten Servern die CentOS-Versionen 5.2, 5.4 oder 5.5. Die Betriebssysteme waren sowohl 32-Bit als auch 64-Bit. Obwohl alle Dateien im Zusammenhang mit dem Betrieb der Kommandozentralen gelöscht wurden, konnten die Spezialisten von Kaspersky Lab einen Teil der Informationen aus den LOG-Dateien aus dem Slack Space wiederherstellen. Die interessanteste Tatsache ist, dass Angreifer auf Servern das Standardpaket OpenSSH 4.3 immer durch Version 5.8 ersetzt haben. Dies könnte darauf hindeuten, dass eine unbekannte Schwachstelle in OpenSSH 4.3 zum Hacken von Servern ausgenutzt wurde. Nicht alle Systeme wurden als Kommandozentralen genutzt. Einige wurden, gemessen an den Fehlern in den SSHD-Protokollen beim Versuch, den Datenverkehr für die Ports 80 und 443 umzuleiten, als Proxyserver verwendet, um eine Verbindung zu den End-Kommandozentralen herzustellen.

Termine und Module

Ein im April 2011 verteiltes Word-Dokument, das von Kaspersky Lab untersucht wurde, enthielt einen Installations-Download-Treiber mit dem Kompilierungsdatum 31. August 2007. Ein ähnlicher Treiber (Größe – 20608 Bytes, MD5 – EEDCA45BD613E0D9A9E5C69122007F17) in einem in CrySys-Labors gefundenen Dokument hatte ein Kompilierungsdatum vom 21. Februar 2008. Darüber hinaus fanden die Experten von Kaspersky Lab den Autorun-Treiber rndismpc.sys (Größe – 19968 Bytes, MD5 – 9AEC6E10C5EE9C05BED93221544C783E) mit dem Datum 20. Januar 2008. Es wurden keine Komponenten mit der Kennzeichnung 2009 gefunden. Basierend auf den Zeitstempeln der Zusammenstellung einzelner Teile von Duqu könnte seine Entwicklung bis Anfang 2007 zurückreichen. Seine früheste Manifestation ist mit der Entdeckung temporärer Dateien des Typs ~DO (wahrscheinlich erstellt von einem der Spyware-Module) verbunden, deren Erstellungsdatum der 28. November 2008 ist (Beitrag „Duqu & Stuxnet: Eine Zeitleiste interessanter Ereignisse“). Das jüngste mit Duqu in Verbindung gebrachte Datum war der 23. Februar 2012, das in einem von Symantec im März 2012 entdeckten Installer-Download-Treiber enthalten war.

Verwendete Informationsquellen:

Artikelserie über Duqu von Kaspersky Lab;
Analysebericht von Symantec „W32.Duqu Der Vorläufer des nächsten Stuxnet“, Version 1.4, November 2011 (pdf).

Source: habr.com

Kommentar hinzufügen