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- durch Scannen des Systems (z.B. mittels
nmapeines entfernten Rechners) nach ungewöhnlichen lauschenden TCP/UDP-Ports oder - 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 wielistdllsoder dem Task-Manager Prozessen zugeordnet werden. Nebenfportkann unter Windows XP mittelsnetstat -anodurch den Schalter “-o” die Prozess-ID von Netzverbindungen ausgegeben werden (dieser Schalter fehlt unter Windows 2000) - Überprüfung des Datenverkehrs zu und von dem verdächtigen Host (z.B. an vorgelagerten Routern).
- durch Scannen des Systems (z.B. mittels
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 wielistdlls,handleoder desProzess Explorervon Sysinternals ist es möglich, die Pfade gestarteter Programme auszugeben. Beachten Sie, dass Systemprogramme (wiesvchost) 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 Werkzeugepslistvon Sysinternals oderpulistaus 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\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceExHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServiceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServiceOnceHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceExHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServiceHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServiceOnceHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\policies\Explorer\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\AeDebugHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution OtionsHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\UserinitHKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\LoadHKEY_CLASSES_ROOT\exefile\shell\open\commandHKEY_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 (regdmpaus 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 WerkzeugAutoRunsvon 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 diewin.inierfolgen. -
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 Kommandozeilenbefehlsatausgeben 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) undsrvinfo(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 wiedumpevt.exevon 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 wieafind(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 Kommandozeilenbefehlpclip.exe(Bestandteil der UnxUtils) ausgegeben werden. -
Netzwerk-Verbindungen ermitteln
Mittels der Kommandozeilenbefehlenetstat -an,arp -a,nbtstat -cundroute printkönnen wertvolle Information über Netzwerkverbindungen gewonnen werden. -
Spuren des telnet-Klienten
Die letzten Ziele etwaiger Telnet-Client-Verbindungen werden in der Registry unterHKEY_CURRENT_USER\Software\Microsoft\Telnetbzw.HKEY_USERS\[SID]\Software\Microsoft\Telnetim Schlüssel “LastMachine” gespeichert. -
Spuren des Internet Explorers
Die zuletzt im Internet Explorer eingegebenen URLs befinden sich unterHKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLsbzw.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 Kommandozeilenbefehlenet user,net group,net localgroupausgegeben werden.-
net localgroup Administratorsliefert die Mitglieder der lokalen Gruppe Administrators -
net grouplistet die Gruppen der Domäne auf.
Mittelsnet group Domänen-Adminswerden die Mitglieder der Domänen-Admin-Gruppe ausgegeben. -
net user $username /domliefert 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 mittelsdirbeispielsweise 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üsselGinaDLLunterHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogonüberprüft werden, ob dort anstelle vonmsginaetwas anderes eingetragen ist. Eintragungen der Gestaltfakegina.dllwü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.md5undsha1die mit Werkzeugen wiemd5sumausgegeben 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.
- Institute der Universität Stuttgart sollten das Angebot der Campus-Lizenz für den Sophos Virenscanner wahrnehmen. Weitere Informationen finden Sie unter:
http://www.rus.uni-stuttgart.de/dienste/antivirus/
- Institute der Universität Stuttgart sollten das Angebot der Campus-Lizenz für den Sophos Virenscanner wahrnehmen. Weitere Informationen finden Sie unter:
Weitere Hinweise
- Die administrativen Standardfreigaben können wie unter Q288164 beschrieben entfernt werden.
- Zur Auflistung von versteckten Dateien können sie z.B. in der Kommandozeile
dir /aheingeben …
- V.1.02 (16.09.2001)
- V.1.03 (15.07.2002) fixed broken Links, u.a. Link auf
eventid.nethinzugefügt - V.2.0 (04.12.2002) Überarbeitete Fassung
- V.2.1 (08.03.2011) fixed broken Links
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

