You are here: Home » Dokumentation » Betriebssysteme » Microsoft Windows Sicherheitshinweise » Microsoft Windows Intruder Detection Checklist
Sorry, this page is not translated yet.

Microsoft Windows Intruder Detection Checklist

Dieses Dokument beinhaltet Ratschläge zur Erkennung/Spurensuche eines kompromittierten Microsoft Windows Betriebssystems. Der Fokus dieses Dokumentes liegt dabei auf Microsoft Windows 2000/XP.

letzte Änderung: 04.12.2002 – Version 2.0

Aufgrund der offenbar zunehmenden Anzahl an kompromittierten Microsoft Windows Systemen steigt die Nachfrage bzgl. einer Incident Response Best Practise insbesondere in dem Bereich Microsoft-Windows-Plattformen. Verunsicherung herrscht derzeit sowohl bei den Endanwendern als auch bei Systemadministratoren. Das nachfolgende Dokument soll für beide Interessensgruppen eine Grundlage für eine Systemüberprüfung bieten.

Allgemeines

Zumeist fallen kompromittierte Systeme zuerst durch verstärkte Netzwerk-, Festplatten- oder CPU-Aktivitäten auf. Diese ungewöhnlichen Aktivitäten festzustellen bleibt dem Leser selbst überlassen. Der Leser muss ebenfalls abwägen, ob eine schnelle Überprüfung oder eine akribische Spurensuche notwendig ist. Beachten Sie, dass jede Systemveränderung potentiell Spuren des Angreifers überschreibt. Um das Überschreiben von Festplatteninhalten zu vermeiden, sollte die Ausgabe aller Werkzeuge z.B. mittels NetCat (nc.exe, bzw. cryptcat) auf entfernte Systeme über eine Netzwerkverbindung erfolgen. Starten Sie dazu NetCat auf einem entfernten System mit der Option “-l” (listen mode), z.B. nc -l -p 12345 > c:\IR-Output, und übergeben auf dem zu überprüfenden System mittels “| nc <IP> 12345” die Ausgabe an NetCat (z.B. listdlls | nc 10.0.0.2 12345).

Verdächtige Systemaktivitäten feststellen

  • Installierte Hintertüren feststellen
    Backdoors dienen Angreifern das System jederzeit und unbemerkt über eine Netzwerkverbindung aufzusuchen, ohne die bei der Systemkompromittierung verwendete Schwachstelle abermals ausnutzen zu müssen.
    Feststellen lassen sich installierte (und gestartete) Hintertüren
    1. durch Scannen des Systems (z.B. mittels nmap eines entfernten Rechners) nach ungewöhnlichen lauschenden TCP/UDP-Ports oder
    2. durch Werkzeuge wie fport, die lokal auf dem System ausgeführt werden, um TCP/UDP-Ports Prozess-IDs zuzuordnen. Die gewonnenen unklaren Prozess-IDs können mittels Werkzeugen wie listdlls oder dem Task-Manager Prozessen zugeordnet werden. Neben fport kann unter Windows XP mittels netstat -ano durch den Schalter “-o” die Prozess-ID von Netzverbindungen ausgegeben werden (dieser Schalter fehlt unter Windows 2000)
    3. Überprüfung des Datenverkehrs zu und von dem verdächtigen Host (z.B. an vorgelagerten Routern).

Verdächtige Prozesse aufspüren

  • Überprüfung der Prozessliste
    Die Kontrolle der gestarteten Prozesse mittels des Task-Managers (taskmgr.exe) ist nicht empfehlenswert, da es Möglichkeiten gibt, dass Prozesse nicht im Task-Manager aufgeführt werden und der Task-Manager keine Pfade gestarteter Prozesse aufzeigt. So ist es nicht unüblich, dass installierte trojanische Pferde Namen existierender Systemprogramme (z.B. svchost.exe, WinMgmt.exe) verwenden, welche in der Task-Manager-Darstellung kaum von den echten Systemprogrammen zu unterscheiden sind. Mittels Werkzeugen wie listdlls, handle oder des Prozess Explorer von Sysinternals ist es möglich, die Pfade gestarteter Programme auszugeben. Beachten Sie, dass Systemprogramme (wie svchost) aus %windir%\system32\ ausgeführt werden (und nicht z.B. über den Recycler).
    Soll der Zugriff auf die Prozessliste über das Netzwerk erfolgen, so können die Werkzeuge pslist von Sysinternals oder pulist aus dem Windows-ResourceKit behilflich sein.
  • Verdächtige Eintragungen in der Registry
    Viele trojanische Pferde werden über Registrierungsschlüssel beim Systemstart bzw. der Anmeldung eines Benutzers ausgeführt. Die typischen Registry-Schlüssel hierfür sind:
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunService
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServiceOnce
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunService
    • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServiceOnce
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AeDebug
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Otions
    • HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
    • HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Load
    • HKEY_CLASSES_ROOT\exefile\shell\open\command
    • HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\KnownDLLs
    • HKEY_LOCAL_MACHINE\System\ControlSet001\Control\Session Manager\KnownDLLs
      Diese Keys können z.B. mittels Registry Dump (regdmp aus dem ResourceKit) einfach ausgelesen werden (etwas bequemer als mittels regedit).
      z.B.: regdmp.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run . Ferner kann das kostenlose Werkzeug AutoRuns von Sysinternals behilflich sein.
  • Programmstart über Autostart-Ordner und System-Dateien
    Als Autostart-Ordner kommen die benutzerspezifischen Ordner “Documents and Settings\*\Start Menu\Programs\Startup” in Frage, wobei “*” auch für “All Users” und “Default User” steht. Darüberhinaus kann Programmcode beim Systemstart oder der Benutzeranmeldung mittels Gruppenrichtlinien ausgeführt werden. Neben dem Programmaufruf aus Autostart-Ordnern kann der Programmstart z.B. über Systemdateien wie die win.ini erfolgen.
  • Programmstart über die Schedule-Liste
    Mittels des Dienstes Scheduler lässt sich zu bestimmten Zeitpunkten Programmcode ausführen. Den Inhalt der Schedule-Liste können Sie sich z.B. mittels des Kommandozeilenbefehls at ausgeben lassen.
  • Überprüfung installierter/gestarteter Dienste
    Mittels des MMC Snap-Ins Services (services.msc) können die installierten Dienste (incl. deren Status und Startart) aufgelistet werden. Als Kommandozeilenbefehle stehen z.B. sclist (aus dem ResourceKit) und srvinfo (aus dem ResourceKit) zur Verfügung.
    Besonderes Augenmerk sollte insbesondere ungewöhnlichen (Nicht-Windows-Diensten) und kritischen Diensten wie FTP, Web Publishing, Telnet gewidmet werden.

Spurensuche

  • Überprüfung der Logfiles
    Microsoft Windows NT/2000 protokolliert standardmäßig weder Anmeldeversuche noch grundlegende Systemänderungen (wie z.B. Gruppen-/Passwortrichtlinien). Sollte eine Protokollierung aktiviert sein, befinden sich die entsprechenden Logfiles standardmäßig unter “%systemroot%/system32/config” und können mit der Ereignisanzeige betrachtet werden. Mittels Werkzeugen wie dumpevt.exe von Somarsoft können die Logfiles in andere Formate gespeichert werden.
    Etwaige Logfiles des IIS (Protokollierung von HTTP-, FTP-Anfragen) befinden sich standardmäßig unter “%systemroot%/system32/LogFiles”.
    Weitere Information zu den (oft nicht besonders aussagekräftigen) EventIDs gibt es z.B. unter http://technet.microsoft.com/en-us/library/cc750908.aspx und http://eventid.net/.
    Bei einer Domänenstruktur sollte die Überprüfung der Ereignisanzeige auf dem Domänencontroller und dem lokalen System stattfinden.
    Sollten weitere Dienste (z.B. DNS-Server, Personal Firewall) eingesetzt werden, so weisen diese Produkte oftmals eigene Logfiles auf.
  • Zeitstempel angelegter Dateien
    Konnte ein Zeitpunkt der Systemkompromittierung festgelegt werden (z.B. durch Logfiles bzw. den Zeitstempel angelegter Dateien), so sollte das Dateisystem nach Dateien, die in diesem Zeitraum angelegt/verändert wurden, durchsucht werden. Dies kann über die erweiterte Suchoption oder spezielle Werkzeuge erfolgen. Beachten Sie, dass der Explorer standardmäßig versteckte Dateien nicht anzeigt – eine Konfiguration erfolgt hierfür über “Tools|Folder Options|View|Show hidden files and folders”. Zuverlässiger können die MAC-Zeitstempel (modification, access, creation), insbesondere der interessante Access-Zeitstempel mit Perl-Skripten bzw. Werkzeugen wie afind (Bestandteil des ForensicToolkit von Foundstone/McAfee) ermittelt werden.
  • Systemzeit verifizieren
    Sie sollten die Systemzeit (incl. eingestellter Zeitzone) überprüfen und etwaige Abweichungen notieren (kann für eine Korrelation mit weiteren Logfiles sehr wertvoll sein).
  • Zwischenablage auslesen
    Möglicherweise befinden sich interessante Informationen in der Zwischenablage. Diese kann z.B. durch den Kommandozeilenbefehl pclip.exe (Bestandteil der UnxUtils) ausgegeben werden.
  • Netzwerk-Verbindungen ermitteln
    Mittels der Kommandozeilenbefehle netstat -an, arp -a, nbtstat -c und route print können wertvolle Information über Netzwerkverbindungen gewonnen werden.
  • Spuren des telnet-Klienten
    Die letzten Ziele etwaiger Telnet-Client-Verbindungen werden in der Registry unter HKEY_CURRENT_USER\Software\Microsoft\Telnet bzw. HKEY_USERS\[SID]\Software\Microsoft\Telnet im Schlüssel “LastMachine” gespeichert.
  • Spuren des Internet Explorers
    Die zuletzt im Internet Explorer eingegebenen URLs befinden sich unter HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs bzw. HKEY_USERS\[SID]\Software\Microsoft\Internet Explorer\TypedURLs.

Weitere Systemveränderungen feststellen

Je nach den erlangten Privilegien des Angreifers sind nahezu beliebige Systemveränderungen möglich. Sollte es sich bei dem kompromittierten System um einen Domänen-Controller handeln, kann der Angreifer trivial weitere Systeme verändert haben. Unter Windows 2000 (Actice Directory) kann ein Angreifer ggf. den kompletten Forest kompromittieren (zur Erinnerung: “Domain administrators of any domain in the forest have the potential to take ownership and modify any information in the Configuration container of Active Directory. These changes will be available and replicate to all domain controllers in the forest. Therefore, for any domain that is joined to the forest, you must consider that the domain administrator of that domain is trusted as an equal to any other domain administrator.Planning Distributed Security).

  • Kontrolle der Gruppenzugehörigkeiten und Useraccounts
    Die Überprüfung der Gruppen- und Benutzeraccounts erfolgt bei Windows 2000 Professional Clients über die Microsoft Management Console (MMC) und das Snap-In Lokale Benutzer und Gruppen.
    Ein besonderes Augenmerk sollte dabei den Gruppenmitgliedschaften der Administrator und Backup Operatoren gelten.
    Es sollte ferner sichergestellt werden, dass keine unbekannten Benutzeraccounts hinzugekommen sind, und dass der Guest-Account (falls er nicht wirklich benötigt wird), deaktiviert ist.
    Zur Überprüfung der Gruppen- und Benutzeraccounts in einem Active Directory (Windows 2000 Domänencontroller) wird das Active Directory and Computers Snap-In der MMC hinzugefügt.
    Gemäß dem Lokale Benutzer und Gruppen Snap-In sollten insbesondere die administrativen Gruppenzugehörigkeiten überprüft werden. Ferner sollte sichergestellt werden, dass der Guest-Account (falls nicht wirklich benötigt) deaktiviert ist.
    Alternativ zur MMC kann die Gruppenmitgliedschaft über die Kommandozeilenbefehle net user, net group, net localgroup ausgegeben werden.
    • net localgroup Administrators liefert die Mitglieder der lokalen Gruppe Administrators
    • net group listet die Gruppen der Domäne auf.
      Mittels net group Domänen-Admins werden die Mitglieder der Domänen-Admin-Gruppe ausgegeben.
    • net user $username /dom liefert Informationen über den Benutzer ($username) (die Informationen werden am Domaincontroller (/dom) abgefragt)
  • Überprüfung auf etwaige Freigaben und deren Zugriffsrechte
    Eine Auflistung der Freigaben ist mittels des MMC Snap-Ins Shared Folders möglich. Mittels Eigenschaften sollten die Freigaberechte überprüft werden.
    Die Zugriffsrechte sollten so restriktiv wie möglich sein, d.h. keine Zugriffsrechte der Gestalt “Jeder Vollzugriff” einsetzen.
    Administrative Standardfreigaben (die nicht ohne weiteres entfernt werden können) sind ADMIN$, C$ sowie IPC$ (*1).
  • Alternativer Datenstrom (ADS)
    Dateien eines NTFS Dateisystems bestehen aus mehreren Datenströmen. Ein Datenstrom enthält die Sicherheitsdaten und ein weiterer die eigentlichen Daten. Eine Eigenart von NTFS besteht darin, dass anstelle des eigentlichen Datenstroms auch eine Verknüpfungsinformation zu einer anderen Datei vorhanden sein kann und alternative Datenströme erlaubt sind. Die alternativen Datenströme sind versteckt (so wird bei einer Auflistung mittels dir beispielsweise die Größe von alternativen Datenströmen nicht mit angezeigt).
    Die alternativen Datenströme können mit LADS (List Alternate Data Streams) angezeigt werden; siehe auch http://www.heysoft.de/en/information/ntfs-ads.php.

Weitere Ratschläge

  • Virenscanner
    Virenscanner erkennen bekannte trojanische Pferde. Insofern kann es durchaus ratsam sein, den Virenscanner zu aktualisieren (was sowieso in regelmäßigen Abständen geschehen sollte) und damit auf dem kompletten System alle Dateien zu untersuchen. Sollte auf dem betroffenen System kein Virenscanner installiert sein, sollte abgewogen werden, ob die Spurensuche des Täters oder eine schnelle Überprüfung Vorrang hat. Die Installation weiterer Programme auf dem System überschreibt potentielle Spuren des Angreifers.
  • Passwort-Sniffer
    Einer der bekanntesten Passwortsniffer für Windows NT/2000 nennt sich “fakegina” und wird durch eine Veränderung der Winlogon (dll) eingebunden. Es sollte deshalb der Registry-Schlüssel GinaDLL unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon überprüft werden, ob dort anstelle von msgina etwas anderes eingetragen ist. Eintragungen der Gestalt fakegina.dll würden klar auf die Installation des Passwortsniffers hindeuten.
  • Typsiche Orte abgelegter Dateien
    Oftmals legen Angreifer Dateien in Verzeichnissen ab, von denen sie annehmen, dass dort der Benutzer/Administrator weniger nachschaut. Dazu gehört z.B. C:\RECYCLER.
  • Checksummen wichtiger Dateien
    Von kritischen Dateien, bei denen eine Änderung schnellstmöglich auffallen soll, empfiehlt sich in regelmäßigen Abständen Checksummen zu bilden (diese sollten auf einem extra-System abgelegt werden). In Frage kommen z.B. md5 und sha1 die mit Werkzeugen wie md5sum ausgegeben werden können (Bestandteil der UnxUtils).

Was Tun wenn eine Systemkompromittierung vorliegt?

  • Angehörige der Universität Stuttgart sollten sich mit dem RUS-CERT in Verbindung setzen.
  • Konnten Sie die Systemveränderungen und die Schwachstelle über die der Angreifer eingedrungen ist eindeutig identifizieren, so beheben Sie die Mängel und die Systemveränderungen. Eine Neuinstallation des Systems wird unter allen Umständen angeraten.
  • Sie müssen davon ausgehen, dass der Angreifer möglicherweise sowohl die lokalen Authentifizierungsinformationen (Passwörter) als auch über das Netzwerksegment übertragene Passwörter in Erfahrung gebracht hat. Davon sind ebenfalls Authentifizierungsinformationen wie Cookies und gespeicherte Client-Zertifikate betroffen. Es sollten unbedingt alle Passwörter geändert werden.

Vorbeugung ist besser …

  • Installieren Sie die aktuellen Service Packs und die Security Fixes.
  • Beachten Sie aktuelle Sicherheitshinweise (z.B. mittels des RUS-CERT Newsticker)
  • Installieren Sie Anti-Viren Software und achten Sie darauf, dass Sie die jeweils aktuellsten Virusdatenbanken und Suchmodule der Virenscanner verwenden. Die meisten Virenscanner bieten die Möglichkeit des regelmässigen Online-Updates.

Weitere Hinweise

  1. Die administrativen Standardfreigaben können wie unter Q288164 beschrieben entfernt werden.
  2. Zur Auflistung von versteckten Dateien können sie z.B. in der Kommandozeile dir /ah eingeben …
Revisionen
  • V.1.02 (16.09.2001)
  • V.1.03 (15.07.2002) fixed broken Links, u.a. Link auf eventid.net hinzugefügt
  • V.2.0 (04.12.2002) Überarbeitete Fassung
  • V.2.1 (08.03.2011) fixed broken Links
Hinweis

Die in diesem Text enthaltene Information wurde für die Mitglieder der Universität Stuttgart recherchiert und zusammengestellt. Die Universität Stuttgart übernimmt keinerlei Haftung für die Inhalte. Dieser Artikel darf ausschließlich in unveränderter Form und nur zusammen mit diesem Hinweis sowie dem folgenden Copyrightverweis veröffentlicht werden. Eine Veröffentlichung unter diesen Bedingungen an anderer Stelle ist ausdrücklich gestattet.
Copyright © 2011 RUS-CERT, Universität Stuttgart