5.2 Microsoft Sysinternals – Erweiterte Werkzeuge zur Fehleranalyse
Microsoft Sysinternals ist eine Sammlung spezialisierter Diagnose-, Analyse- und Verwaltungswerkzeuge. Die Programme ermöglichen einen wesentlich tieferen Einblick in Prozesse, Autostarts, Dateizugriffe, Registryzugriffe, Netzwerkverbindungen, Arbeitsspeicher, Berechtigungen, Active Directory und Systemereignisse als viele integrierte Windows-Werkzeuge.
Sysinternals-Werkzeuge können unter anderem helfen bei:
- nicht nachvollziehbaren Programmabstürzen
- blockierten Dateien und Verzeichnissen
- ungewöhnlich hoher CPU-, RAM- oder Datenträgerauslastung
- fehlgeschlagenen Datei- oder Registryzugriffen
- unbekannten Autostarteinträgen
- verdächtigen Prozessen und Netzwerkverbindungen
- DLL- und Abhängigkeitsproblemen
- Berechtigungsfehlern
- Speicherlecks
- sporadischen Programmabstürzen
- Active-Directory-Problemen
- detaillierter Sicherheitsüberwachung
Sysinternals-Werkzeuge liefern technische Beobachtungen und Messdaten. Ein auffälliger Eintrag ist noch kein Beweis für Malware, einen Defekt oder die eigentliche Ursache einer Störung.
Kennzeichnung der Befehle
| Kennzeichnung | Bedeutung |
|---|---|
[RO] |
Nur lesender beziehungsweise beobachtender Einsatz |
[TEST] |
Führt einen aktiven Test oder eine Aufzeichnung durch |
[CHANGE] |
Verändert Prozesse, Dateien, Konfigurationen oder Systemzustand |
[PRIV] |
Erhöhte Berechtigungen können erforderlich sein |
[RESTART] |
Kann einen Neustart oder eine Unterbrechung verursachen |
[REMOTE] |
Greift auf einen anderen Computer zu |
[SENS] |
Ausgabe kann sensible Informationen enthalten |
[DANGER] |
Hohes Risiko für Ausfall, Datenverlust oder Sicherheitsprobleme |
Die Kennzeichnungen sind Hinweise für den administrativen Einsatz. Ob eine Freigabe erforderlich ist, hängt zusätzlich von der jeweiligen Organisation, dem betroffenen System und den geltenden Sicherheitsvorgaben ab.
1. Was ist Microsoft Sysinternals?
Die Sysinternals-Werkzeuge wurden ursprünglich von Mark Russinovich und Bryce Cogswell entwickelt. Microsoft übernahm Sysinternals im Jahr 2006 und stellt die Werkzeuge weiterhin bereit.
Die Sammlung besteht überwiegend aus kleinen, spezialisierten Programmen. Viele davon müssen nicht klassisch installiert werden und können nach dem Entpacken direkt gestartet werden.
Wichtige Werkzeuggruppen
| Bereich | Beispiele |
|---|---|
| Prozesse | Process Explorer, ProcDump, PsList, PsKill |
| Systemaktivität | Process Monitor, Sysmon, DebugView |
| Autostart | Autoruns, Autorunsc |
| Netzwerk | TCPView, Tcpvcon, PsPing |
| Arbeitsspeicher | RAMMap, VMMap |
| Dateien und Objekte | Handle, ListDLLs, Streams, PendMoves |
| Sicherheit und Rechte | Sigcheck, AccessChk, AccessEnum, ShareEnum |
| Active Directory | AD Explorer, AD Insight, AD Restore |
| Datenträger | Disk2vhd, DiskMon, Disk Usage, NTFSInfo |
| Remotewerkzeuge | PsExec, PsService, PsInfo, PsLoggedOn |
| Kernelanalyse | LiveKd, WinObj |
| Systeminformation | Coreinfo, BgInfo, LogonSessions |
Abgrenzung
Sysinternals ist:
- keine automatische Reparatursuite
- kein Ersatz für ein Antiviren- oder EDR-System
- kein Ersatz für ein zentrales Monitoring
- kein vollständiger Debugger
- kein Beweiswerkzeug, das aus einer einzelnen Auffälligkeit automatisch die Ursache bestimmt
Die Werkzeuge ergänzen Ereignisanzeige, Task-Manager, Ressourcenmonitor, Leistungsüberwachung, PowerShell und spezialisierte Debuggingprogramme.
2. Sysinternals sicher beziehen
Sysinternals-Werkzeuge sollten ausschließlich aus vertrauenswürdigen Microsoft-Quellen bezogen werden.
Offizielle Möglichkeiten
- Einzelwerkzeuge über Microsoft Learn herunterladen
- vollständige Sysinternals Suite herunterladen
- Sysinternals Suite aus dem Microsoft Store installieren
- Werkzeuge über Sysinternals Live ausführen
Sysinternals Suite
Die Suite enthält einen großen Teil der Diagnosewerkzeuge in einem gemeinsamen Archiv. Für bestimmte Plattformen stellt Microsoft unterschiedliche Pakete bereit, darunter x64 und ARM64.
Microsoft Store
Bei der Store-Version werden grafische Programme im Startmenü eingetragen. Die Befehlszeilenprogramme können über App-Ausführungsaliase aufgerufen werden.
Sysinternals Live
Ein Werkzeug kann direkt von Sysinternals Live gestartet werden:
[TEST][SENS] \\live.sysinternals.com\tools\procexp.exe
Beispiel für Process Monitor:
[TEST][SENS] \\live.sysinternals.com\tools\procmon.exe
Dabei müssen Netzwerkzugriff, Proxy, Firewall, Namensauflösung und die Sicherheitsrichtlinien der Organisation berücksichtigt werden.
In kontrollierten Unternehmensumgebungen sollte nicht ungeprüft eine ausführbare Datei direkt aus dem Internet gestartet werden. Besser ist häufig ein freigegebenes, geprüftes und versioniertes internes Werkzeugverzeichnis.
3. Integrität und Signatur prüfen
Vor dem Einsatz sollte geprüft werden:
- stammt die Datei von Microsoft?
- ist die digitale Signatur gültig?
- stimmt die erwartete Architektur?
- wurde die Datei aus einem freigegebenen Speicherort bezogen?
- ist die Werkzeugversion dokumentiert?
- wurde die Datei durch die Sicherheitssoftware geprüft?
Digitale Signatur mit PowerShell kontrollieren
[RO] Get-AuthenticodeSignature ".\procexp.exe" |
Select-Object Status, StatusMessage, SignerCertificate
Dateihash berechnen
[RO] Get-FileHash ".\procexp.exe" -Algorithm SHA256
Der Hash kann zur internen Dokumentation und zum Vergleich identischer Werkzeugstände verwendet werden. Ein Hash beweist allein jedoch nicht, dass eine Datei vertrauenswürdig ist.
Sysinternals Sigcheck verwenden
[RO] sigcheck.exe -a -h -i ".\procexp.exe"
Typische Informationen können sein:
- Dateiversion
- Herausgeber
- digitale Signatur
- Zertifikatskette
- Zeitstempel
- kryptografischer Hash
- Dateibeschreibung
- Produktname
Eine gültige Signatur bestätigt die signierte Herkunft und Dateiintegrität innerhalb der Signaturprüfung. Sie beweist nicht automatisch, dass jede ausgeführte Funktion im konkreten Einsatz sicher oder erwünscht ist.
4. Allgemeine Einsatzregeln
Vor dem Start eines Sysinternals-Werkzeugs sollte feststehen:
- Welcher Fehler wird untersucht?
- Welcher Computer ist betroffen?
- Welcher Benutzerkontext ist betroffen?
- Wann tritt der Fehler auf?
- Welches Werkzeug kann die benötigte Beobachtung liefern?
- Welche Daten können bei der Aufzeichnung entstehen?
- Ist eine erhöhte Ausführung erforderlich?
- Wie groß kann die Protokolldatei werden?
- Wo wird sie geschützt gespeichert?
- Wann wird die Aufzeichnung beendet?
- Wie werden sensible Daten redigiert?
- Welche Änderung muss anschließend zurückgenommen werden?
Grundregeln
- zuerst beobachten, dann verändern
- Filter vor längeren Aufzeichnungen vorbereiten
- Zeitpunkt und Reproduktionsschritte dokumentieren
- keine Prozesse oder Handles auf Verdacht beenden
- keine unbekannten Autostarts ungeprüft löschen
- keine Diagnosedateien öffentlich hochladen
- keine Remoteausführung ohne Freigabe
- nur den erforderlichen Berechtigungskontext verwenden
- Werkzeugversion und Befehlszeile dokumentieren
- nach jeder Änderung die betroffene Funktion erneut prüfen
5. Process Explorer – Prozesse und Abhängigkeiten analysieren
Process Explorer zeigt Prozesse hierarchisch an und liefert detaillierte Informationen zu:
- Prozessname und PID
- übergeordnetem Prozess
- Benutzerkonto
- CPU- und Speicherauslastung
- Handles
- geladenen DLLs
- Speicherabbildern
- Threads
- TCP/IP-Aktivität
- Dateipfad
- Befehlszeile
- digitaler Signatur
- Integritätsstufe
- Sicherheitskontext
- Prozessstartzeit
Starten
[RO][SENS] procexp.exe
Für vollständige Informationen über Systemprozesse können erhöhte Rechte erforderlich sein:
[RO][PRIV][SENS] procexp.exe
Wichtige Funktionen
| Funktion | Verwendung |
|---|---|
| Process Tree | Eltern-Kind-Beziehungen von Prozessen erkennen |
| Lower Pane – Handles | Geöffnete Dateien, Registryschlüssel und andere Objekte untersuchen |
| Lower Pane – DLLs | Geladene DLLs und speicherabgebildete Dateien anzeigen |
| Find Handle or DLL | Prozess zu einer Datei, einem Objekt oder einer DLL finden |
| Properties | Threads, Netzwerk, Sicherheit, Umgebung und Startparameter untersuchen |
| Verify Image Signatures | Signaturen ausführbarer Dateien prüfen |
| Save | Prozessübersicht für die Dokumentation speichern |
| Create Dump | Speicherabbild eines Prozesses erzeugen |
| Kill Process Tree | Prozess und untergeordnete Prozesse beenden |
Typische Anwendungsfälle
- Welcher Prozess hält eine Datei geöffnet?
- Welche Anwendung hat einen Unterprozess gestartet?
- Unter welchem Konto läuft ein Prozess?
- Welche DLL wurde aus einem unerwarteten Pfad geladen?
- Welcher Thread erzeugt hohe CPU-Last?
- Stimmen Dateiname, Pfad und Herausgeber zusammen?
- Ist ein Prozess mehrfach vorhanden?
- Läuft ein Prozess mit erhöhten Rechten?
Prozessfarben
Process Explorer kann unterschiedliche Prozesstypen farblich kennzeichnen. Die genaue Bedeutung hängt von der konfigurierten Farbauswahl ab und sollte über die Programmeinstellungen kontrolliert werden.
Eine Farbe oder ein nicht verifizierter Signaturstatus ist kein automatischer Malware-Nachweis.
6. Blockierte Dateien mit Process Explorer finden
Wenn eine Datei nicht gelöscht, verschoben oder ersetzt werden kann, kann ein geöffneter Handle dafür verantwortlich sein.
Vorgehensweise
- Process Explorer starten.
-
Findöffnen. -
Find Handle or DLLauswählen. - eindeutigen Teil des Datei- oder Verzeichnisnamens eingeben.
- Treffer und zugehörigen Prozess prüfen.
- Anwendung möglichst regulär schließen.
- Dateioperation erneut testen.
Nicht als erste Maßnahme verwenden
- Prozess sofort beenden
- Handle direkt schließen
- Dienst ungeprüft stoppen
- Systemprozess beenden
- Datei mit Gewalt löschen
Das direkte Schließen eines Handles kann den Zustand der Anwendung beschädigen, Datenverlust verursachen oder zu einem späteren Absturz führen.
Die sichere Lösung besteht normalerweise darin, die verursachende Anwendung oder den zugehörigen Dienst kontrolliert zu beenden.
7. Handle – offene Dateien und Objekte per Befehlszeile
Handle zeigt offene Handles von Prozessen an. Damit kann unter anderem ermittelt werden, welcher Prozess eine bestimmte Datei oder ein Verzeichnis verwendet.
Nach einem Dateinamen suchen
[RO][PRIV][SENS] handle.exe "<DATEINAME>"
Beispiel
[RO][PRIV][SENS] handle.exe "datenbank.db"
Handles eines bestimmten Prozesses anzeigen
[RO][PRIV][SENS] handle.exe -p <PID>
Ausgabe ohne Banner
[RO][PRIV][SENS] handle.exe -nobanner "<SUCHBEGRIFF>"
Handle schließen
[CHANGE][PRIV][DANGER] handle.exe -c <HANDLE-ID> -p <PID>
Das erzwungene Schließen eines Handles kann Daten beschädigen oder einen Prozess destabilisieren. Diese Funktion darf nur verwendet werden, wenn Objekt, Prozess, Abhängigkeiten und Auswirkungen eindeutig bekannt sind.
8. Process Monitor – Datei-, Registry- und Prozessaktivität erfassen
Process Monitor, kurz Procmon, zeichnet in Echtzeit unter anderem folgende Aktivitäten auf:
- Dateisystemzugriffe
- Registryzugriffe
- Prozessstarts und Prozessbeendigungen
- Threadaktivitäten
- Laden von DLLs und Images
- Profilierungsereignisse
- Prozess-, Benutzer- und Sitzungsinformationen
- zugehörige Aufrufstapel
Starten
[TEST][PRIV][SENS] procmon.exe
Process Monitor beginnt normalerweise unmittelbar mit der Aufzeichnung. Deshalb sollte die Aufzeichnung zunächst angehalten und gezielt vorbereitet werden.
Empfohlene Grundreihenfolge
- Process Monitor starten.
- Aufzeichnung anhalten.
- bestehende Ereignisse leeren.
- passende Filter festlegen.
- Aufzeichnung starten.
- Fehler möglichst genau reproduzieren.
- Aufzeichnung sofort wieder anhalten.
- relevante Ereignisse untersuchen.
- Aufzeichnung im nativen PML-Format sichern.
- sensible Inhalte vor einer Weitergabe prüfen.
Typische Filter
| Feld | Bedingung | Beispiel |
|---|---|---|
| Process Name | is | anwendung.exe |
| PID | is | konkrete Prozess-ID |
| Path | contains | Verzeichnis oder Registrypfad |
| Operation | is | CreateFile |
| Operation | is | RegOpenKey |
| Result | is | ACCESS DENIED |
| Result | is | NAME NOT FOUND |
| User | is | betroffenes Benutzerkonto |
| Duration | greater than | auffällig langsame Operationen |
Process Monitor zeichnet sehr viele normale und erwartete Vorgänge auf. Einzelne Meldungen wie
NAME NOT FOUND,PATH NOT FOUNDoderACCESS DENIEDsind nicht automatisch Fehlerursachen.
9. Process-Monitor-Ergebnisse richtig interpretieren
Häufige Ergebnisse
| Ergebnis | Grundbedeutung |
|---|---|
SUCCESS |
Operation wurde erfolgreich abgeschlossen |
NAME NOT FOUND |
Angefragter Name wurde nicht gefunden |
PATH NOT FOUND |
Ein Bestandteil des Pfades wurde nicht gefunden |
ACCESS DENIED |
Zugriff wurde im verwendeten Kontext verweigert |
SHARING VIOLATION |
Zugriff kollidiert mit einer bestehenden Freigabe oder geöffneten Datei |
BUFFER OVERFLOW |
Puffer war für die erste Abfrage zu klein; kann Teil eines normalen Abfragemusters sein |
NO MORE FILES |
Verzeichnisabfrage hat keine weiteren Ergebnisse |
REPARSE |
Verarbeitung über einen Reparse Point |
END OF FILE |
Dateiende erreicht |
FILE LOCKED WITH ONLY READERS |
Sperrzustand der Datei |
Bewertungsfragen
- Gehört das Ereignis zum betroffenen Prozess?
- Liegt es unmittelbar vor dem sichtbaren Fehler?
- Wird nach einem fehlgeschlagenen Zugriff ein anderer Pfad erfolgreich verwendet?
- Wiederholt sich das Ereignis ungewöhnlich häufig?
- Ist der Pfad laut Anwendung tatsächlich erforderlich?
- Welcher Benutzer führt den Zugriff aus?
- Welche Berechtigungen gelten für das Objekt?
- Handelt es sich um eine optionale Suche der Anwendung?
- Gibt es einen zugehörigen Stack oder Folgefehler?
- Tritt das Verhalten auf einem funktionierenden Vergleichssystem ebenfalls auf?
Wichtiger Grundsatz
Viele Programme suchen nacheinander an mehreren Stellen nach Dateien oder Registrywerten. Mehrere fehlgeschlagene Suchvorgänge können deshalb völlig normal sein, wenn anschließend ein erfolgreicher Treffer erfolgt.
10. Process Monitor per Befehlszeile einsetzen
Process Monitor unterstützt Befehlszeilenoptionen für reproduzierbare Aufzeichnungen.
Lizenzdialog vorab akzeptieren
[CHANGE] procmon.exe /AcceptEula
Aufzeichnung mit Sicherungsdatei starten
[TEST][PRIV][SENS] procmon.exe /AcceptEula /Quiet /BackingFile "C:\Diagnose\trace.pml"
Laufende Process-Monitor-Instanz beenden
[CHANGE][PRIV] procmon.exe /Terminate
Gespeicherte PML-Datei als CSV exportieren
[RO][SENS] procmon.exe /OpenLog "C:\Diagnose\trace.pml" /SaveAs "C:\Diagnose\trace.csv"
Bootaufzeichnung
Process Monitor besitzt eine Boot-Logging-Funktion, mit der Aktivitäten während des Systemstarts erfasst werden können. Diese muss über die Programmoberfläche oder passend geplante Optionen kontrolliert aktiviert und anschließend wieder beendet werden.
Bootaufzeichnungen können sehr groß werden und sensible Systeminformationen enthalten. Sie dürfen nicht unbegrenzt aktiviert bleiben.
11. Autoruns – Autostarts vollständig untersuchen
Autoruns zeigt deutlich mehr Autostartorte als die einfache Autostartansicht des Task-Managers.
Dazu können gehören:
- Anmeldeautostarts
- Dienste
- Treiber
- geplante Aufgaben
- Explorer-Erweiterungen
- Winlogon-Komponenten
- Boot-Execute-Einträge
- Codecs
- AppInit-DLLs
- Image Hijacks
- Office-Erweiterungen
- Winsock-Komponenten
- bekannte Registry-Autostartorte
- Startordner verschiedener Benutzer
Starten
[RO][PRIV][SENS] autoruns.exe
Wichtige Funktionen
| Funktion | Zweck |
|---|---|
| Hide Microsoft Entries | Microsoft-Einträge ausblenden |
| Hide Windows Entries | Windows-Einträge ausblenden |
| Verify Code Signatures | digitale Signaturen prüfen |
| Check VirusTotal | Hash beziehungsweise Datei über VirusTotal prüfen |
| Jump to Entry | Registry- oder Dateisystemeintrag öffnen |
| Jump to Image | zugehörige Datei öffnen |
| Process Explorer | laufenden Prozess in Process Explorer öffnen |
| Compare | aktuellen Zustand mit gespeicherter Ausgabe vergleichen |
| User | Autostarts anderer Benutzer auswählen |
Sicheres Deaktivieren
Ein Kontrollkästchen kann deaktiviert werden, um einen Autostart vorübergehend abzuschalten. Das ist in der Regel besser reversibel als das sofortige Löschen des Eintrags.
Eintrag deaktivieren
→ System oder Anwendung kontrolliert testen
→ Ergebnis dokumentieren
→ Eintrag bei ausbleibender Wirkung wieder aktivieren
Ein unbekannter oder nicht signierter Autostarteintrag ist nicht automatisch schädlich. Vor einer Änderung müssen Pfad, Herausgeber, Signatur, Zweck, Abhängigkeiten und betroffene Anwendung geprüft werden.
12. Autorunsc – Autostarts per Befehlszeile erfassen
Autorunsc ist die Befehlszeilenversion von Autoruns und eignet sich für dokumentierbare Bestandsaufnahmen.
Grundlegende Ausgabe
[RO][PRIV][SENS] autorunsc.exe -a * -c -h -s
Dabei können abhängig von der Werkzeugversion und den gewählten Optionen unter anderem Autostartkategorie, Pfad, Signatur und Hash ausgegeben werden.
CSV-Datei erzeugen
[RO][PRIV][SENS] autorunsc.exe -a * -c -h -s > "C:\Diagnose\autoruns.csv"
Nur Microsoft-Einträge ausblenden
[RO][PRIV][SENS] autorunsc.exe -a * -m -c -h -s
Vor einer produktiven Erfassung prüfen
[RO] autorunsc.exe /?
Die verfügbaren Parameter können sich mit Werkzeugversionen verändern. Vor automatisierter Verwendung muss die Hilfe der tatsächlich eingesetzten Version geprüft werden.
13. VirusTotal-Integration datenschutzgerecht verwenden
Mehrere Sysinternals-Werkzeuge können Hashwerte oder Dateien mit VirusTotal abgleichen.
Dabei muss unterschieden werden zwischen:
- Übermittlung eines Hashwertes
- Abfrage eines bereits bekannten Ergebnisses
- Hochladen einer unbekannten Datei
- automatischer Übermittlung unbekannter Dateien
Mögliche Risiken
- interne Dateinamen werden offengelegt
- proprietäre Anwendungen werden hochgeladen
- Konfigurationsdateien enthalten Geschäftsgeheimnisse
- Dateien enthalten personenbezogene Daten
- Skripte enthalten Servernamen oder Zugangsdaten
- Upload verstößt gegen Unternehmensrichtlinien
Die Übermittlung einer internen Datei an einen externen Analysedienst darf nicht automatisch erfolgen. Vorher müssen Datenschutz, Geheimhaltung, Eigentumsrechte und Sicherheitsvorgaben geprüft werden.
Ein VirusTotal-Ergebnis ist außerdem kein alleiniger Beweis:
- einzelne Erkennung kann ein Fehlalarm sein
- keine Erkennung schließt Schadsoftware nicht aus
- Bewertung kann sich später ändern
- signierte Dateien können trotzdem missbraucht werden
14. TCPView – Netzwerkverbindungen Prozessen zuordnen
TCPView zeigt aktive TCP- und UDP-Endpunkte mit den zugehörigen Prozessen an.
Starten
[RO][PRIV][SENS] tcpview.exe
Typische Informationen
- Prozessname
- PID
- Protokoll
- lokale Adresse
- lokaler Port
- entfernte Adresse
- Remoteport
- TCP-Zustand
- gesendete und empfangene Daten
- Erstellungszeitpunkt einer Verbindung
Typische Anwendungsfälle
- Welcher Prozess verbindet sich mit einem Server?
- Welcher Prozess lauscht auf einem Port?
- Warum existieren unerwartet viele Verbindungen?
- Welche Remoteadresse verwendet eine Anwendung?
- Ist der erwartete Dienstport geöffnet?
- Welche Verbindung wird beim Start einer Anwendung aufgebaut?
Befehlszeilenversion
[RO][PRIV][SENS] tcpvcon.exe -a -c
Vor der Verwendung sollte die lokale Hilfe geprüft werden:
[RO] tcpvcon.exe /?
Eine Verbindung zu einer unbekannten IP-Adresse ist kein automatischer Sicherheitsvorfall. Content-Delivery-Netzwerke, Cloudplattformen, Telemetrie, Updates, Proxys und gemeinsam genutzte Infrastrukturen können die Zuordnung erschweren.
15. RAMMap – physischen Arbeitsspeicher analysieren
RAMMap zeigt, wie Windows den physischen Arbeitsspeicher verwendet.
Starten
[RO][PRIV][SENS] rammap.exe
Wichtige Ansichten
| Ansicht | Inhalt |
|---|---|
| Use Counts | Speicher nach Verwendungsart |
| Processes | Speicherzuordnung nach Prozessen |
| Priority Summary | Speicher nach Prioritätsklassen |
| Physical Pages | einzelne physische Speicherseiten |
| Physical Ranges | physische Speicherbereiche |
| File Summary | im Speicher gehaltene Dateidaten |
| File Details | einzelne Dateiseiten |
| Page Table | Speicher für Seitentabellen |
Wichtige Speicherbegriffe
| Begriff | Bedeutung |
|---|---|
| Active | aktuell verwendete Speicherseiten |
| Standby | zwischengespeicherte Seiten, die bei Bedarf wiederverwendet werden können |
| Modified | veränderte Seiten, die vor Wiederverwendung geschrieben werden müssen |
| Free | unmittelbar freier Speicher |
| Zeroed | gelöschte und zur Wiederverwendung vorbereitete Seiten |
| Driver Locked | durch Treiber gesperrte Speicherseiten |
| Metafile | Dateisystem-Metadaten im Cache |
Bewertungsregeln
- Wenig vollständig freier RAM ist nicht automatisch problematisch.
- Windows nutzt freien Speicher gezielt als Cache.
- Ein großer Standby-Bereich kann normal sein.
- Hohe Commit-Nutzung muss zusammen mit Commit-Limit und Auslagerungsdatei bewertet werden.
- Ein ungewöhnlich großer nicht ausgelagerter Pool kann auf einen Treiberfehler hindeuten.
- Ein einzelner Snapshot beweist noch kein Speicherleck.
RAMMap enthält Funktionen zum Leeren bestimmter Speicherlisten. Diese verändern den Speicherzustand und können die Leistung vorübergehend verschlechtern.
Speicherlisten dürfen nicht routinemäßig geleert werden, nur um eine niedrigere RAM-Anzeige zu erzeugen. Dadurch wird die Ursache eines Speicherproblems nicht behoben.
16. VMMap – virtuellen Speicher eines Prozesses untersuchen
VMMap analysiert den virtuellen und physischen Speicher eines einzelnen Prozesses.
Starten
[RO][PRIV][SENS] vmmap.exe
Anschließend wird ein laufender Prozess ausgewählt oder eine Anwendung durch VMMap gestartet.
Untersuchte Speicherarten
- Image
- Heap
- Stack
- Private Data
- Shareable
- Mapped File
- Page Table
- Managed Heap
- reservierter Adressraum
- zugesicherter Speicher
- Working Set
Typische Anwendungsfälle
- wächst der private Speicher fortlaufend?
- welcher Heap wächst?
- besitzt der Prozess ungewöhnlich viele Speicherabbildungen?
- wird viel Adressraum nur reserviert?
- wie unterscheiden sich zwei Zustände desselben Prozesses?
- entsteht der Speicherverbrauch im nativen oder verwalteten Bereich?
Sinnvolle Vorgehensweise bei vermutetem Speicherleck
- Anwendung in einem definierten Ausgangszustand starten.
- ersten VMMap-Snapshot erfassen.
- reproduzierbare Aktion mehrfach ausführen.
- zweiten Snapshot erfassen.
- Snapshots vergleichen.
- wachsende Speichertypen identifizieren.
- Ergebnis mit Prozessmetriken, Dumps und Anwendungsprotokollen abgleichen.
Ein wachsender Working Set allein beweist kein Speicherleck. Caches und noch erreichbare, später freigegebene Daten können ebenfalls wachsen.
17. ProcDump – Speicherabbilder bei bestimmten Ereignissen erzeugen
ProcDump kann Speicherabbilder eines Prozesses erzeugen, wenn festgelegte Bedingungen eintreten.
Mögliche Auslöser sind unter anderem:
- unbehandelte Ausnahme
- Prozessabsturz
- hohe CPU-Auslastung
- niedrige CPU-Auslastung
- nicht reagierendes Fenster
- bestimmter Leistungsindikator
- manuell angeforderter Dump
- Prozessstart
Hilfe der installierten Version anzeigen
[RO] procdump.exe -?
Manuelles vollständiges Speicherabbild eines Prozesses
[TEST][PRIV][SENS] procdump.exe -ma <PID> "C:\Diagnose"
Auf Prozessnamen warten und vollständigen Dump bei Ausnahme erzeugen
[TEST][PRIV][SENS] procdump.exe -ma -e -w "<PROZESSNAME.exe>" "C:\Diagnose"
Dump bei nicht reagierendem Fenster
[TEST][PRIV][SENS] procdump.exe -ma -h "<PROZESSNAME.exe>" "C:\Diagnose"
Überwachung beenden
Die betreffende ProcDump-Instanz muss kontrolliert beendet werden, wenn die Diagnose abgeschlossen ist.
Wichtige Planungsfragen
- Wie viele Dumps dürfen entstehen?
- Wie groß kann jeder Dump werden?
- Ist ausreichend Speicherplatz vorhanden?
- Tritt der Fehler in einem sensiblen Prozess auf?
- Wer darf die Dumps lesen?
- Wie lange werden sie gespeichert?
- Welcher Debugger wird zur Analyse verwendet?
Vollständige Prozessabbilder können Passwörter, Tokens, Schlüssel, Dokumentinhalte, Datenbanksätze und andere Geheimnisse enthalten. Sie müssen wie hochsensible Daten geschützt werden.
18. Sysmon – sicherheitsrelevante Systemereignisse protokollieren
System Monitor, kurz Sysmon, ist ein Windows-Systemdienst mit Gerätetreiber. Nach der Installation protokolliert er ausgewählte Systemaktivitäten in das Windows-Ereignisprotokoll.
Sysmon kann abhängig von Version und Konfiguration unter anderem erfassen:
- Prozessstarts
- Prozessbeendigungen
- Netzwerkverbindungen
- Erstellung von Dateien
- Änderung von Dateierstellungszeiten
- Laden von Treibern
- Laden von Images und DLLs
- Zugriffe auf Prozesse
- Registryereignisse
- Named Pipes
- DNS-Abfragen
- WMI-Aktivitäten
- Zwischenablageänderungen
- Dateilöschungen
- ausführbare Dateien in bestimmten Ereignissen
- Änderungen an Sysmon selbst
Wichtiger Speicherort
Anwendungs- und Dienstprotokolle
→ Microsoft
→ Windows
→ Sysmon
→ Operational
Sysmon mit Konfiguration installieren
[CHANGE][PRIV] sysmon.exe -accepteula -i "C:\Konfiguration\sysmon-config.xml"
Konfiguration aktualisieren
[CHANGE][PRIV] sysmon.exe -c "C:\Konfiguration\sysmon-config.xml"
Aktuelle Konfiguration anzeigen
[RO][PRIV][SENS] sysmon.exe -c
Sysmon deinstallieren
[CHANGE][PRIV] sysmon.exe -u
Sysmon besitzt keine automatische Alarmierungs- oder Bewertungslogik. Die Ereignisse müssen durch geeignete Regeln, ein SIEM, ein EDR-System oder eine kontrollierte manuelle Analyse ausgewertet werden.
19. Sysmon-Konfiguration fachgerecht planen
Eine Sysmon-Konfiguration bestimmt, welche Ereignisse einbezogen oder ausgeschlossen werden.
Ziele einer guten Konfiguration
- relevante Sicherheitsereignisse erfassen
- unnötige Ereignismengen begrenzen
- wichtige Systemprogramme nicht pauschal ausblenden
- Regeln dokumentieren
- Konfigurationsänderungen versionieren
- Speicherbedarf und Ereignisrate überwachen
- Auswertung durch SIEM oder Monitoring berücksichtigen
Risiken einer ungeprüften Konfiguration
- zu viele Ereignisse überlasten Sammlung und Auswertung
- zu breite Ausschlüsse erzeugen blinde Flecken
- sensible Befehlszeilen werden zentral gespeichert
- DNS-Abfragen offenbaren Benutzeraktivitäten
- Dateipfade enthalten personenbezogene Daten
- Regeländerungen beeinflussen Erkennungsmechanismen
- unterschiedliche Systeme benötigen unterschiedliche Filter
Beispiel einer minimalen XML-Grundstruktur
<Sysmon schemaversion="<SCHEMA-VERSION>">
<EventFiltering>
<ProcessCreate onmatch="include">
</ProcessCreate>
</EventFiltering>
</Sysmon>
Die erforderliche Schemaversion und die unterstützten Ereignisse müssen mit der tatsächlich verwendeten Sysmon-Version geprüft werden.
Konfigurationsschema anzeigen
[RO] sysmon.exe -s
Eine fremde Sysmon-Konfiguration sollte nicht ungeprüft in einer produktiven Umgebung übernommen werden. Sie muss an Systeme, Anwendungen, Datenschutz, Ereignissammlung und Erkennungsziele angepasst werden.
20. Sigcheck – Signaturen, Versionen und Hashwerte untersuchen
Sigcheck zeigt Datei- und Signaturinformationen an.
Einzelne Datei untersuchen
[RO][SENS] sigcheck.exe -a -h -i "<DATEI>"
Verzeichnis rekursiv untersuchen
[RO][SENS] sigcheck.exe -s -a -h "<VERZEICHNIS>"
Nicht signierte Dateien suchen
[RO][SENS] sigcheck.exe -u -e "<VERZEICHNIS>"
CSV-Ausgabe
[RO][SENS] sigcheck.exe -c -h "<DATEI>"
Typische Prüfungen
- Herausgeber stimmt mit erwarteter Software überein
- Signaturstatus ist gültig
- Dateipfad ist plausibel
- Produkt- und Dateiversion passen zusammen
- Hash stimmt mit einer bekannten Referenz überein
- Datei wurde nicht aus einem temporären oder Benutzerverzeichnis nachgeladen
Auch legitime Programme können unsignierte Komponenten besitzen. Umgekehrt kann eine gültig signierte Datei für unerwünschte Zwecke missbraucht oder mit einem kompromittierten Zertifikat signiert worden sein.
21. ListDLLs – geladene DLLs anzeigen
ListDLLs zeigt geladene DLLs und deren Pfade an.
Alle geladenen DLLs anzeigen
[RO][PRIV][SENS] listdlls.exe
DLLs eines bestimmten Prozesses
[RO][PRIV][SENS] listdlls.exe <PID>
Alternativ kann nach einem Prozessnamen gefiltert werden:
[RO][PRIV][SENS] listdlls.exe "<PROZESSNAME>"
Nach einer bestimmten DLL suchen
[RO][PRIV][SENS] listdlls.exe -d "<DLL-NAME>"
Typische Auffälligkeiten
- DLL aus einem unerwarteten Benutzerverzeichnis
- mehrere Versionen derselben Komponente
- DLL aus einem temporären Verzeichnis
- fehlende oder ungültige Signatur
- Prozess lädt nicht die erwartete Bibliothek
- unerwartete Drittanbieter-Erweiterung
Der Dateiname allein ist nicht ausreichend. Pfad, Version, Signatur, Hash, Ladegrund und Anwendungskontext müssen gemeinsam bewertet werden.
22. Strings – lesbare Zeichenfolgen in Dateien suchen
Strings extrahiert lesbare ANSI- und Unicode-Zeichenfolgen aus Binärdateien.
Datei untersuchen
[RO][SENS] strings.exe "<DATEI>"
Mindestlänge festlegen
[RO][SENS] strings.exe -n 8 "<DATEI>"
Ausgabe nach einem Begriff filtern
[RO][SENS] strings.exe -n 8 "<DATEI>" | findstr /i "<SUCHBEGRIFF>"
Mögliche Anwendungsfälle
- eingebettete URLs finden
- Fehlermeldungen erkennen
- Dateipfade finden
- Produkt- oder Debuginformationen erkennen
- verdächtige Befehlszeilen entdecken
- Hinweise auf eingebettete Konfigurationen erhalten
Einschränkungen
- komprimierte oder verschlüsselte Inhalte werden nicht automatisch verständlich
- gefundene Zeichenfolge muss nicht ausgeführt oder verwendet werden
- zufällige Bytefolgen können wie Text aussehen
- Ausgabe kann Zugangsdaten oder andere Geheimnisse enthalten
Strings ist ein Hinweiswerkzeug und kein vollständiges Verfahren zur Malwareanalyse oder zum Reverse Engineering.
23. Streams – alternative NTFS-Datenströme untersuchen
NTFS-Dateien können neben dem normalen Dateiinhalt alternative Datenströme besitzen. Windows verwendet solche Datenströme unter anderem für Herkunftsinformationen heruntergeladener Dateien.
Datenströme anzeigen
[RO][SENS] streams.exe "<DATEI>"
Verzeichnis rekursiv untersuchen
[RO][SENS] streams.exe -s "<VERZEICHNIS>"
Alternative Datenströme löschen
[CHANGE][DANGER] streams.exe -d "<DATEI-ODER-VERZEICHNIS>"
Das pauschale Löschen alternativer Datenströme kann Sicherheitskennzeichnungen wie Herkunftsinformationen entfernen und dadurch Schutzfunktionen beeinflussen. Vorher müssen Inhalt, Zweck und Auswirkungen geprüft werden.
PowerShell kann Datenströme ebenfalls anzeigen:
[RO][SENS] Get-Item "<DATEI>" -Stream *
24. AccessChk – effektive Zugriffsrechte untersuchen
AccessChk zeigt Zugriffsrechte auf verschiedene Windows-Objekte an.
Dazu gehören unter anderem:
- Dateien
- Verzeichnisse
- Registryschlüssel
- Dienste
- Prozesse
- Kernelobjekte
- Freigaben
- benannte Pipes
Hilfe anzeigen
[RO] accesschk.exe /?
Verzeichnisrechte untersuchen
[RO][PRIV][SENS] accesschk.exe -d "<VERZEICHNIS>"
Rechte eines bestimmten Kontos prüfen
[RO][PRIV][SENS] accesschk.exe -d "<BENUTZER-ODER-GRUPPE>" "<VERZEICHNIS>"
Dienstrechte untersuchen
[RO][PRIV][SENS] accesschk.exe -c "<DIENSTNAME>"
Typische Anwendungsfälle
- besitzt ein Benutzer tatsächlich Schreibzugriff?
- darf eine Gruppe einen Dienst konfigurieren?
- existieren übermäßig weitreichende Rechte?
- unterscheidet sich der Benutzerkontext vom Administratorkontext?
- ist ein sensibles Verzeichnis für normale Benutzer beschreibbar?
AccessChk-Ausgaben müssen zusammen mit Vererbung, Gruppenmitgliedschaften, Integritätsstufe, Privilegien, Freigaberechten und dem tatsächlichen Benutzerkontext bewertet werden.
25. AccessEnum und ShareEnum
AccessEnum
AccessEnum stellt Berechtigungen für Dateien, Verzeichnisse und Registrybereiche übersichtlich dar. Es kann helfen, Abweichungen innerhalb größerer Strukturen zu finden.
[RO][PRIV][SENS] accessenum.exe
Typische Verwendung:
- Verzeichnis oder Registrybereich auswählen
- Berechtigungen erfassen
- auffällige Abweichungen untersuchen
- Zustand speichern
- späteren Zustand vergleichen
ShareEnum
ShareEnum untersucht SMB-Freigaben und deren Sicherheitseinstellungen innerhalb erreichbarer Netzwerkbereiche.
[RO][PRIV][REMOTE][SENS] shareenum.exe
Zu prüfen sind unter anderem
- unerwartete Freigaben
- zu breite Freigabeberechtigungen
- administrative Freigaben
- erreichbare Systeme
- Kombination aus Freigabe- und NTFS-Rechten
- nicht mehr benötigte Freigaben
ShareEnum darf nur in ausdrücklich freigegebenen Netzwerkbereichen verwendet werden. Eine technische Erreichbarkeit ist keine Berechtigung zum Scannen.
26. PsTools – lokale und entfernte Administration
PsTools ist eine Sammlung von Befehlszeilenwerkzeugen für lokale und entfernte Windows-Systeme.
Wichtige Werkzeuge
| Werkzeug | Hauptfunktion |
|---|---|
| PsExec | Prozess lokal oder remote starten |
| PsInfo | Systeminformationen abrufen |
| PsList | Prozesse und Threads anzeigen |
| PsKill | Prozesse beenden |
| PsService | Dienste anzeigen oder steuern |
| PsLoggedOn | angemeldete Benutzer untersuchen |
| PsLogList | Ereignisprotokolle ausgeben |
| PsFile | remote geöffnete Dateien anzeigen |
| PsPing | Netzwerklatenz und Durchsatz testen |
| PsShutdown | Computer herunterfahren oder neu starten |
| PsSuspend | Prozesse anhalten oder fortsetzen |
| PsGetSid | SID eines Computers oder Kontos anzeigen |
Systeminformationen lokal abrufen
[RO][SENS] psinfo.exe
Systeminformationen remote abrufen
[RO][REMOTE][SENS] psinfo.exe \\<COMPUTER>
Prozesse remote anzeigen
[RO][REMOTE][SENS] pslist.exe \\<COMPUTER>
Angemeldete Benutzer untersuchen
[RO][REMOTE][SENS] psloggedon.exe \\<COMPUTER>
PsTools können administrative Remoteaktionen ausführen. Authentifizierung, Firewall, administrative Freigaben, Sicherheitsrichtlinien, Protokollierung und Auswirkungen auf das Zielsystem müssen vorher geklärt werden.
27. PsExec sicher einsetzen
PsExec kann Prozesse lokal oder auf entfernten Windows-Systemen starten.
Remote-Befehlszeile starten
[CHANGE][PRIV][REMOTE][SENS] psexec.exe \\<COMPUTER> cmd.exe
Befehl remote ausführen
[CHANGE][PRIV][REMOTE][SENS] psexec.exe \\<COMPUTER> ipconfig /all
Prozess als lokales Systemkonto starten
[CHANGE][PRIV][DANGER] psexec.exe -s -i cmd.exe
Der letzte Befehl erzeugt einen besonders privilegierten Kontext und darf nur für klar begründete administrative Diagnosen verwendet werden.
Sicherheitsregeln
- keine Passwörter offen in der Befehlszeile übergeben
- nur eindeutig bestimmten Zielcomputer verwenden
- aktiven Benutzer und Auswirkungen prüfen
- keine interaktive Sitzung unbeaufsichtigt lassen
- erzeugte Dienste und Prozesse kontrollieren
- Remotezugriff protokollieren
- keine dauerhafte Umgehung regulärer Verwaltungswege
- Befehle zunächst lokal oder in einer Testumgebung prüfen
Anmeldeinformationen in einer Befehlszeile können in Prozesslisten, Protokollen, Shellverläufen oder Diagnoseaufzeichnungen sichtbar werden.
28. PsPing – Netzwerkverbindungen und Leistung testen
PsPing erweitert einfache Ping-Tests um TCP-Verbindungs-, Latenz- und Durchsatzmessungen.
ICMP-Test
[TEST][SENS] psping.exe <ZIEL>
TCP-Port testen
[TEST][SENS] psping.exe <ZIEL>:<PORT>
Beispiel:
[TEST][SENS] psping.exe server.example:443
Längere Messung
[TEST][SENS] psping.exe -n 20 server.example:443
Für Bandbreitenmessungen ist eine passende PsPing-Instanz als Empfänger erforderlich. Die genauen Parameter müssen anhand der Hilfe der eingesetzten Version gewählt werden:
[RO] psping.exe /?
Bewertungsregeln
- TCP-Erreichbarkeit bestätigt nicht die korrekte Anwendung.
- Durchsatztests erzeugen zusätzliche Netzlast.
- Messergebnisse hängen von Gegenstelle, Route und Systemlast ab.
- kurze Tests können sporadische Störungen übersehen.
- Sicherheitssoftware kann Testverbindungen blockieren.
- Tests gegen fremde Systeme benötigen eine Freigabe.
29. AD Explorer – Active Directory untersuchen
AD Explorer ist ein grafischer Viewer und Editor für Active Directory.
Das Werkzeug kann:
- AD-Objekte durchsuchen
- Attribute anzeigen
- Objekteigenschaften untersuchen
- Suchabfragen speichern
- Snapshots einer AD-Datenbank erstellen
- zwei Snapshots vergleichen
- zugehörige Sicherheitsinformationen anzeigen
Starten
[RO][PRIV][REMOTE][SENS] adexplorer.exe
Typische Anwendungsfälle
- Attribut eines Benutzers oder Computers prüfen
- Gruppenmitgliedschaften nachvollziehen
- Distinguished Name kontrollieren
- Replikations- oder Änderungsstände vergleichen
- Objekte anhand bestimmter Attribute suchen
- Zustand vor und nach einer administrativen Änderung vergleichen
Risiken
AD Explorer kann nicht nur lesen, sondern bei ausreichenden Rechten auch Objekte verändern. Ein versehentliches Ändern oder Löschen kann Domänendienste und Anwendungen beeinträchtigen.
Für reine Diagnosezwecke sollte nach Möglichkeit ein Konto mit nur den notwendigen Leserechten verwendet werden.
Snapshots können enthalten:
- Benutzernamen
- Gruppenstrukturen
- Computernamen
- E-Mail-Adressen
- organisatorische Strukturen
- sicherheitsrelevante Attribute
- interne Server- und Domäneninformationen
Sie müssen entsprechend geschützt werden.
30. AD Insight und AD Restore
AD Insight
AD Insight überwacht LDAP-Clientaufrufe eines Prozesses und kann helfen, Active-Directory-Kommunikation einer Anwendung zu untersuchen.
Typische Fragen:
- Welche LDAP-Abfrage führt die Anwendung aus?
- Welcher Domänencontroller wird angesprochen?
- Welche Attribute werden angefordert?
- Welche LDAP-Fehler treten auf?
- Wiederholt eine Anwendung unnötig viele Abfragen?
[TEST][PRIV][SENS] adinsight.exe
Die Aufzeichnung kann sehr viele interne Verzeichnisinformationen enthalten.
AD Restore
AD Restore kann gelöschte Active-Directory-Objekte untersuchen und in unterstützten Fällen wiederherstellen.
[RO][PRIV][SENS] adrestore.exe
Eine tatsächliche Wiederherstellung verändert Active Directory:
[CHANGE][PRIV][DANGER]
AD Restore darf nicht ohne Kenntnis von AD-Papierkorb, Tombstone-Zustand, Replikation, Objektabhängigkeiten, Wiederherstellungsziel und organisatorischer Freigabe eingesetzt werden.
31. Coreinfo – CPU- und Virtualisierungsfunktionen prüfen
Coreinfo zeigt die Zuordnung logischer Prozessoren sowie unterstützte Prozessor- und Virtualisierungsfunktionen an.
Starten
[RO] coreinfo.exe
Virtualisierungsbezogene Informationen
[RO] coreinfo.exe -v
Typische Anwendungsfälle
- unterstützt die CPU benötigte Virtualisierungsfunktionen?
- sind Funktionen durch Firmware oder Hypervisor beeinflusst?
- wie sind logische Prozessoren, Kerne und NUMA-Knoten zugeordnet?
- stehen benötigte Befehlssatzerweiterungen zur Verfügung?
- unterscheidet sich ein System von einem funktionierenden Vergleichssystem?
Die Anzeige einer CPU-Funktion beweist nicht automatisch, dass sie von Firmware, Betriebssystem, Hypervisor und Anwendung vollständig nutzbar ist.
32. BgInfo – Systeminformationen auf dem Desktop anzeigen
BgInfo kann technische Systeminformationen in den Desktophintergrund einblenden.
Mögliche Angaben:
- Computername
- IP-Adresse
- Betriebssystemversion
- Domäne
- Benutzer
- letzter Startzeitpunkt
- Prozessor
- Arbeitsspeicher
- freier Speicherplatz
- benutzerdefinierte Werte
Starten
[RO][SENS] bginfo.exe
BgInfo eignet sich beispielsweise für:
- Schulungs- und Testsysteme
- Serverkonsolen
- virtuelle Maschinen
- schnelle Identifikation eines Zielsystems
- kontrollierte Supportumgebungen
Datenschutz beachten
Auf gemeinsam betrachteten Desktops dürfen keine unnötigen sensiblen Angaben angezeigt werden. Dazu gehören beispielsweise:
- öffentliche IP-Adressen
- interne Domänenstrukturen
- personenbezogene Benutzerdaten
- geheime Systemkennungen
- vertrauliche Inventarnummern
BgInfo ist eine Anzeigehilfe und kein Werkzeug zur laufenden Zustandsüberwachung.
33. Disk2vhd – Datenträgerabbild als virtuelle Festplatte
Disk2vhd erstellt virtuelle Festplattendateien aus Volumes eines laufenden Windows-Systems. Dafür kann der Volumeschattenkopie-Dienst verwendet werden, um einen konsistenteren Zeitpunkt abzubilden.
Starten
[TEST][PRIV][SENS] disk2vhd.exe
Mögliche Anwendungsfälle
- Testkopie eines Systems erstellen
- System für eine kontrollierte Analyse virtualisieren
- physisches System in eine virtuelle Testumgebung überführen
- Zustand eines Systems vor umfangreicher Analyse sichern
Wichtige Grenzen
- eine VHD- oder VHDX-Datei ist nicht automatisch ein vollständiges Backupkonzept
- laufende Anwendungen können zusätzliche Konsistenzanforderungen besitzen
- Datenbanken benötigen möglicherweise anwendungsspezifische Sicherung
- verschlüsselte Volumes müssen gesondert berücksichtigt werden
- Aktivierung und Lizenzierung können sich in einer VM verändern
- virtuelle Kopie darf nicht unkontrolliert parallel im produktiven Netzwerk starten
- gespeicherte Anmeldeinformationen bleiben möglicherweise enthalten
- die Datei kann nahezu alle Daten des Quellsystems enthalten
Eine virtualisierte Kopie eines Produktivsystems muss isoliert gestartet werden, damit keine doppelten Computerkonten, IP-Adressen, Dienste oder automatischen Aufgaben das Produktivnetz beeinflussen.
34. LiveKd – laufenden Kernel mit Debugger untersuchen
LiveKd ermöglicht die Untersuchung eines laufenden Windows-Systems mit Microsoft-Kerneldebuggern, ohne die klassische Remote-Debuggingverbindung zu einem zweiten Computer aufzubauen.
Starten
[TEST][PRIV][SENS] livekd.exe
Je nach Konfiguration wird ein kompatibler Microsoft-Debugger benötigt.
Mögliche Anwendungsfälle
- Kernelstrukturen untersuchen
- Treiberzustände betrachten
- Kernelstacks analysieren
- Speicher- und Objektinformationen prüfen
- Livezustand mit Debuggerbefehlen untersuchen
Grenzen
- das System verändert sich während der Untersuchung weiter
- Daten können zwischen Abfragen inkonsistent werden
- falsche Interpretation von Kernelstrukturen ist möglich
- Symbole müssen zur Systemversion passen
- Debuggerzugriff kann hochsensible Informationen offenlegen
LiveKd ist ein spezialisiertes Werkzeug für fortgeschrittene Windows- und Treiberanalyse. Es sollte nicht ohne Debuggingkenntnisse auf produktiven Systemen eingesetzt werden.
35. WinObj – Windows-Objektmanager untersuchen
WinObj zeigt den Namensraum des Windows-Objektmanagers.
Darin können unter anderem sichtbar sein:
- Geräteobjekte
- symbolische Links
- Sessions
- Treiberobjekte
- Named Pipes
- BaseNamedObjects
- Dateisystemobjekte
- Kernelobjekte
Starten
[RO][PRIV][SENS] winobj.exe
Typische Anwendungsfälle
- symbolische Objektverknüpfungen untersuchen
- Gerätedateien und Treiberobjekte nachvollziehen
- benannte Synchronisationsobjekte finden
- Unterschiede zwischen Sitzungen erkennen
- interne Objektpfade einer Anwendung prüfen
WinObj zeigt interne Windows-Objekte. Die bloße Existenz eines unbekannten Objekts ist kein Beweis für einen Fehler oder eine Kompromittierung.
36. PendMoves und MoveFile – Dateioperationen beim Neustart
Wenn Dateien während des laufenden Betriebs nicht ersetzt oder gelöscht werden können, kann Windows Operationen für den nächsten Systemstart vormerken.
Ausstehende Operationen anzeigen
[RO][PRIV][SENS] pendmoves.exe
Datei beim nächsten Neustart verschieben
[CHANGE][PRIV][RESTART] movefile.exe "<QUELLE>" "<ZIEL>"
Datei beim nächsten Neustart löschen
[CHANGE][PRIV][RESTART][DANGER] movefile.exe "<DATEI>" ""
Risiken
- falsche Systemdatei wird entfernt
- Anwendung startet nach Neustart nicht mehr
- Treiber oder Dienst fällt aus
- Abhängigkeiten werden erst nach Neustart sichtbar
- Rücknahme ist nach dem Start möglicherweise schwierig
Vor dem Vormerken einer Löschung müssen Datei, Hersteller, Signatur, Anwendung, Wiederherstellungsweg und Auswirkungen eindeutig geklärt sein.
37. SDelete – sicher überschreiben
SDelete kann Dateien oder freien Speicherplatz überschreiben, um die Wiederherstellung gelöschter Daten zu erschweren.
Hilfe anzeigen
[RO] sdelete.exe /?
Datei sicher löschen
[CHANGE][PRIV][DANGER] sdelete.exe "<DATEI>"
Freien Speicherplatz bearbeiten
[CHANGE][PRIV][DANGER] sdelete.exe -c <LAUFWERK>
Wichtige Einschränkungen
- SSDs besitzen Wear-Leveling und interne Speicherverwaltung
- Speichercontroller können Daten umorganisieren
- virtuelle Datenträger besitzen zusätzliche Speicherschichten
- Snapshots und Backups bleiben unberührt
- Cloud- und SAN-Speicher abstrahieren die physische Ablage
- falscher Zielpfad kann nicht einfach rückgängig gemacht werden
SDelete ist keine allgemeine Fehlerbehebungsmaßnahme. Vor dem Einsatz müssen Datenträgertyp, Sicherungen, Snapshots, Aufbewahrungspflichten und Löschkonzept geprüft werden.
38. NotMyFault nur in isolierten Testsystemen verwenden
NotMyFault kann absichtlich:
- Systemabstürze auslösen
- Systeme aufhängen
- Kernel-Speicherlecks erzeugen
- Treiberfehler simulieren
- hohe Last erzeugen
Das Werkzeug dient beispielsweise zum Testen von:
- Speicherabbildkonfiguration
- Überwachungssystemen
- Wiederanlaufverhalten
- Absturzanalysen
- Laborübungen
[DANGER][PRIV][RESTART] notmyfault.exe
NotMyFault darf niemals auf einem produktiven System, einem gemeinsam genutzten Schulungssystem oder einem nicht vollständig isolierten Testsystem ausprobiert werden. Es verursacht absichtlich schwerwiegende Störungen.
Vor einem Test müssen mindestens vorhanden sein:
- isolierte virtuelle Maschine
- aktueller Snapshot oder definierter Wiederherstellungsweg
- keine produktiven Daten
- kein Zugang zum Produktivnetz
- dokumentiertes Testszenario
- Kontrolle über Neustart und Speicherabbilder
- ausreichend Speicherplatz
- ausdrückliche Freigabe
39. Geeignetes Werkzeug nach Fehlerbild auswählen
| Fehlerbild | Geeignete Werkzeuge |
|---|---|
| Datei lässt sich nicht löschen | Process Explorer, Handle |
| Anwendung startet nicht | Process Monitor, Autoruns, Ereignisanzeige |
| Anwendung findet Datei nicht | Process Monitor |
| Zugriff verweigert | Process Monitor, AccessChk, AccessEnum |
| hohe CPU-Auslastung | Process Explorer, ProcDump, Leistungsüberwachung |
| wachsender RAM-Verbrauch | Process Explorer, VMMap, RAMMap, ProcDump |
| unbekannter Autostart | Autoruns, Sigcheck, Process Explorer |
| unbekannte Netzwerkverbindung | TCPView, Process Explorer, Sigcheck |
| sporadischer Absturz | ProcDump, Ereignisanzeige, WinDbg |
| unbekannte DLL | Process Explorer, ListDLLs, Sigcheck |
| verdächtige Datei | Sigcheck, Strings, Streams |
| Active-Directory-Abfrage fehlerhaft | AD Explorer, AD Insight |
| Remoteprozess untersuchen | PsList, PsInfo, PsLoggedOn |
| TCP-Latenz oder Durchsatz | PsPing |
| Kernel- oder Treiberproblem | LiveKd, WinDbg, Process Monitor |
| Startproblem durch Zusatzsoftware | Autoruns, Process Monitor Boot Logging |
| Speicheraufteilung unklar | RAMMap |
| Prozessspeicher im Detail | VMMap |
| ausstehende Dateilöschung | PendMoves |
| CPU-Funktion oder Virtualisierung | Coreinfo |
| Systemkopie für Laboranalyse | Disk2vhd |
40. Typischer Ablauf einer Sysinternals-Analyse
- Originale Fehlermeldung erfassen.
- Fehlerzeitpunkt dokumentieren.
- betroffenen Computer und Benutzer bestätigen.
- Reproduzierbarkeit prüfen.
- integrierte Windows-Protokolle untersuchen.
- kleinstes passende Sysinternals-Werkzeug auswählen.
- Werkzeugquelle, Version und Signatur kontrollieren.
- Berechtigungsbedarf prüfen.
- mögliche sensible Daten berücksichtigen.
- Aufzeichnung vorbereiten.
- Filter möglichst eng festlegen.
- Ausgangszustand dokumentieren.
- Aufzeichnung starten.
- Fehler einmal reproduzieren.
- Aufzeichnung unmittelbar beenden.
- Ereignisse zeitlich eingrenzen.
- Prozess, Pfad, Benutzer, Operation und Ergebnis vergleichen.
- normale Such- und Fehlversuche von relevanten Fehlern unterscheiden.
- Befund mit Ereignisanzeige und Anwendungsprotokollen abgleichen.
- Hypothese formulieren.
- möglichst kleinen und reversiblen Test planen.
- Sicherung und Rückfallplan prüfen.
- Änderung durchführen.
- Funktion erneut testen.
- Diagnosewerkzeuge und temporäre Überwachung beenden.
- Daten geschützt speichern oder ordnungsgemäß löschen.
- Ursache, Maßnahme und Ergebnis dokumentieren.
41. Beispiel – Anwendung meldet „Datei nicht gefunden“
Ausgangslage
Eine Anwendung meldet beim Start, eine Konfigurationsdatei sei nicht vorhanden. Die Datei ist im erwarteten Verzeichnis sichtbar.
Vorgehensweise
- tatsächlichen Anwendungsprozess bestimmen.
- Process Monitor starten.
- Aufzeichnung anhalten und leeren.
- Filter auf den Prozessnamen setzen.
- optional nach einem Teil des Dateinamens filtern.
- Aufzeichnung starten.
- Fehler reproduzieren.
- Aufzeichnung beenden.
- Operationen wie
CreateFileuntersuchen. - tatsächlich abgefragten Pfad prüfen.
- Benutzerkontext kontrollieren.
- Ergebnisse vor und nach dem Fehler vergleichen.
Mögliche Befunde
- Anwendung sucht in einem anderen Verzeichnis.
- Umgebungsvariable führt zu einem falschen Pfad.
- Dateiname oder Erweiterung weicht ab.
- Zugriff wird verweigert und als „nicht gefunden“ dargestellt.
- Anwendung läuft unter einem Dienstkonto.
- Datei wird zuerst gefunden, aber eine abhängige Datei fehlt.
- Registrywert enthält einen veralteten Pfad.
- 32-Bit- und 64-Bit-Dateisystemumleitung beeinflusst den Zugriff.
Geeignete Ergänzungen
- Process Explorer für Benutzer und Befehlszeile
- AccessChk für Berechtigungen
- Sigcheck für die Anwendungsdatei
- Ereignisanzeige für Folgefehler
42. Beispiel – Anwendung verbraucht immer mehr Arbeitsspeicher
Vorgehensweise
- Ausgangswert im Task-Manager oder mit PowerShell erfassen.
- Process Explorer zur Beobachtung verwenden.
- Private Bytes, Working Set und Commit unterscheiden.
- VMMap-Snapshot im Ausgangszustand speichern.
- reproduzierbare Benutzeraktion mehrfach ausführen.
- zweiten VMMap-Snapshot erstellen.
- wachsende Speicherart bestimmen.
- bei Bedarf ProcDump kontrolliert konfigurieren.
- Speicherabbild mit geeignetem Debugger untersuchen.
- Anwendungsversion und bekannte Fehler des Herstellers prüfen.
Nicht ausreichend als Beweis
- RAM-Anzeige steigt einmalig
- Working Set sinkt nicht sofort
- freier Speicher wird kleiner
- RAMMap zeigt großen Standby-Cache
- Prozess besitzt viele Speicherabbildungen
Stärkerer Hinweis auf ein Leck
Ein bestimmter Speicherbereich wächst bei wiederholbarer identischer Aktion fortlaufend, wird nicht wieder freigegeben und korreliert mit der Störung.
43. Beispiel – langsamer Anwendungsstart
Geeignete Werkzeuge
- Process Monitor
- Process Explorer
- Autoruns
- Ereignisanzeige
- Leistungsüberwachung
- ProcDump bei Hängern
Vorgehensweise
- Startzeit reproduzierbar messen.
- Process Monitor vorbereiten.
- nur den Startvorgang aufzeichnen.
- Ereignisse nach Dauer untersuchen.
- wiederholte Datei- oder Registryzugriffe identifizieren.
- Netzwerkpfade und Namensauflösung beachten.
- untergeordnete Prozesse im Process Tree prüfen.
- Signaturen und Pfade geladener Komponenten kontrollieren.
- Ergebnis mit einem funktionierenden System vergleichen.
Mögliche Ursachen
- nicht erreichbarer Netzwerkpfad
- langsame DNS-Auflösung
- wiederholte Zertifikatsprüfung
- blockierende Sicherheitssoftware
- fehlende Datei mit wiederholten Suchversuchen
- langsame Benutzerprofilkomponente
- fehlerhafte Shell-Erweiterung
- veraltete Autostartkomponente
- stark ausgelasteter Datenträger
- Drittanbieter-DLL
- nicht erreichbarer Lizenzserver
44. Gefährliche Fehlinterpretationen vermeiden
| Beobachtung | Nicht automatisch bewiesen |
|---|---|
| Prozess ist nicht signiert | Prozess ist Schadsoftware |
| VirusTotal zeigt einen Treffer | Datei ist eindeutig schädlich |
| VirusTotal zeigt keinen Treffer | Datei ist sicher |
Process Monitor zeigt ACCESS DENIED |
Dieser Zugriff verursacht den Fehler |
Process Monitor zeigt NAME NOT FOUND |
Die Datei fehlt fehlerhaft |
| hohe Zahl offener Handles | Handle-Leck |
| viele TCP-Verbindungen | Angriff oder Schadsoftware |
| unbekannte Remote-IP | unberechtigter Datenverkehr |
| hoher Standby-Speicher | Arbeitsspeichermangel |
| Prozess besitzt hohen Working Set | Speicherleck |
| DLL liegt im Benutzerprofil | DLL ist bösartig |
| Autostarteintrag ist unbekannt | Eintrag darf gelöscht werden |
| Sysmon erzeugt kein Ereignis | Aktivität fand nicht statt |
| Prozess läuft als SYSTEM | Prozess ist legitim |
| Datei besitzt Microsoft im Namen | Datei stammt von Microsoft |
45. Diagnosedaten sicher speichern und weitergeben
Sysinternals-Ausgaben können enthalten:
- Benutzernamen
- Computer- und Domänennamen
- IP-Adressen
- Dateipfade
- Befehlszeilen
- Prozessumgebungen
- Registrywerte
- geöffnete Dokumente
- Netzwerkziele
- Sicherheitskennungen
- Anmeldesitzungen
- E-Mail-Adressen
- Tokens und Zugangsdaten
- Datei- und Speicherinhalte
- Active-Directory-Strukturen
Vor der Weitergabe
- Empfänger und Zweck bestimmen.
- erforderlichen Datenumfang begrenzen.
- Datei auf Geheimnisse prüfen.
- personenbezogene Daten redigieren.
- verschlüsselten Übertragungsweg verwenden.
- Zugriffsrechte beschränken.
- Aufbewahrungsdauer festlegen.
- Löschung dokumentieren.
- öffentliche Uploadplattformen vermeiden.
- Speicherabbilder besonders schützen.
Besonders sensible Dateitypen
| Dateityp | Risiko |
|---|---|
| PML-Aufzeichnung | Pfade, Registry, Prozesse, Benutzer und Aktivitäten |
| Prozessdump | vollständige Speicherinhalte des Prozesses |
| Kernel-Dump | umfangreiche System- und Speicherinformationen |
| AD-Explorer-Snapshot | Verzeichnisstruktur und Objektattribute |
| Autoruns-Export | Softwarebestand, Pfade und Autostarts |
| TCPView-Export | Netzwerkziele und Prozesszuordnung |
| Sysmon-Protokoll | Befehlszeilen, Hashwerte, DNS- und Netzwerkaktivität |
46. Schnelle Werkzeugübersicht
| Aufgabe | Werkzeug |
|---|---|
| Prozesshierarchie anzeigen | Process Explorer |
| offene Datei finden | Process Explorer, Handle |
| geladene DLLs prüfen | Process Explorer, ListDLLs |
| Datei- und Registryzugriffe verfolgen | Process Monitor |
| Bootaktivität aufzeichnen | Process Monitor |
| Autostarts untersuchen | Autoruns |
| Autostarts exportieren | Autorunsc |
| Netzwerkverbindungen zuordnen | TCPView |
| physische RAM-Nutzung analysieren | RAMMap |
| Prozessspeicher analysieren | VMMap |
| Prozessdump erstellen | ProcDump |
| dauerhafte Sicherheitsereignisse erfassen | Sysmon |
| Signatur und Hash prüfen | Sigcheck |
| lesbare Binärdateiinhalte finden | Strings |
| alternative NTFS-Datenströme anzeigen | Streams |
| Berechtigungen untersuchen | AccessChk |
| Berechtigungsabweichungen suchen | AccessEnum |
| Freigaben untersuchen | ShareEnum |
| Remoteprozesse starten | PsExec |
| Remoteprozesse anzeigen | PsList |
| Systeminformationen remote abrufen | PsInfo |
| angemeldete Benutzer prüfen | PsLoggedOn |
| Netzwerklatenz testen | PsPing |
| Active Directory durchsuchen | AD Explorer |
| LDAP-Aufrufe verfolgen | AD Insight |
| gelöschte AD-Objekte untersuchen | AD Restore |
| CPU-Funktionen anzeigen | Coreinfo |
| Systemdaten auf Desktop anzeigen | BgInfo |
| virtuelle Systemkopie erstellen | Disk2vhd |
| laufenden Kernel untersuchen | LiveKd |
| Objektmanager anzeigen | WinObj |
| ausstehende Dateioperationen anzeigen | PendMoves |
| Dateioperation für Neustart planen | MoveFile |
| Daten sicher überschreiben | SDelete |
| Absturz absichtlich erzeugen | NotMyFault – nur isoliertes Labor |
47. Dokumentationsvorlage
Ticket:
Datum und Uhrzeit:
Bearbeiter:
Computername:
Windows-Version:
Build:
Architektur:
Benutzerkontext:
Betroffener Prozess:
PID:
Prozesspfad:
Befehlszeile:
Prozessherausgeber:
Signaturstatus:
Originale Fehlermeldung:
Fehlerzeitpunkt:
Reproduzierbar:
Reproduktionsschritte:
Letzte funktionierende Nutzung:
Letzte Änderung:
Verwendetes Sysinternals-Werkzeug:
Werkzeugversion:
Bezugsquelle:
Hash des Werkzeugs:
Erhöht ausgeführt:
Startzeit der Aufzeichnung:
Endzeit der Aufzeichnung:
Verwendete Filter:
Verwendete Befehlszeile:
Speicherort der Diagnosedaten:
Relevanter Prozess:
Übergeordneter Prozess:
Benutzer:
Operation:
Objekt oder Pfad:
Ergebnis:
Zeitlicher Zusammenhang:
Vergleichssystem geprüft:
Normales Verhalten ausgeschlossen:
Autostarteintrag:
Signatur:
Hash:
VirusTotal verwendet:
Datei hochgeladen:
Freigabe für externen Dienst vorhanden:
Lokale Adresse:
Lokaler Port:
Remoteadresse:
Remoteport:
Verbindungsstatus:
Zugehöriger Prozess:
RAM-Ausgangswert:
RAM-Endwert:
Working Set:
Private Bytes:
Commit:
Wachsende Speicherart:
Dump erzeugt:
Dump-Typ:
Dump-Größe:
Dump geschützt gespeichert:
Sysmon-Konfiguration:
Sysmon-Ereignis-ID:
Ereignisquelle:
SIEM-Abfrage:
Vermutete Ursache:
Zusätzliche Datenquelle:
Geplante Änderung:
Sicherung geprüft:
Rückfallplan:
Änderung durchgeführt:
Neustart erforderlich:
Ergebnis nach Änderung:
Fehler erneut getestet:
Monitoring kontrolliert:
Temporäre Aufzeichnung beendet:
Diagnosedaten redigiert:
Aufbewahrungsfrist:
Abschluss:
Merksatz
Sysinternals macht interne Windows-Abläufe sichtbar, bestimmt aber nicht automatisch deren Bedeutung. Erst die Verbindung aus Fehlerzeitpunkt, Prozess, Benutzerkontext, Pfad, Operation, Ergebnis, Systemzustand und Vergleichsdaten ermöglicht eine belastbare Ursachenanalyse.
Quellen und weiterführende Dokumentation
- Microsoft Learn – Sysinternals
- Microsoft Learn – Sysinternals Utilities
- Microsoft Learn – Sysinternals Suite
- Microsoft Learn – Sysinternals Live
- Microsoft Learn – Sysinternals Suite im Microsoft Store
- Microsoft Learn – Process Explorer
- Microsoft Learn – Process Monitor
- Microsoft Learn – Autoruns
- Microsoft Learn – Handle
- Microsoft Learn – TCPView
- Microsoft Learn – RAMMap
- Microsoft Learn – VMMap
- Microsoft Learn – ProcDump
- Microsoft Learn – Sysmon
- Microsoft Learn – Sigcheck
- Microsoft Learn – ListDLLs
- Microsoft Learn – Strings
- Microsoft Learn – Streams
- Microsoft Learn – AccessChk
- Microsoft Learn – AccessEnum
- Microsoft Learn – ShareEnum
- Microsoft Learn – PsTools
- Microsoft Learn – PsExec
- Microsoft Learn – PsPing
- Microsoft Learn – AD Explorer
- Microsoft Learn – AD Insight
- Microsoft Learn – Coreinfo
- Microsoft Learn – BgInfo
- Microsoft Learn – Disk2vhd
- Microsoft Learn – LiveKd
- Microsoft Learn – WinObj
- Microsoft Learn – PendMoves und MoveFile
- Microsoft Learn – SDelete
- Microsoft Learn – NotMyFault
- Microsoft Learn – Troubleshooting with the Windows Sysinternals Tools