3 Auswertung
<< | < | = | > | >>
3.1 Einführung
Die bisher von Seiten des Angreifers getätigten Vorgehensweisen hatten keinen zwingenden direkten Zugriff zum Zielsystem erfordert; vielleicht durch Zufall oder Ungeschicktheit trotzdem kurzzeitig bestehend, aber niemals absichtlich. Diese nicht-invasiven Scans haben uns im besten Fall elementare Informationen über die Angriffsziele zukommen lassen. Jetzt werden wir aber noch einen Schritt weitergehen und versuchen weitere Informationen (z.B. bestehende Benutzerkonten und -Gruppen) aus den Hosts in der momentanen schon langsam gefestigsten Opfer-Stellung auszulesen. Dieser dritte Schritt eines Angriffs nennt man Auswertung.

In einem Briefwechsel meinerseits mit einem bekannten Gesicht der amerikanischen Hacker-Szene betitelte mein Gegenüber Windows NT als den besten Freund eines Hackers. Ich konnte mir seine aufdringliche Anspielung im ersten Augenblick nicht erklären und hakte nach, wie er dies denn nun genau meine. Seine Antwort war prägnant und voller Wahrheit: Windows NT erzählt einem alles, wenn man nur lieb danach fragt. Das Erkennen und Auswerten von Microsoft-Betriebssystemen wird durch die mitgelieferten Tools zum Kinderspiel. Grund dafür ist das zugrundeliegende Konzept, das gemeinsame Ressourcen möglichst einfach und transparent nutzbar machen soll.

Ein Erkennen und Protokollieren unserer in diesem Kapitel besprochenen Aktivitäten durch das Zielsystem wird mit höchster Wahrscheinlichkeit nicht verhinderbar.

Die Informationstypen, die sich ein Angreifer aneignen will, kann man in folgende drei Sorten unterteilen:

Die Auswertungstechniken sind systemspezifisch und bauen in der Regel auf den in Kapitel 2 (Scanning) gewonnenen Informationen auf. Wenn Sie die administrativen Gegenmassnahmen aus dem besagten Kapitel umsetzen, wird ein Angreifer es schwierig haben, nutzend bis zur Phase 3, der Auswertung, vorzudringen - Unmöglich ist jedoch nichts!
3.2 Null-Sessions
Die Auswertung von Windows-Systemen basiert primär immer auf der Möglichkeit, dass sich Benutzer anonym mit dem System verbinden können. Diese Problematik ist in Fachkreisen unter dem Namen Null-Sitzung oder Red Button bekannt. Eine solche anonyme Verbindung mit den Windows-Bordmitteln herzustellen ist sehr einfach:
 
MS-DOS-Eingabeaufforderung

Microsoft(R) Windows 98
   (C)Copyright Microsoft Corp 1981-1999.

C:\WINDOWS>net use \\192.168.0.200\IPC$
Der Befehl wurde ausgeführt.

C:\WINDOWS>_

Wir stellen eine Null-Sitzung unter Windows 98 zum NT-Rechner mit der IP-Adresse 192.168.0.200 her.

Das so genutzte "net use"-Kommando verbindet sich mit dem versteckten Interprocess Communications (IPC$) des Systems. Falls dieser Verbinungsaufbau erfolgreich verlief, so kann der Angreifer in den folgend dokumentierten Schritten einige für ihn relevante Informationen auslesen:

3.3 Gemeinsame NetBIOS-Ressourcen
Besteht eine Null-Sitzung zum observierten Host, so können wir uns mit der Eingabe von "net view \\<Hostname>" die gemeinsamen Ressourcen auf dem Zielsystem Gamma anzeigen lassen:
 
C:\WINNT\System32\cmd.exe
C:\WINNT>net view \\gamma
Freigegebene Ressourcen auf \\GAMMA

Freigabename Typ          Kommentar
------------------------------------------------------------------------------
Add-ins      Platte       "Access to EDK objects"
Address      Platte       "Access to adress objects"
pks          Platte
Resources    Platte       "Event logging files"
smime        Platte
Stores       Platte
tracking.log Platte       "Exchange message tracking logs"
transfer     Platte
Der Befehl wurde ausgeführt.

C:\WINNT>_

Durch die Eingabe von "net view" gepaart mit der Definition eines Host-Namens können die gemeinsamen NetBIOS-Ressourcen ausgelesen werden.

Seit Veröffentlichung von Windows NT 3.1 bietet Microsoft gegen Aufpreis von rund $ 200 eine zusätzliche Dokumentation, sowie eine CD-ROM voller Software-Utilities für die Verwaltung von Windows-Netzwerken an: Das Windows NT Resource Kit, von dem Workstation- und Server-Versionen existent sind. Das NTRK enthält eine vielseitige Ansammlung von nützlichen Programmen, vom Perl-Interpreter bis Remote-Control-Tools, die im Standart-Paket von NT nicht vorhanden sind. Das NTRK stellt für jeden fähigen Administrator eine Bereicherung dar. Es wird an vielen dunklen Ecken des Internets für zwielichtige Zwecke angeboten und hat sich daher in Hacker-Kreisen den Kosenamen Windows NT-Hacking Kit einheimsen können. Viele Angreifer werden die zum Lieferumfang von NTRK gehörenden Utilities gut zu nutzen wissen.

Das Tool "rmtshare" aus dem NTRK kann eine "net view"-ähnliche Ausgabe generieren. "srvcheck" zeigt alle gemeinsamen Ressourcen und autorisierte Benutzer an, setzt jedoch zur erfolgreichen Abarbeitung den erlaubten Zugriff für das Zielsystem voraus. Das Utility "srvinfo" ist auch sehr interessant, da es durch das Nutzen der Option "-s" sehr brisante Daten über ein NT-Zielsystem auszugeben vermag.

Angreifer sind meist faul und haben es eilig, so dass sie NetBIOS-Scanner zur automatisierten Abtastung von Netzwerkblöcken zu Rate ziehen werden. Zwei historische Programme in dieser Hinsicht sind Legion und NAT. Ich persönlich mag das ziemlich unbekannte Utility SharesFinder, das aufgrund seiner Schlichtheit die grossen Brüder mindestens in der Hinsicht auf die Performance übertrumpfen darf.

Shares Finder sucht nach freigegebenen Verzeichnissen.
SharesFinder sucht nach freigegebenen Verzeichnissen.

Diese Tools können ein Klasse C-Netzwerk abscannen und alle exportierten Dateisysteme auf der grafischen Oberfläche preisgeben. Legion 2.1 beinhaltet zudem ein integriertes Bruteforce-Feature, um passwortgeschützte Ressourcen knacken zu können. Mehr zu diesem Thema findet sich jedoch im Kapitel 4.2 (Windows 9x: Der Fernzugriff).
 
Name Ressource Plattform
Auto NetBIOS Hacker http://packetstorm.securify.com/Win/netbios.bat Windows 9x/NT/2000
DumpSec (DumpACL) http://www.somarsoft.com Windows NT/2000 (nur Intel-Plattformen)
Legion http://www.technotronic.com Windows 9x/NT/2000, UNIX/Linux
NAT http://packetstorm.securify.com/NT/scanners Windows 9x/NT, UNIX/Linux
NetBIOS-Scanner http://www.kryptocrew.de/download/nbtscan.zip Windows NT/2000
SharesFinder http://packetstorm.securify.com/Win/SharesFinder.zip Windows 9x/NT/2000
Suchprogramme zum Automatisieren des Auffindens von NetBIOS-Ressourcen.

3.4 NT-Domänen
Bei Windows NT gehen wir noch einen beachtlichen Schritt weiter, als "nur" die exportierten Dateisysteme auszuwerten. Der Befehl "net view /domain" ist ein exzellenter Partner auf diesem Weg, denn er informiert bei bestehender Null-Session über alle im Netzwerk verfügbaren Domänen (Die "net"-Version unter Windows 9x ist einigen Einschränkungen unterworfen: Sie kann zum Beispiel keine  NT-Domains anzeigen.):
 
C:\WINNT\System32\cmd.exe
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.

C:\WINNT>net view /domain
Domäne
------------------------------------------------------------------------------
ARBEITSGRUPPE
VERKAEUFER
BUCHHALTUNG
LABOR
EDV-ABTEILUNG
 

C:\WINNT>_

Der Befehl "net view /domain" zeigt unter Windows NT und Windows 2000 alle Domänen eines Netzwerks.

Der nächste Befehl listet alle Computer einer bestimmten Domäne auf:
 
C:\WINNT\System32\cmd.exe
C:\WINNT>net view /domain:labor
Servername              Beschreibung
------------------------------------------------------------------------------
\\MARC                  marc.ruef@computec.ch
\\DAVOR                 AMD Athlon 1000 MHz 256 MB RAM
\\MINA
\\ELIA                  FIELD ROCKT
\\TEST1                 TEST-SYSTEM 1 (Windows 95)
Der Befehl wurde erfolgreich ausgeführt.

C:\WINNT>_

Auflistung aller Hosts in der Domäne Labor.mit dem Befehl "net view" unter Windows NT 4.0.

3.5 NT-Domänen-Controller
Im NTRK findet sich ein Utility mit dem Namen "nltest", das die Primären- und Backup-Domain-Controller (PDC und BDC) einer NT-Domäne erkennen kann:
 
C:\WINNT\System32\cmd.exe
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.

C:\WINNT>nltest /dclist:edv-abteilung
List of DCs in Domain edv-abteilung
     \\ALPHA (PDC)
     \\BETA
     \\GAMMA
The command completed successfully

C:\WINNT>_

Die Suche nach Domänen-Controllern im Netzwerk durch das Nutzen von "nltest" aus dem Windows NT-Resource-Kit (NTRK).

Ich muss Sie noch einmal vor den Kopf stossen, denn man kann noch einen Schritt weiter gehen: Unter Verwendung einer Null-Sitzung kann das Kommando "nltest /Server:<Servername> /trusted_domains" zum Auslesen von mit der besagten Domain verknüpften NT-Domänen genutzt werden. Ein exakte Abbild der Netzwerk-Struktur liegt dann nur noch wenige Tasten-Anschläge entfernt.

3.6 Benutzerkonten und -Gruppen
Ein Angreifer wird stehts darum bemüht sein, die Benutzernamen und -Gruppen einer Domäne oder eines Hosts herauszufinden. Sind diese Daten erst einmal in seinem Besitz, kommen Tools zur automatischen Erkennung von Passwörtern zum Einsatz: Ab da ist es nur noch eine Frage der Zeit, bis sich der Eindringling mittels dem gefundenen Passwort Kontrolle über das System verschaffen kann. Traurigerweise gibt eine falsch konfigurierte NT-Maschine genauso schnell Benutzerdaten bekannt, wie als wir sie über gemeinsame Ressourcen ausgefragt haben.

Als erstes bauen wir wiedereinmal eine Null-Sitzung zu unserem Opfer auf, um danach mittels dem folgend erklärten "nbtstat"-Befehl an die begehrten Informationen zu kommen:
 
MS-DOS-Eingabeaufforderung
C:\WINDOWS>nbtstat -A 192.168.0.200
 

       NetBIOS Remote Machine Name Table

   Name               Type         Status
--------------------------------------------
ZUERICH1       <00>  UNIQUE     Registered
ZUERICH1       <20>  UNIQUE     Registered
UBSWCH         <00>  GROUP      Registered
UBSWCH         <1C>  GROUP      Registered
UBSWCH         <1B>  UNIQUE     Registered
UBSWCH         <1E>  GROUP      Registered
ADMINISTRATOR  <03>  UNIQUE     Registered
UBSWCH         <01>  UNIQUE     Registered
..__MSBROWSE__.<01>  GROUP      Registered

MAC Address = 00-01-02-85-D8-D5
C:\WINDOWS>_

Wir lesen mittels" nbtstat" die NetBIOS-Namenstabelle eines fremden NT-Systems aus.

"nbtstat" zeigt uns die NetBIOS-Namenstabelle des Systems 192.168.0.200. Wir erfahren daraus den Systemnamen (ZUERICH1), die Domäne (UBSWCH) und die Namen aller angemeldeten Benutzer (ADMINISTRATOR).

Einige Utilities aus dem in Absatz 3.3 (Gemeinsame NetBIOS-Ressourcen) vorgestellten NTRK können mehr Informationen über die Benutzer eines Systems liefern: Dazu zählen "usrstat", "showgrps", "local" und "global". Für eine detaillierte Ermittlungsarbeit bevorzuge ich jedoch DumpSec (früher trug es den Namen DumpACL) der Firma Somarsoft, das eine Liste von Benutzern, Gruppen, Sicherheitsrichtlinien und Benutzerprivilegien eines NT-Systems liefern kann. Ein extremer Pluspunkt ist die mögliche Einbindung in Batch-Dateien, da das Utility auch von der Befehlszeile aus in vollem Umfang genutzt werden kann.
 
Name Ressource Plattform
Auto NetBIOS Hacker http://packetstorm.securify.com/Win/netbios.bat Windows 9x/NT/2000
DumpSec/DumpACL http://www.somarsoft.com Windows 9x/NT/2000 (nur Intel-Plattformen)
winfo http://ntsecurity.nu/toolbox/winfo/index.shtml Windows 9x/NT/2000
Utilities zum Auswerten von NT-Maschinen.

Eine weitere Auswertungstechnik für Benutzerkonten, die sehr viel Erfolg verspricht, ist im Nutzen der Tools "sid2user" und "user2sid" von Evgenii Rudnyi zu suchen. Diese beiden Programme für die Befehlszeile können bei NT-Maschinen die SID einem Namen zuordnen und umgekehrt. Die drei Lettern SID stehen für Security-Identifier; ein numerischer Wert mit variabler Länge.

Hat ein Angreifer die SID einer Domäne mit der Hilfe von "user2sid" herausgefunden, so kann er sich an das Beschaffen bekannter SID-Nummern machen, um die entsprechenden Benutzernamen auszulesen. Betrachten wir das ganze an einem Beispiel:
 
C:\WINNT\System32\cmd.exe
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.

C:\WINNT>user2sid \\192.168.0.23 "domain users"
Sie-1-5-23-4264754-362465345-4124524500-503
Number of subauthorities is 5
Domain is UBSZRHCH
Lenght of SID in memory is 28 bytes
Type of SID is SidTypeGroup

C:\WINNT>_

Wir ermitteln die SID mittels dem Auswertungs-Tool "user2sid".

Die erste Zeile schlägt sich in der Darlegung der SID der Maschine mit der IP-Adresse192.168.0.23 nieder. Die Zahlenkette beginnt mit S-1 und wird mittels Bindestrichen getrennt. Die Zahlenkombination, die dem letzten Bindestrich folgt, ist der sogenannte RID (Relative-Identifier), welcher für Standartkonten und -Gruppen wie Administrator oder Guest genutzt wird. Die RID des Administrators lautet stets 500 und die des Guest-Benutzers 501. In einem weiteren Schritt kann der Angreifer die bekannte SID-Zeichenkette durch eine Kombination mit "sid2user" gebrauchen, um den Namen des Administrators zu erfahren:
 
C:\WINNT\System32\cmd.exe
C:\WINNT>user2sid \\192.168.0.23 "domain users"
Sie-1-5-23-4264754-362465345-4124524500-503
Number of subauthorities is 5
Domain is UBSZRHCH
Lenght of SID in memory is 28 bytes
Type of SID is SidTypeGroup

C:\WINNT>sid2user \\192.168.0.23 5 23 4264754 362465345 4124524500 500
Name is Mark Emery
Domain is UBSWZRHCH
Type of SID is SidTypeUser

C:\WINNT>_

Durch das Nutzen von "sid2user" finden wir den Namen des Administrators heraus.

Um einen Erfolg zu erzielen müssen in jedem Fall die Bindestriche weggelassen werden. Soll ich Sie mit noch mehr Hintergrundinformationen versorgen? Nun dann, es wird Sie interessieren, dass dem ersten an einem lokalen NT-System oder einer -Domäne erstellten Konto immer die RID 1000 zugeteilt wird. Jedes weitere Objekt erhält standartmässig die nächst höhere Zahl und RIDs werden nie weiterverwendet; so wie wir dies beim Errichten von Konten in der UNIX-Umgebung her kennen. Es können also auch gelöschte Benutzer ermittelt werden - Und dies Funktioniert auch, wenn die RestrictAnonymous-Funktion aktiviert wurde. Port 139 verrät einfach mehr, als so manchem lieb ist...

3.7 NT-Anwendungen und Banner
Die Auswertung von Bannern ist bei allen Systemen gleich: Eine hergestellte Telnet-Verbindung zu einem laufenden Dienst auf dem Remote-Host sollte uns mit einem Begrüssungstext, der meist den Namen der eingesetzten Software beinhaltet, empfangen.
3.8 Windows 2000-LDAP
Es ist hinlänglich bekannt, wie freundlich Windows NT sein kann, wenn es um das Einsammeln von Informationen geht: Die Benutzernamen und Dateifreigaben sind für einen Angreifer Gold wert, und erlauben einen effizienten Remote-Angriff. Windows 2000 hat bei der Lösung dieser markanten Sicherheitsprobleme einige beachtliche Fortschritte gemacht, aber ganz neue Informationen sind nun aus dem Active Directory-Dienst heraus erspähbar: Wie so oft bei Microsoft ist ein Fortschritt auch wieder ein Rückschritt.

Eine für den Endverbraucher grundlegendste Änderung im "neuen" Windows-System ist die Einführung eines auf LDAP (Leightweight Directory Access Protocol) basierenden Dienst, der von Microsoft liebevoll Active Directory genannt wird. Da dieser Zusatz einfach zu handhaben und dementsprechend praktisch ist, wird die Installation und der Nutzen dieses Features bald grossflächig in Unternehmens-Netzwerken Einzug halten. Doch nicht nur Freunden wird damit die Arbeit erleichtert, sondern auch den eigenen Feinden, da es diesen möglich sein wird, informellen Nutzen aus diesem Dienst zu ziehen.

AD wurde für die Weitergabe einer einheitlichen logischen Darstellung aller für die technische Infrastruktur eines Netzwerkes nötigen Objektdaten entwickelt. Wie so oft enthält das Windows NT Resource Kit eine beachtliche Menge an Tools, um aus diesem Dienst wertvolle Informationen zu gewinnen. Das Standart-Werkzeug für den Umgang mit AD ist ein einfacher LDAP-Client mit dem Namen "ldp", der eine Verbindung zum AD-Server aufbauen und den Inhalt des Directories anzeigen kann.

Die ausgelesenen Informationen unterscheiden sich je nach Konfiguration des angesprochenen Systems. Doch ein Problem tritt bei dieser Schnüffelei zu Tage: Windows NT 4 RAS-Server (Remote Access Service) müssen in der Lage sein, ein Benutzerobjekt im AD abzufragen, um herauszufinden, ob es für einen Zugriff die Berechtigung besitzt. Die Windows 2000-Installation führt den Benutzer an einer Abfrage vorbei, die es erlaubt die Sicherheit dieser Directories für die angerissene Abwärtskompatibilität herunterzuschrauben, so dass die Suchoperation für traditionelle RAS-Server zugelassen wird. Wird die schwächere Option beim Installations-Vorgang gewählt, sind die Benutzerobjekte auch bei den "ldp"-Abfragen ersichtlich: Die Namen aller eingerichteten Benutzerkonten sind ohne grössere Umschweife für einen Angreifer sichtbar.

3.9 Auswertung: Gegenmassnahmen
3.9.1 Null-Sessions: Gegenmassnahmen
In der Einführung habe ich auf die Problematik der Null-Sessions hingewiesen. Da sich praktisch jeder in diesem Kapitel vorgelegte Ablauf, auch die Auswertung von Windows NT und 2000, dieser Sicherheitslücke bedient, ist es nahe gelegen, diese anonymen Verbindungsanforderungen vorbeugend zu verhindern. Um zu überprüfen, ob ein System von dieser Red-Button-Verwundbarkeit betroffen ist, kann man das Programm red button.nt.weakness.shower.zip benutzen.

Ab Service Pack 3 wurde durch Microsoft ein Mechanismus mit dem Namen "Restrict Anonymous" bei Windows NT eingeführt, den man in der Registry aktivieren sollte. Gehen Sie den folgenden Schritten nach, um einen Nutzen aus dem besagten Feature ziehen zu können:

  • Öffnen Sie "regedt32.exe"
  • Suchen sie nach dem String "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA"
  • Wählen Sie Bearbeiten/Neu/Zeichenfolge
  • Geben Sie nun folgende Daten ein:
  • Name: "RestrictAnonymous"
  • Datentyp: "REG_DWORD"
  • Wert: "1"
  • Beenden Sie alle laufenden Tasks und starten Sie Windows NT neu, damit die Änderung aktiv werden kann.
  • 3.9.2 LDAP-Auswertung: Gegenmassnahmen
    Die Entgegenwirkung der Auswertungen anhand des LDAP geht bei Windows 2000 von "netsh" aus: Dieses Utility bereinigt die geschwächte Sicherheit von den zuvor vorgenommenen Einstellungen während der Installation, sobald es in der Kommandozeile ausgeführt wird. Natürlich verlieren alle NT 4-RAS-Server nach  diesem Vorgang ihren Nutzen im Zusammenspiel mit den 2000-Rechnern. Der Synthax für das kleine Shell-Tool liest sich wie folgt:

    netsh ras set domainaccess [legacy | standart] domain = [Domänen-Name]

    Wird die Option "legacy" gesetzt, können Windows NT 4- und Windows 2000-RAS-Server in vertrauten NT 4-Domänen Benutzer aus der angegebenen Domain beglaubigen. Wird der Standart-Modus gewählt, sind die Benutzerobjekte auch dann vor einer gelegentlichen Auswertung geschützt, wenn der Schalter "legacy" später aktiviert wird. Die Benutzerobjekte sind erst ab dann wieder gefährdet, wenn die Lese-Berechtigung manuell wieder umgestellt wird. Für weitere Informationen zu dieser Berechtigung geben Sie "netsh ras set domainaccess /?" ein.

    3.10 Zusammenfassung
    Windows ist sehr freizügig im Umgang mit systeminternen Informationen, die eine beachtliche Bedeutung für einen Angreifer haben können. Die Kombination von Null-Sitzungen und diversen Tools lassen potentielle Angreifer schnell an interessante Informationen eines Systems kommen. Befindet sich der Bösewicht erst einmal im Besitz solch sicherheitsrelevanter Informationen wie bestehende Benutzerkonten, ist ein Schritt in das System dank dessen nur noch wenige Atemzüge entfernt.

    Wer sein Windows-System kompetent absichert, so dass keine vertraulichen Informationen nach Draussen dringen können, der wird um einiges ruhiger schlafen können. Es fragt sich jedoch wie lange, denn die Cracker-Gemeinde macht keine Pausen...

     
    << | < | = | > | >>