
Dieser Artikel ist Teil der Fileless Malware-Reihe. Alle anderen Teile der Serie:
In diesem Artikel wollte ich in ein noch komplizierteres mehrstufiges Szenario eines dateifreien Angriffs mit Korrekturen im System eintauchen. Aber dann bin ich auf einen unglaublich einfachen Angriff ohne Code gestoßen - es sind keine Word- oder Excel-Makros erforderlich! Und dies beweist meine anfängliche Hypothese, die dieser Artikelserie zugrunde liegt, viel effizienter: Es ist eine sehr einfache Aufgabe, den Außenumfang einer Organisation zu überwinden.
Der erste Angriff, den ich beschreiben werde, nutzt die Microsoft Word-Sicherheitsanfälligkeit aus, die auf dem
alten Dynamic Data Exchange Protocol (DDE) basiert. Es wurde bereits
behoben . Die zweite Methode nutzt eine allgemeinere Sicherheitsanfälligkeit in Microsoft COM und Objektübertragungsfunktionen aus.
Zurück in die Zukunft mit DDE
Erinnert sich noch jemand an DDE? Wahrscheinlich nur wenige. Dies war eines der ersten
prozessübergreifenden Kommunikationsprotokolle, mit denen Anwendungen und Geräte Daten übertragen konnten .
Ich selbst bin ein wenig damit vertraut, weil ich früher Telekommunikationsgeräte überprüft und getestet habe. Zu diesem Zeitpunkt erlaubte DDE beispielsweise, die Anrufer-ID für Call-Center-Betreiber an die CRM-Anwendung zu übertragen, wodurch letztendlich die Karte des Kunden geöffnet wurde. Dazu mussten Sie ein RS-232-Kabel zwischen dem Telefon und dem Computer anschließen. Hier waren die Tage!
Wie sich herausstellte, unterstützt Microsoft Word weiterhin DDE.
Was diesen Angriff ohne Code effektiv macht, ist, dass Sie
direkt über die automatischen Felder eines Word-Dokuments auf das DDE-Protokoll zugreifen können (ich nehme SensePost den Hut ab, um darüber zu
recherchieren und zu veröffentlichen ).
Feldcodes sind eine weitere alte MS Word-Funktion, mit der Sie einem Dokument dynamischen Text und ein wenig Programmierung hinzufügen können. Das offensichtlichste Beispiel ist das Feld mit der Seitenzahl, das mit dem Wert {PAGE \ * MERGEFORMAT} in die Fußzeile eingefügt werden kann. Auf diese Weise können Sie automatisch Seitenzahlen generieren.
Hinweis: Den Menüpunkt Feld finden Sie im Abschnitt Einfügen.Ich erinnere mich, dass ich erstaunt war, als ich diese Funktion zum ersten Mal in Word entdeckte. Solange der Patch ihn nicht deaktivierte, unterstützte Word den DDE-Feldparameter. Die Idee war, dass DDE es Word ermöglichen würde, direkt mit der Anwendung zu kommunizieren, um dann die Programmausgabe in ein Dokument zu übertragen. Zu dieser Zeit war es eine sehr junge Technologie - Unterstützung für den Datenaustausch mit externen Anwendungen. Später wurde es in COM-Technologie entwickelt, die wir auch weiter unten betrachten werden.
Infolgedessen erkannten die Hacker, dass diese DDE-Anwendung eine Befehlsshell sein könnte, die natürlich PowerShell startet, und von dort aus können die Hacker tun, was sie wollen.
Der folgende Screenshot zeigt, wie ich diese geheime Technik verwendet habe: Ein kleines PowerShell-Skript (im Folgenden als PS bezeichnet) aus dem DDE-Feld lädt ein anderes PS-Skript, das die zweite Phase des Angriffs startet.
Vielen Dank an Windows für die Popup-Warnung, dass das in DDEAUTO integrierte Feld verdeckt versucht, die Shell zu startenDie bevorzugte Methode zum Ausnutzen der Sicherheitsanfälligkeit besteht darin, die Option mit dem DDEAUTO-Feld zu verwenden, das beim Öffnen
eines Word-Dokuments automatisch ein Skript ausführt.
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 für die erste Stufe mit einem PS-Skript einbetten (im Wesentlichen eine Pipette). Und Sie müssen nicht einmal wirklich Makros usw. codieren, wie ich es im
vorherigen Artikel getan habe
.Das Opfer öffnet Ihr Dokument, das integrierte Skript wird aktiviert und der Hacker befindet sich im Computer. In meinem Fall druckt das Remote-PS-Skript nur die Nachricht, kann aber auch problemlos den PS Empire-Client starten, der den Remotezugriff auf die Shell ermöglicht.
Und bevor das Opfer Zeit hat, etwas zu sagen, werden die Hacker die reichsten Teenager im Dorf sein.
Die Shell wurde ohne die geringste Codierung gestartet. Sogar ein Kind kann es schaffen!DDE und Felder
Später hat Microsoft DDE in Word noch deaktiviert, aber zuvor gab das Unternehmen an, dass diese Funktion einfach missbraucht wurde. Ihre Unwilligkeit, etwas zu ändern, ist verständlich. Aus eigener Erfahrung habe ich selbst ein solches Beispiel beobachtet, bei dem das Aktualisieren von Feldern beim Öffnen eines Dokuments aktiviert wurde, Word-Makros jedoch vom IT-Dienst deaktiviert wurden (jedoch mit einer Benachrichtigung). Die entsprechenden Parameter finden Sie übrigens im Abschnitt Word-Einstellungen.
Selbst wenn die Feldaktualisierung aktiviert ist, benachrichtigt Microsoft Word den Benutzer zusätzlich, wenn ein Feld den Zugriff auf gelöschte Daten anfordert, wie dies bei der obigen DDE der Fall ist. Microsoft warnt Sie wirklich.
Höchstwahrscheinlich überspringen Benutzer diese Warnung dennoch und aktivieren die Feldaktualisierung in Word. Dies ist eine der seltenen Gelegenheiten, Microsoft für die Deaktivierung der gefährlichen DDE-Funktion zu danken.
Wie schwer ist es heute, ein ungepatchtes Windows-System zu finden?
Für diese Tests habe ich AWS Workspaces verwendet, um auf den virtuellen Desktop zuzugreifen. Daher habe ich mit MS Office eine nicht gepatchte virtuelle Maschine erhalten, mit der ich das DDEAUTO-Feld einfügen konnte. Ich habe keinen Zweifel daran, dass Sie auf ähnliche Weise andere Unternehmen finden können, die die erforderlichen Sicherheitspatches noch nicht installiert haben.
Geheimnis der Objekte
Selbst wenn Sie diesen Patch installiert haben, gibt es in MS Office andere Sicherheitslücken, die es Hackern ermöglichen, etwas sehr Ähnliches wie mit Word zu tun. Im folgenden Szenario erfahren Sie, wie Sie
Excel als Köder für einen Phishing-Angriff verwenden, ohne Code zu schreiben.Um dieses Szenario zu verstehen, rufen wir das Microsoft
Component Object Model oder das abgekürzte
COM (Component Object Model) auf .
COM existiert seit den 1990er Jahren und wird als "objektorientiertes, programmierneutrales Komponentenmodell" definiert, das auf Remote-RPC-Prozeduraufrufen basiert. Lesen Sie
diesen Beitrag zu StackOverflow, um ein allgemeines Verständnis der COM-Terminologie zu erhalten.
Im Großen und Ganzen können Sie sich eine COM-Anwendung als ausführbare Excel- oder Word-Datei oder als eine andere Binärdatei vorstellen, die gestartet werden kann.
Es stellt sich heraus, dass eine COM-Anwendung auch ein
Skript ausführen kann - JavaScript oder VBScript. Technisch wird dies als
Scriptlet bezeichnet . Möglicherweise haben Sie die sct-Erweiterung für Dateien unter Windows gefunden - dies ist die offizielle Erweiterung für Scriptlets. Tatsächlich sind sie der Code für ein Skript, das in einen XML-Wrapper eingeschlossen 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 festgestellt, dass es unter Windows separate Dienstprogramme und Anwendungen gibt, die COM-Objekte und dementsprechend auch Scriptlets akzeptieren.
Ich kann das Scriptlet an ein in VBS geschriebenes Windows-Dienstprogramm übergeben, das als pubprn bekannt ist. Es befindet sich im Darm von C: \ Windows \ system32 \ Printing_Admin_Scripts. Übrigens gibt es andere Windows-Dienstprogramme, die Objekte als Parameter verwenden. Betrachten Sie zunächst dieses Beispiel.
Es ist nur natürlich, dass die Shell auch über ein Druckskript gestartet werden kann. Gehen Sie zu Microsoft!Als Test habe ich ein einfaches Remote-Scriptlet erstellt, das die Shell startet und die lustige Meldung "Sie wurden gerade gescriptet!" Druckt. Im Wesentlichen instanziiert pubprn das Scriptlet-Objekt, sodass VBScript die Shell ausführen kann. Diese Methode bietet Hackern, die sich in Ihr System einschleichen und sich darin verstecken möchten, klare Vorteile.
Im nächsten Beitrag werde ich erklären, wie COM-Scriptlets von Hackern mithilfe von Excel-Tabellen verwendet werden können.
Sehen Sie sich für Ihre Hausaufgaben
dieses Derbycon-
Video 2016 an, in dem erklärt wird, wie Hacker Scriptlets verwendet haben. Lesen Sie auch
diesen Artikel über Scriptlets und eine Art Spitzname.