Remote Desktop aus Sicht eines Angreifers

1. Einführung

Unternehmen, die keine Systeme für den Remote-Zugriff eingerichtet hatten, haben diese vor einigen Monaten in Eile implementiert. Nicht alle Administratoren waren auf diese "Hitze" vorbereitet, was zu Sicherheitslücken führte: falsche Konfiguration der Dienste oder sogar die Installation veralteter Softwareversionen mit zuvor entdeckten Schwachstellen. Einige haben bereits die Konsequenzen dieser Lücken gespürt, anderen ging es besser, aber die Lehren sollten auf jeden Fall gezogen werden. Die Loyalität zur Fernarbeit ist erheblich gestiegen, und immer mehr Unternehmen akzeptieren Telearbeit als ein dauerhaftes Format.

Es gibt viele Möglichkeiten, Remote-Zugriff zu ermöglichen: verschiedene VPNs, RDS und VNC, TeamViewer und andere. Administratoren haben eine breite Auswahl, basierend auf der spezifischen Struktur des Unternehmensnetzwerks und der darin verwendeten Geräte. Am beliebtesten sind nach wie vor VPN-Lösungen, doch viele kleine Unternehmen wählen RDS (Remote Desktop Services), da sie einfacher und schneller bereitzustellen sind.

In diesem Artikel werden wir näher auf die Sicherheit von RDS eingehen. Wir werden einen kurzen Überblick über bekannte Schwachstellen geben und einige Szenarien für den Start eines Angriffs auf die Netzwerkstruktur, die auf Active Directory basiert, betrachten. Wir hoffen, dass unser Artikel einigen hilft, aus ihren Fehlern zu lernen und die Sicherheit zu erhöhen.

2. Aktuelle Schwachstellen von RDS/RDP

Jede Software enthält Fehler und Schwachstellen, die von Angreifern ausgenutzt werden, und RDS ist da keine Ausnahme. In letzter Zeit hat Microsoft häufig neue Schwachstellen gemeldet, und wir haben beschlossen, einen kurzen Überblick über diese zu geben:

Diese Schwachstelle gefährdet Benutzer, die sich mit einem kompromittierten Server verbinden. Ein Angreifer kann die Kontrolle über das Benutzergerät erhalten oder sich im System festsetzen, um dauerhaften Remote-Zugriff zu haben.

Diese Gruppe von Sicherheitsanfälligkeiten ermöglicht es einem unbefugten Angreifer, beliebigen Code remote auf einem Server mit RDS auszuführen, indem er eine gezielt gestaltete Anfrage verwendet. Sie können auch verwendet werden, um Würmer zu erstellen - Malware, die benachbarte Geräte im Netzwerk selbstständig infiziert. Dadurch können diese Sicherheitsanfälligkeiten das gesamte Netzwerk eines Unternehmens gefährden, und nur eine rechtzeitige Aktualisierung kann davor schützen.

Software für den Remote-Zugriff hat sowohl von Forschern als auch von Angreifern verstärktes Interesse auf sich gezogen, daher könnten wir bald von neuen ähnlichen Sicherheitsanfälligkeiten hören.

Die gute Nachricht ist, dass nicht für alle Sicherheitsanfälligkeiten öffentlich verfügbare Exploits existieren. Die schlechte Nachricht ist, dass ein Angreifer mit Expertise es leicht haben wird, einen Exploit für eine Sicherheitsanfälligkeit basierend auf der Beschreibung zu schreiben oder Techniken wie Patch Diffing zu verwenden (darüber haben unsere Kollegen in Artikel). Daher empfehlen wir, die Software regelmäßig zu aktualisieren und auf neue Meldungen über entdeckte Sicherheitsanfälligkeiten zu achten.

3. Angriffe

Wir kommen zum zweiten Teil des Artikels, in dem wir zeigen, wie Angriffe auf die Netzwerkinfrastruktur, die auf Active Directory basiert, beginnen.

Die beschriebenen Methoden sind anwendbar für das folgende Tätermodell: ein Angreifer, der über ein Benutzerkonto verfügt und Zugang zum Remote Desktop Gateway - einem Terminalserver - hat (dieser ist häufig beispielsweise aus dem externen Netzwerk zugänglich). Durch Anwendung dieser Methoden kann der Angreifer seine Angriffe auf die Infrastruktur fortsetzen und seine Präsenz im Netzwerk festigen.

Die Netzwerkkonfiguration kann in jedem speziellen Fall variieren, aber die beschriebenen Techniken sind ziemlich universell.

Beispiele für den Ausbruch aus einer eingeschränkten Umgebung und die Erhöhung von Berechtigungen

Bei Zugriff auf das Remote Desktop Gateway wird der Angreifer wahrscheinlich auf eine eingeschränkte Umgebung stoßen. Beim Zugriff auf den Terminalserver wird eine Anwendung gestartet: ein Fenster für die Verbindung über das Remote Desktop-Protokoll zu internen Ressourcen, der Explorer, Office-Pakete oder jede andere Software.

Ziel des Angreifers wird es sein, Zugriff auf die Ausführung von Befehlen zu erhalten, das heißt, einen cmd oder PowerShell zu starten. Hierbei können einige klassische Techniken zum Entkommen aus der "Sandbox" für Windows hilfreich sein. Lassen Sie uns diese näher betrachten.

Option 1. Der Angreifer hat Zugang zum Verbindungsfenster des Remote Desktop im Rahmen des Remote Desktop Gateways:

Remote Desktop aus Sicht eines Angreifers

Das Menü "Options anzeigen" wird geöffnet. Es erscheinen Optionen zur Manipulation von Konfigurationsdateien für die Verbindung:

Remote Desktop aus Sicht eines Angreifers

Aus diesem Fenster kann man problemlos auf den Explorer zugreifen, indem man eine der Schaltflächen "Öffnen" oder "Speichern" drückt:

Remote Desktop aus Sicht eines Angreifers

Der Explorer öffnet sich. Seine "Adresszeile" ermöglicht das Starten genehmigter ausführbarer Dateien sowie das Auflisten des Dateisystems. Dies kann für den Angreifer nützlich sein, wenn die Systemlaufwerke verborgen sind und kein direkter Zugriff darauf möglich ist:

Remote Desktop aus Sicht eines Angreifers

Demovideo

Ein solches Szenario kann beispielsweise bei der Verwendung von Excel aus dem Microsoft Office-Paket als Remote-Software reproduziert werden.

Demovideo

Darüber hinaus sollte man die Makros nicht vergessen, die in diesem Office-Paket verwendet werden. Unsere Kollegen haben die Sicherheitsproblematik von Makros in dieser Artikel.

Option 2. Unter Verwendung der gleichen Voraussetzungen wie im vorherigen Beispiel stellt der Angreifer mehrere Verbindungen zu einem Remote-Desktop unter demselben Konto her. Bei der erneuten Verbindung wird die erste Sitzung geschlossen und ein Fehlerfenster erscheint. Die Hilfetaste in diesem Fenster öffnet den Internet Explorer auf dem Server, woraufhin der Angreifer zum Explorer wechseln kann.

Demovideo

Option 3. Wenn Einschränkungen für das Starten von ausführbaren Dateien festgelegt sind, kann der Angreifer auf eine Situation stoßen, in der Gruppenrichtlinien das Starten von cmd.exe durch den Administrator verbieten.

Es gibt einen Weg, dies zu umgehen, indem eine bat-Datei auf dem Remote-Desktop mit folgendem Inhalt ausgeführt wird: cmd.exe /K . Der Fehler beim Starten von cmd und ein erfolgreicher Beispielaufschub der bat-Datei sind im Bild unten zu sehen.

Remote Desktop aus Sicht eines Angreifers

Option 4. Das Verbot, Anwendungen durch schwarze Listen anhand der Namen von ausführbaren Dateien zu starten, ist keine Allheilmittel; es kann umgangen werden.

Betrachten wir folgendes Szenario: Wir haben den Zugriff auf die Eingabeaufforderung und das Starten von Internet Explorer und PowerShell durch Gruppenrichtlinien verboten. Der Angreifer versucht, die Hilfe aufzurufen - keine Reaktion. Er versucht, PowerShell über das Kontextmenü des Modalfensters, das durch Halten der Shift-Taste geöffnet wurde, zu starten - eine Nachricht über das Startverbot durch den Administrator. Er versucht, PowerShell über die Adresszeile zu starten - wieder keine Reaktion. Wie kann man die Einschränkung umgehen?

Es genügt, powershell.exe aus dem Ordner C:WindowsSystem32WindowsPowerShellv1.0 in den Benutzerordner zu kopieren, den Namen in einen von powershell.exe verschiedenen zu ändern, und die Möglichkeit zum Starten wird wieder verfügbar sein.

Standardmäßig wird beim Anschluss an einen Remote-Desktop der Zugriff auf die lokalen Datenträger des Clients gewährt, von denen der Angreifer powershell.exe kopieren und nach dem Umbenennen ausführen kann.

Demovideo

Wir haben nur einige Möglichkeiten zur Umgehung von Einschränkungen aufgezeigt; es sind noch viele weitere Szenarien denkbar, aber alle führen über den Windows Explorer. Es gibt zahlreiche Anwendungen, die die Standardmittel von Windows zur Dateiverwaltung nutzen, und in einer eingeschränkten Umgebung können ähnliche Techniken angewendet werden.

4. Empfehlungen und Fazit

Wie wir sehen, gibt es selbst in einer eingeschränkten Umgebung Raum für die Entwicklung des Angriffs. Es ist jedoch möglich, es dem Angreifer zu erschweren. Wir geben allgemeine Empfehlungen, die sowohl in den von uns betrachteten Szenarien als auch in anderen Fällen nützlich sein werden.

  • Beschränken Sie die Ausführung von Programmen durch schwarze/weiße Listen unter Verwendung von Gruppenrichtlinien.
    Dabei bleibt in den meisten Fällen die Möglichkeit zur Ausführung von Code bestehen. Wir empfehlen, sich mit dem Projekt LOLBAS, vertraut zu machen, um ein Verständnis für undocumented Methoden zur Manipulation von Dateien und zur Ausführung von Code im System zu erhalten.
    Wir empfehlen, beide Arten von Einschränkungen zu kombinieren: Beispielsweise könnte die Ausführung von ausführbaren Dateien, die von Microsoft signiert sind, erlaubt, aber die Ausführung von cmd.exe eingeschränkt werden.
  • Deaktivieren Sie die Einstellungen-Registerkarten im Internet Explorer (dies kann lokal in der Registrierung erfolgen).
  • Deaktivieren Sie über regedit den Zugriff auf die integrierte Windows-Hilfe.
  • Deaktivieren Sie die Möglichkeit, lokale Laufwerke für Remote-Verbindungen bereitzustellen, sofern diese Einschränkung für die Benutzer nicht kritisch ist.
  • Beschränken Sie den Zugriff auf die lokalen Laufwerke des Remote-Rechners und lassen Sie nur den Zugriff auf die Benutzerordner zu.

Wir hoffen, dass es Ihnen mindestens interessant war und im besten Fall hilft Ihnen dieser Artikel, die Remote-Arbeit Ihres Unternehmens sicherer zu gestalten.

Quelle: habr.com

60GB SSD 8Gb DDR4