Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder

Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder

Dieser Artikel ist Teil der Reihe „Fileless Malware“. Alle anderen Teile der Serie:

In diesem Artikel wollte ich mich mit einem noch komplexeren mehrstufigen dateilosen Angriffsszenario mit Fixierung auf dem System befassen. Doch dann stieß ich auf einen unglaublich einfachen Angriff ohne Code – es waren keine Word- oder Excel-Makros erforderlich! Und dies beweist meine ursprüngliche Hypothese, die dieser Artikelserie zugrunde liegt, viel effektiver: Die äußere Begrenzung einer Organisation zu durchbrechen ist überhaupt keine schwierige Aufgabe.

Der erste Angriff, den ich beschreiben werde, nutzt eine Microsoft Word-Sicherheitslücke aus, die darauf basiert veraltet Dynamisches Datenaustauschprotokoll (DDE). Das war sie bereits Fest. Der zweite Ansatz nutzt eine allgemeinere Schwachstelle in den COM- und Objektübertragungsfunktionen von Microsoft aus.

Zurück in die Zukunft mit DDE

Erinnert sich sonst noch jemand an DDE? Wahrscheinlich nicht viele. Es war eines der ersten Kommunikationsprotokolle zwischen Prozessen, die es Anwendungen und Geräten ermöglichten, Daten zu übertragen.

Ich bin selbst ein wenig damit vertraut, weil ich früher Telekommunikationsgeräte überprüft und getestet habe. Damals erlaubte DDE beispielsweise Call-Center-Betreibern, die Anrufer-ID an eine CRM-Anwendung zu übertragen, die letztlich eine Kundenkarte öffnete. Dazu mussten Sie ein RS-232-Kabel zwischen Ihrem Telefon und Ihrem Computer anschließen. Das waren noch Zeiten!

Wie sich herausstellt, ist Microsoft Word immer noch vorhanden unterstützt die DDE.

Was diesen Angriff ohne Code effektiv macht, ist, dass Sie auf das DDE-Protokoll zugreifen können direkt aus automatischen Feldern in einem Word-Dokument (Hut ab vor SensePost für Forschung und Veröffentlichungen darüber).

Feldcodes ist eine weitere alte Funktion von MS Word, mit der Sie Ihrem Dokument dynamischen Text und ein wenig Programmierung hinzufügen können. Das offensichtlichste Beispiel ist das Seitenzahlfeld, das mit dem Wert {PAGE *MERGEFORMAT} in die Fußzeile eingefügt werden kann. Dadurch können Seitenzahlen automatisch generiert werden.

Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder
Hinweis: Den Menüpunkt Feld finden Sie unter Einfügen.

Ich erinnere mich, dass ich erstaunt war, als ich diese Funktion zum ersten Mal in Word entdeckte. Und bis der Patch es deaktivierte, unterstützte Word weiterhin die DDE-Felder-Option. Die Idee war, dass DDE es Word ermöglichen würde, direkt mit der Anwendung zu kommunizieren, sodass es dann die Ausgabe des Programms in ein Dokument übergeben könnte. Es handelte sich damals um eine sehr junge Technologie – die Unterstützung des Datenaustauschs mit externen Anwendungen. Später wurde daraus die COM-Technologie weiterentwickelt, auf die wir im Folgenden ebenfalls eingehen werden.

Schließlich erkannten die Hacker, dass es sich bei dieser DDE-Anwendung um eine Befehls-Shell handeln könnte, die natürlich PowerShell startete, und von dort aus konnten die Hacker tun, was sie wollten.
Der Screenshot unten zeigt, wie ich diese Stealth-Technik verwendet habe: Ein kleines PowerShell-Skript (im Folgenden als PS bezeichnet) aus dem DDE-Feld lädt ein weiteres PS-Skript, das die zweite Phase des Angriffs startet.

Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder
Vielen Dank an Windows für die Popup-Warnung, dass das integrierte DDEAUTO-Feld heimlich versucht, die Shell zu starten

Die bevorzugte Methode zum Ausnutzen der Sicherheitslücke ist die Verwendung einer Variante mit dem Feld DDEAUTO, die das Skript automatisch ausführt beim Öffnen Word-Datei.
Lassen Sie uns darüber nachdenken, was wir dagegen tun können.

Als unerfahrener Hacker können Sie beispielsweise eine Phishing-E-Mail senden, in der Sie vorgeben, vom Federal Tax Service zu stammen, und das DDEAUTO-Feld in das PS-Skript für die erste Stufe einbetten (im Wesentlichen ein Dropper). Und Sie müssen nicht einmal wirklich Makros usw. programmieren, wie ich es in getan habe Vorheriger Artikel.
Das Opfer öffnet Ihr Dokument, das eingebettete Skript wird aktiviert und der Hacker landet im Computer. In meinem Fall gibt das Remote-PS-Skript lediglich eine Nachricht aus, könnte aber genauso gut den PS Empire-Client starten, der Remote-Shell-Zugriff ermöglicht.
Und bevor das Opfer Zeit hat, etwas zu sagen, entpuppen sich die Hacker als die reichsten Teenager im Dorf.

Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder
Die Shell wurde ohne den geringsten Programmieraufwand gestartet. Sogar ein Kind kann es schaffen!

DDE und Felder

Später hat Microsoft DDE in Word deaktiviert, allerdings nicht bevor das Unternehmen erklärte, dass die Funktion einfach missbraucht worden sei. Ihre Zurückhaltung, etwas zu ändern, ist verständlich. Meiner Erfahrung nach habe ich selbst ein Beispiel gesehen, bei dem das Aktualisieren von Feldern beim Öffnen eines Dokuments aktiviert war, Word-Makros jedoch von der IT deaktiviert wurden (aber eine Benachrichtigung angezeigt wurde). Die entsprechenden Einstellungen finden Sie übrigens im Abschnitt Word-Einstellungen.

Selbst wenn die Feldaktualisierung aktiviert ist, benachrichtigt Microsoft Word den Benutzer zusätzlich, wenn ein Feld Zugriff auf gelöschte Daten anfordert, wie es bei DDE oben der Fall ist. Microsoft warnt Sie wirklich.

Aber höchstwahrscheinlich werden Benutzer diese Warnung trotzdem ignorieren und die Feldaktualisierung in Word aktivieren. Dies ist eine der seltenen Gelegenheiten, Microsoft für die Deaktivierung der gefährlichen DDE-Funktion zu danken.

Wie schwierig ist es heute, ein ungepatchtes Windows-System zu finden?

Für diesen Test habe ich AWS Workspaces verwendet, um auf einen virtuellen Desktop zuzugreifen. Auf diese Weise erhielt ich eine ungepatchte virtuelle MS Office-Maschine, die es mir ermöglichte, das DDEAUTO-Feld einzufügen. Ich habe keinen Zweifel daran, dass man auf ähnliche Weise auch andere Unternehmen finden kann, die die notwendigen Sicherheitspatches noch nicht installiert haben.

Geheimnis der Objekte

Selbst wenn Sie diesen Patch installiert haben, gibt es in MS Office noch andere Sicherheitslücken, die es Hackern ermöglichen, etwas ganz Ähnliches zu tun, wie wir es mit Word gemacht haben. Im nächsten Szenario werden wir lernen Verwenden Sie Excel als Köder für einen Phishing-Angriff, ohne Code zu schreiben.

Um dieses Szenario zu verstehen, erinnern wir uns an das Microsoft Component Object Model, kurz gesagt COM (Komponentenobjektmodell).

COM gibt es seit den 1990er Jahren und wird als „sprachneutrales, objektorientiertes Komponentenmodell“ definiert, das auf RPC-Remoteprozeduraufrufen basiert. Für ein allgemeines Verständnis der COM-Terminologie lesen Sie dieser Beitrag auf StackOverflow.

Grundsätzlich können Sie sich eine COM-Anwendung als eine ausführbare Excel- oder Word-Datei oder eine andere Binärdatei vorstellen, die ausgeführt wird.

Es stellt sich heraus, dass auch eine COM-Anwendung ausgeführt werden kann Skript – JavaScript oder VBScript. Technisch heißt es Skript. Möglicherweise haben Sie die Erweiterung .sct für Dateien in Windows gesehen – dies ist die offizielle Erweiterung für Scriptlets. Im Wesentlichen handelt es sich dabei um Skriptcode, der in einen XML-Wrapper verpackt ist:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Hacker und Pentester haben herausgefunden, dass es in Windows separate Dienstprogramme und Anwendungen gibt, die COM-Objekte und damit auch Scriptlets akzeptieren.

Ich kann ein Skriptlet an ein in VBS geschriebenes Windows-Dienstprogramm namens pubprn übergeben. Es befindet sich in den Tiefen von C:Windowssystem32Printing_Admin_Scripts. Übrigens gibt es andere Windows-Dienstprogramme, die Objekte als Parameter akzeptieren. Schauen wir uns zunächst dieses Beispiel an.

Die Abenteuer der schwer fassbaren Malware, Teil IV: DDE- und Word-Dokumentfelder
Es ist ganz natürlich, dass die Shell auch über ein Druckskript gestartet werden kann. Gehen Sie zu Microsoft!

Als Test habe ich ein einfaches Remote-Skriptlet erstellt, das eine Shell startet und eine lustige Meldung ausgibt: „Sie haben gerade ein Skript erstellt!“ Im Wesentlichen instanziiert pubprn ein Scriptlet-Objekt, sodass VBScript-Code einen Wrapper ausführen kann. Diese Methode bietet einen klaren Vorteil für Hacker, die sich in Ihr System einschleichen und sich darin verstecken wollen.

Im nächsten Beitrag werde ich erklären, wie COM-Skriptlets von Hackern mithilfe von Excel-Tabellen ausgenutzt werden können.

Werfen Sie für Ihre Hausaufgaben einen Blick darauf dieses Video von Derbycon 2016, das genau erklärt, wie Hacker Scriptlets verwendeten. Und auch lesen dieser Artikel über Scriptlets und eine Art Spitzname.

Source: habr.com

Kommentar hinzufügen