Zum Inhalt springen Zur Navigation springen
Unberechtigte Server-Authentifizierung erkennen am Beispiel von PuTTY

Unberechtigte Server-Authentifizierung erkennen am Beispiel von PuTTY

Im Unternehmensumfeld sind externe Verbindungen zu Servern üblich und werden vielfältig genutzt. In diesem Beispiel werden wir einmal näher darauf eingehen, wie solche mittels des Werkzeugkastens PuTTY bedienerfreundlich und komfortabel aufgebaut und wie unberechtigte Zugriffe clientseitig erkannt werden können. Dafür wird aufgezeigt, welche forensischen Artefakte am Beispiel der Registry ausgelesen werden können, um Aufschluss über entsprechende Sessions zu erhalten.

Werkzeugkasten PuTTY

PuTTY ist ein Terminalprogramm, mit dem man sich via SSH, Serial, RAW und Telnet auf andere Systeme verbinden kann. Üblicherweise wird das Tool für eine SSH-Verbindung zu Linux / Unix basierten Systemen verwendet. Der Werkzeugkasten bringt viele kleine Programme mit, die einen komfortablen und verschlüsselten Zugriff auf diese erlauben.

Server-Authentifizierung mit einem Zertifikat über SSH

Die Public-Key-Authentifizierung ist eine Methode, um Benutzer mittels eines Schlüsselpaars mit einem Server zu verbinden. Das Schlüsselpaar besteht aus einem privaten und einem öffentlichen Schlüssel.

Durch das Nutzen dieser Authentifizierungsmethode fällt die sonst notwendige interaktive Passworteingabe weg. Auf der Client-Seite muss hierfür ein privater Schlüssel generiert und mit diesem eine Signatur erzeugt werden. Serverseitig bedingt es die Verifizierung der Signatur mittels des dort hinterlegten öffentlichen Schlüssels.

Komfortable PuTTY Werkzeuge zwecks Verschlüsselung

Zum Erzeugen eines SSH-Keys stellt PuTTY das Werkzeug PuTTYgen zur Verfügung. Hierfür genügt ein Klick auf die Schaltfläche „Generate“. Um Dateien verschlüsselt von einem Client zu einem Server zu verschieben, können PuTTY SCP (Secure Copy) und PuTTY SFTP (Secure FTP) genutzt werden.

Um den Ablauf noch komfortabler zu gestalten, kann ein weiteres Feature installiert werden, mit welchem grafische Linux Programme auf dem Zielsystem genutzt werden können.

Bedienerfreundlichkeit unter PuTTY

In PuTTY gibt es eine Konfigurationsmaske, in der sich Zugangseinstellungen einstellen lassen wie zum Beispiel die IP Adresse. Beim Wiederverwenden der Konfiguration kann man mittels „Load“ die Konfiguration zum Zielsystem erneut laden.

Auf diese Weise ist eine Verbindung in kürzester Zeit und sehr bedienerfreundlich herstellbar. Steht die Verbindung, hat der Benutzer die volle Kontrolle über das Zielsystem.

Der Werkzeugkasten PuTTY ist durch die sichere Authentifizierung mittels SSH sehr gut für die administrative Fernwartung geeignet. Die SSH-Verbindung mit Schlüsseln ist wesentlich sicherer als die mit Passwörtern.

Sollte einem Angreifer ein unberechtigter Zugriff über PuTTY zu einem Zielsystem gelingen, können diverse forensische Artefakte client- und serverseitig ausgelesen werden, die sowohl Aufschluss über die entstandenen Sessions, als auch über vorgenommene Einstellungen geben. Hier nun die forensischen Spuren, die auf einem Client extrahiert werden können und was sie über die Nutzung von PuTTY und das angesteuerte Zielsystem verraten.

IT-forensische Artefakte zu PuTTY in der Registry

Für jeden Benutzer, der PuTTY verwendet, liegt ein Key unter:

  • NTUSER.dat\Software\SimonTatham\PuTTY

Darunter befinden sich die Subkeys:

  • NTUSER.dat\Software\SimonTatham\PuTTY\Jumplist
  • NTUSER.dat\Software\SimonTatham\PuTTY\Sessions
  • NTUSER.dat\Software\SimonTatham\PuTTY\SshHostKeys

Konfiguriert man eine Session und speichert sie mittels „Save“, wird unter Sessions ein neuer Key angelegt.

Jedes Mal, wenn die Session unter diesem Namen gespeichert und auch etwas geändert wird, aktualisiert sich die „LastWriteTime“ des Keys. Somit kann der letzte Modifikationszeitpunkt der gespeicherten Session identifiziert werden. In der Konfiguration sind u.a. die IP-Adresse und der Port des Zielrechners enthalten.

Die Jumplist

Der Jumplist-Key pflegt die Reihenfolge der zuletzt geladenen Sessions. Somit bietet er die Möglichkeit, gespeicherte Konfigurationen nachzuverfolgen. Der Key speichert in einer Liste die geladenen Sessions, heißt, immer wenn eine Session ausgewählt und auf „Load“ geklickt wurde. Aber wurde danach die Konfiguration geändert und anschließend mit „Open“ die Verbindung geöffnet, ist die Änderung nicht nachvollziehbar. Es kann also eine Session geladen, die IP-Adresse ausgetauscht und dann gestartet werden.

Die Reihenfolge ist von oben nach unten bzw. links nach rechts zu lesen. Die zuletzt geladene Verbindung steht an erster Stelle, danach die vorletzte und so weiter. Der Zeitstempel zeigt also, wann das Profil zuletzt geladen wurde.

ABER: Der Zeitstempel ändert sich nur, wenn sich die Reihenfolge ändert. Wird immer die Session geladen, die ohnehin an der ersten Position ist, aktualisiert sich der Key nicht. Wird also über Tage, Wochen oder Monate immer die gleiche Konfiguration geladen, ist nur der Zeitpunkt auslesbar, an welchem diese das erste Mal an die Spitze der Reihenfolge gelangte. Gibt es nur eine gespeicherte Verbindung, bzw. wurde nur eine auf dem System immer wieder geladen, lässt sich nur der erste Ladevorgang (Klick auf „Load“) nachvollziehen.

Die SSH Host Keys

SSH Host Keys werden bei Aufbau einer SSH-Verbindung ausgetauscht. PuTTY fragt, ob diese in der Registry gecached werden sollen. Sollte man dem nicht zustimmen, zeigt PuTTY bei jedem Verbindungsaufbau die folgende Warnung an:

Damit dies nicht passiert, wird der Key in der Regel zwischengespeichert. Sollte dieser später (durch Dritte) verändert werden, weist PuTTY darauf hin, dass der Key unbekannt ist. So kann man feststellen, wenn das System oder die eigene Session kompromittiert ist. Speichert man den Key, wird das in der Registry im Subkey SshHostKeys hinterlegt.

Pro System wird ein Eintrag mit Key und IP-Adresse angelegt. Neue Systeme werden unten an die Liste angehängt. Somit ist der unterste Eintrag das neuste System in der Liste und der Verursacher der Aktualisierung des Zeitstempels. Somit lässt sich feststellen, dass zu dem untersten System, zum Zeitpunkt der „LastWriteTime“ des Keys, eine Verbindung aufgebaut wurde.

Zweckentfremdung von legitimen Tools

Oft werden vom Angreifer legitime Tools zweckentfremdet, um den Angriff durchzuführen und sich im Netzwerk auszubreiten. Gespeicherte Verbindungsprofile helfen dem Täter dabei, sich schnell im Netzwerk zu orientieren. Aus diesem Grund ist es wichtig, auch die Nutzung legitimer Tools forensisch auszuwerten, um dem Täter auf die Schliche zu kommen. Damit das Kapern des Systems und der ggf. darauf befindlichen Schlüssel für eine solche Verbindung alleine nicht ausreicht, ist es wichtig, die Schlüssel zusätzlich mit einer Passphrase zu schützen. Durch die hier aufgezeigte forensische Untersuchung der Spurenlage von PuTTY können mögliche, weitere Ziele identifiziert und der Umfang des Angriffs besser eingeschätzt werden.

Informieren Sie sich über unsere praxisnahen Webinare
  • »Microsoft 365 sicher gestalten«
  • »Informationspflichten nach DSGVO«
  • »Auftragsverarbeitung in der Praxis«
  • »DSGVO-konformes Löschen«
  • »IT-Notfall Ransomware«
  • »Bewerber- und Beschäftigtendatenschutz«
Webinare entdecken
Mit dem Code „Webinar2024B“ erhalten Sie 10% Rabatt, gültig bis zum 30.06.2024.
Beitrag kommentieren
Fehler entdeckt oder Themenvorschlag? Kontaktieren Sie uns anonym hier.
Die von Ihnen verfassten Kommentare erscheinen nicht sofort, sondern erst nach Prüfung und Freigabe durch unseren Administrator. Bitte beachten Sie auch unsere Nutzungsbedingungen und unsere Datenschutzerklärung.