Haftungsausschluss: Dieser Beitrag dient ausschließlich Bildungs- und Informationszwecken. Die hier gezeigten Informationen und Angriffe dürfen niemals für illegale Zwecke oder auf Systemen, für die keine explizite Erlaubnis eingeräumt wurde, verwendet werden. Solche Handlungen können gegen geltende Gesetze verstoßen und schwerwiegende rechtliche Konsequenzen nach sich ziehen.

Zusammenfassung

Dieser Eintrag in unserer SecCore Essentials Reihe hebt Orte hervor, an denen sensible Informationen gespeichert und von Angreifern erlangt werden können. Das Essential gilt als implementiert, wenn die folgenden Bedingungen erfüllt sind:

  • Passwörter werden in sicheren Passwortmanagern gespeichert
  • Regelmäßige Überprüfungen von Dateifreigaben, Dokumentenordnern und Active Directory Attributen werden durchgeführt
  • Es werden keine Initialpasswörter verwendet (z.B. in PXE Boot Umgebungen oder bei neuen Accounts)
  • PXE Boot Umgebungen sind mit einem starken Passwort gesichert

Einleitung

Sensible Informationen wie Passwörter oder Handbücher müssen vor unbefugtem Zugriff geschützt werden. Angreifer oder sogar Mitarbeiter mit geringen Rechten können auf Daten zugreifen, die ihnen nicht bekannt sein sollten, wenn Dateifreigaben, Cloud-Speichercontainer oder sogar einige Active Directory Attribute vergessen oder falsch konfiguriert sind.

Häufige Angriffsvektoren

Dieser Abschnitt behandelt Orte, an denen solche sensiblen Informationen häufig zu finden sind.

Dateifreigaben

In on-premise Umgebungen sind Dateifreigaben mit Protokollen wie Server Message Block (SMB)1 oder Network File System (NFS)2 üblich und werden häufig von Benutzern und Systemen wie Active Directory zum Zugriff und zur Verteilung von Dateien verwendet. Diese Tatsache kann jedoch dazu führen, dass Benutzer versehentlich Dateien oder ganze Partitionen mit dem gesamten Netzwerk teilen. Freigaben können mit Access Control Lists (ACLs) konfiguriert werden, um den Zugriff auf deren Inhalt einzuschränken, aber diese müssen korrekt konfiguriert sein, um Daten abzusichern.

Nicht nur neue, sondern auch bestehende (globale) Dateifreigaben können problematisch sein. Benutzer laden oft Dokumente hoch, die sie teilen möchten, ohne zu wissen, dass diese von jedem Benutzer im Netzwerk gelesen werden können.

Häufig problematische Dateien und ihre Speicherorte sind beispielsweise:

  • Skripte mit Anmeldeinformationen in den SYSVOL und NETLOGON Freigaben einer Active Directory Domäne
  • Backups und SQL Dumps in backup Freigaben auf Datenbankservern
  • Konfigurationsdateien für Embedded Systeme auf ungesicherten NFS Freigaben
    • Da viele Embedded Geräte nicht in ein Active Directory eingebunden werden können, sind deren NFS Freigaben häufig auf "public" gesetzt
  • Ganze Partitionsfreigaben (C:, D:\ etc.) auf Clients oder Servern
  • Webserver Konfigurations- und Backend-Code in www oder httpd etc. Freigaben

Cloud Speicher

Cloud-Only oder hybride Umgebungen tendieren dazu, Cloud-Speicher wie SharePoint3, Nextcloud4 oder OneDrive für die Datenspeicherung zu verwenden. Diese Systeme sind in der Regel sicherer für das Teilen von Dateien, da die Zugriffsbeschränkung für Benutzer intuitiver ist. Sie bringen jedoch auch einige neue Probleme und Angriffsvektoren mit sich. Viele Cloud-Dienste bieten eine globale Volltextsuche an, die oft auch Text auf Bildern (via OCR) einschließt. Dies macht es einem Angreifer, der Zugriff auf ein kompromittiertes Benutzerkonto hat, extrem einfach, Informationen zu sammeln, da er einfach nach Phrasen wie "password" oder "Zugang" in allen zugänglichen Dokumenten suchen kann.

Active Directory Attribute

Active Directory Attribute sind Felder für Benutzer, Computer oder Gruppen, die zusätzliche Informationen enthalten können, wie z.B. wann das Passwort zuletzt gesetzt wurde, eine Beschreibung des Assets oder wie deren Telefonnummer lautet. Die folgenden Attribute können beispielsweise Passwortinformationen für Benutzer enthalten:

  • unicodePwd
  • userPassword
  • unixUserPassword
  • msSFU30Password

Diese Attribute sollten niemals von einem Domänenbenutzer mit geringen Rechten gelesen werden können und regelmäßige Überprüfungen dieser Attribute werden empfohlen.

Zusätzlich stellt die Beschreibung (description) eines Kontos ein häufiges Sicherheitsproblem dar. Obwohl dieses von jedem Account in der Domäne gelesen werden kann, wird es oft verwendet, um sensible Informationen wie Initialpasswörter zu speichern.

PXE Boot & Autopilot Rollout

Sowohl PXE Boot als auch Windows Autopilot können verwendet werden, um Geräte wie Laptops oder Workstations automatisch einzurichten. PXE Boot wird in on-premise Umgebungen verwendet und nutzt TFTP, um vorgefertigte Systemabbilder an Clients bereitzustellen. Diese Abbilder können mit einem Passwort verschlüsselt werden, um mögliche sensible Daten zu schützen. Es existieren Tools5, um einen Passwort-Hash aus der PXE-Umgebung zu extrahieren, was es ermöglicht, einen Brute-Force-Angriff lokal durchzuführen. Mit diesem Passwort kann das Abbild direkt heruntergeladen und/oder gebootet werden. Diese Umgebung kann dann nach sensiblen Informationen wie einem lokalen Administratorpasswort oder WLAN-Zugangsdaten durchsucht werden.

Autopilot wird hingegen ohne Server-Hardware oder Systemabbilder verwendet. Es dient zur Konfiguration eines bereits installierten Microsoft Windows Systems. Während des Installationsvorgangs (Out-Of-Box-Experience) ist es jedoch möglich, die Tastenkombination Shift-F10 zu verwenden, um ein Kommandozeilenfenster zu öffnen und nach sensiblen Informationen zu suchen oder einen neuen lokalen Administrator zu erstellen, der für zusätzliche Informationsbeschaffung verwendet werden kann, wenn das System vollständig eingerichtet ist.

Angriffsszenario

Dieser Abschnitt soll demonstrieren, wie Angreifer sensible Informationen missbrauchen, um unbefugten Zugriff zu erlangen. Der Aufbau dieses Angriffsszenarios ist wie folgt:

  • Der Angreifer ist bereits im internen Netzwerk, jedoch ohne Anmeldeinformationen
  • Der Angreifer hat keine Bedenken bezüglich OPSEC, es wird der einfachste Ansatz verwendet

Da der Angreifer bereits Zugriff auf das interne Netzwerk erhalten konnte, kann er damit beginnen, nach zugänglichen Dateifreigaben zu suchen. Dafür kann z.B. das Tool NetExec6 mit folgendem Befehl verwendet werden:

nxc nfs <ip-range> --shares

Dadurch wird eine zugängliche Freigabe devshare$ gefunden: Share Enumeration Da diese Freigabe ohne Authentifizierung ausgelesen werden kann ist, können die Angreifer damit beginnen, nach sensiblen Dateien zu suchen. Dies ist ebenfalls mit NetExec möglich: Accessible Files Mite NetExec können die zugänglichen Dateien auch heruntergeladen und nach sensiblen Informationen durchsucht werden: File Download Die heruntergeladene Datei enthält Active Directory Anmeldeinformationen, die verwendet werden können, um sich an der Domäne anzumelden und das Netzwerk weiter zu enumerieren: Share Enumeration Durch diesen Zugang können weitere Freigaben aufgelistet werden. Die Freigabe financeshare ist für den Account test.lab.local jedoch nicht zugänglich, wie im obigen Screenshot zu sehen ist. Der Zugang kann aber auch verwendet werden, um die Active Directory Attribute aller Accounts auszulesen: User Descriptions Hier ist zu erkennen, dass die Beschreibung des Benutzers financeAccount@lab.local dessen Passwort enthält. Dieses Passwort kann nun verwendet werden, um sich am financeshare anzumelden: New Share Permissions Die Freigabe kann mit Hilfe von smbclient7 aufgelistet und sensible Dateien können heruntergeladen werden: Download

Gegenmaßnahmen

Nachdem die Zugriffsrechte der Freigabe korrigiert wurden, ist devshare$ nicht mehr zugänglich: Fixed Share Permissions Anschließend sollte die Beschreibung der Konten überprüft und sensible Informationen entfernt werden. Dadurch ist eine Anmeldung am financeshare auch nicht mehr möglich.