Unterschätzte Gefahr: RDP-Session
Häufig unterschätzte Schwachstellen im Unternehmen sind nicht ordnungsgemäss geschlossene Remotedesktop (RDP)-Verbindungen, auch Sessions genannt. Eine Session entsteht, wenn sich ein Benutzer an einem Windows-System anmeldet. Sperrt der Benutzer den Bildschirm oder beendet eine RDP-Session ohne sich abzumelden, bleibt diese Session bestehen. Erlangt ein Angreifer die Berechtigung eines Administrators oder LocalSystem, kann dieser unteranderem, je nach Konfiguration des Systems, Anmeldeinformationen, wie beispielsweise den Kennworthash, aus dem Arbeitsspeicher auslesen. Im schlimmsten Fall kann sogar das Kennwort im Klartext ausgelesen werden. Diese Informationen können dann wiederum für Lateral Movement verwendet werden. Lesen Sie dazu den goSecurity BLOG: Lateral Movement.
Eine weitere (grösstenteils unbekannte) Angriffsart ist das RDP-Session-Hijacking. Hierbei stiehlt der Angreifer eine vorhandene Session am Remotecomputer. Diese Angriffsart ist nicht neu, es wurde bereits 2011 davon im Blog de Gentil Kiwi berichtet.
Der Angriff
An einem Beispiel wollen wir zeigen, wie ein solcher Angriff aussehen könnte. Wir haben einen Server mit Windows Server 2008 R2, der anfällig auf die MS17-010-Schwachstelle (EternalBlue/EternalRomance) ist, welcher schon bei der Ransomware WannaCry verwendet wurde. Ein Angreifer nutzt die Schwachstelle aus und bekommt damit die Berechtigung LocalSystem, die höchste lokale Berechtigung. Mit dieser erstellt der Angreifer einen lokalen Administrator, welcher sich über RDP mit dem Server verbindet. Auf dem gekaperten Server ist eine offene Session vom Domänen-Administrator. Diese übernimmt der Angreifer und erhält somit die Berechtigung eines Domänen-Administrators.
Schritt für Schritt
Nach einem Netzwerk-Scan, beispielsweise mit Nmap, weiss der Angreifer, dass es ein System gibt, welches auf die Schwachstelle (MS17-010) verwundbar ist.
Der Angreifer nutzt die Schwachstelle mit dem Metasploit-Framwork aus und bekommt damit die Berechtigung LocalSystem, die höchste lokale Berechtigung. Das Metasploit-Framework ist ein Open-Source-Projekt zur Verbesserung der IT-Sicherheit, das Informationen über Sicherheitslücken bietet und bei Penetrationen Tests eingesetzt wird.
Mit dem Befehl query user ruft der Angreifer die aktuell angemeldeten Benutzer auf dem Client ab. Dabei entdeckt er, dass noch eine offene Session von einem Administrator vorhanden ist, die schon seit 25 Minuten im Leerlauf steht. Query User ist ein Windows integrierter Befehl um Informationen über die angemeldeten Benutzer anzuzeigen. Dazu zählen Benutzername, Sitzungsname, Sitzungs-ID, Status der Sitzung (Aktive/Inaktiv), Leerlaufzeit und der Anmeldezeitpunkt.
Mit diesem verbindet er sich über RDP mit dem Server. Damit Sie sich das alles besser vorstellen können, sehen Sie auf dem folgenden Bild links die Session, an welcher der Domänen-Administrator angemeldet ist und auf der rechten Seite die RDP-Session vom adm_hacker (Angreifer).
Mit query user fragt der Angreifer erneut die angemeldeten Benutzer ab und sieht die Session des Administrators und seine eigene über RDP. Mit tscon übernimmt der Angreifer die Session mit der ID 1 auf die rdp-tcp#0- Session. Tscon ist ein Windows integriertes Tool, um sich mit einer anderen offenen Session zu verbinden. Normalerweise muss das Kennwort des angemeldeten Benutzers eingegeben werden. Wird das Tool jedoch als LocalSystem ausgeführt, kann jede Session ohne Kennwort übernommen werden.
Wie auf dem nachfolgenden Bild zu sehen ist, sperrt sich die Konsole des Administrators (links) und die Session des Administrators erscheint in der RDP-Session des Angreifers (rechts).
Mit query user ist ersichtlich, dass die Session des Administrators jetzt in die RDP-Session des Hackers läuft.
Somit hat der Angreifer die Session des Domänen-Administrators übernommen und hat nun Zugriff auf die gesamte Domäne. Als nächstes könnte der Angreifer noch einen eigenen Domänen-Administrator für einen späteren Zugriff erstellen.
Fazit und Empfehlung
Vielleicht sagen Sie an dieser Stelle: «Glück gehabt, meine Server sind gepatcht». Wenn dem so ist, möchte ich in Erinnerung rufen, dass der Einstiegspunkt nur exemplarisch anzusehen ist. Es gibt viele andere Wege um lokale Administrationsberechtigungen zu erlangen. Im Kern geht es hier darum, vom «kleinen» lokalen Administrator zum Domänen-Administrator zu kommen. Der gesamte Angriff ist wie immer eine Kombination aus kleinen einzelnen Elementen (resp. Fehlern).
Der Angriff hätte einfach verhindert werden können, wenn das System sorgfältiger konfiguriert und gepflegt gewesen wäre. Für ein sicheres System sind mehrere Faktoren verantwortlich.
Zum einen müssen regelmässig und zeitnah Updates für das Betriebssystem und die installierten Anwendungen eingespielt werden. Zum anderen muss darauf geachtet werden, dass die Benutzer nur so viele Berechtigungen haben, wie nötig sind. Ein Domänen-Administrator sollte sich nur mit dieser Berechtigung anmelden, wenn es wirklich benötigt wird. Idealerweise nur auf einem Domaincontroller. Vielfach hören wir die Aussage, dass der Benutzer diese Rechte benötigt. Effektiv benötigt er aber nur lokale Administrationsberechtigungen auf 7 von 40 Servern. Achten Sie also darauf, die Berechtigungen des Domänen-Administrators zu «verteidigen».
Weiter ist es wichtig, sich beim Beenden von RDP-Sessions ordentlich abzumelden. Um sicherzugehen, dass alle Sessions beendet werden, kann beispielsweise über die Gruppenrichtlinien konfiguriert werden, dass diese nach einer bestimmten Zeit automatisch abgemeldet werden, wenn sich diese längere Zeit im Leerlauf befinden.
Gruppenrichtlinie:
Computer Configuration > Policies > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Session Time Limits > Set time limit for disconnected sessions
Beachten Sie, dass diese Lösung nur für Remotedesktopcomputer funktioniert und nicht für eine Anmeldung direkt am Client/Server.
Das Restrisiko eines erfolgreichen Angriffs während einer legitimen Sitzung bleibt auch damit bestehen. Nur ist die Chance, dass der Angriff unbemerkt funktioniert, wenn der Administrator während seiner Arbeit auf dem Server aus seiner Session «geschmissen» wird, kleiner.
Informationen zum Autor: Marius Hamborgstrøm
Im Jahre 2014 ist es mir gelungen goSecurity von meinem Talent zu überzeugen. Als Experte für Penetration Tests konnte ich schon viele Schwachstellen aufdecken, bevor dies einem Hacker gelungen ist. Zudem bin ich für die Gestaltung und die Durchführung unserer goTraining-Kurse Hack to PROTECT (H2P), Hack to PROTECT [ADVANCED] (H2PA) und Windows Server Hardening (WSH) verantwortlich. Durch meine jahrelange Erfahrung als IT-Leiter einer mittelständischen Bank, kenne ich auch die Seite des Administrators und des IT-Managers in einer Umgebung mit hohen Sicherheitsanforderungen. Aus dieser Erfahrungskiste kann ich die Anforderungen unserer Kunden auch bei Audits und umfassenden Beratungen schnell verstehen und Sie zielgerichtet und praxisnah beraten. Jede Sicherheitslücke bei Ihnen zu finden, bevor dies jemand anderem gelingt, ist leider nicht immer realistisch. Und dennoch ist es mein Antrieb und mein Anspruch.