Sysinternals – Process Explorer

In einem früheren Blogbeitrag habe ich bereits kurz das Tool Process Monitor aus der Sysinternals Suite vorgestellt.

Heute möchte ich das etwas weniger mächtige aber dennoch nicht minder interessante Tool Process Explorer kurz vorstellen.

Website mit der jeweils aktuellsten Version: Infos und Download Process Explorer

Man könnte es als eine etwas „aufgebohrte“ Version des Taskmanagers bezeichnen, da man auch im Process Explorer die einzelnen aktuell laufenden Prozese und deren zugehörigen ausführbaren Dateien etc. sehen kann.

Ein großer Vorteil gegenüber dem Taskmanager ist, dass die Einträge verschieden farbig hervorgehoben werden und man auch die Abhängigkeiten der einzelnen Prozesse besser erkennen kann.

grün hinterlegt –> neu gestarteter Prozess
rot hinterlegt –> beendet Prozess (dieser verschwindet anschließend auch aus der Anzeige)
rosa hinterlegt –> Prozesse / Dienste die im Systemkontext laufenden
blau hinterlegt –> Prozesse die im Benutzerkontext laufenden

Zudem erhält man durch ein „Mouse-over“ detailierte Informationen zu den einzelnen Prozessen / Diensten bzgl. Kommandozeile die für den Aufruf verwendet wurde sowie das zugehörige Arbeitsverzeichnis.
Vor Allem bei allen svc-Host Prozessen kann dies sehr hilfreich sein, da man den zugehörigen Dienstnamen direkt angezeigt bekommt.

Über die Schaltfläche „Optionen“ kann man verschiedenes einstellen. Am interessantesten sind die Optionen:

  • Run at Logon – Process Explorer bereits während der Anmeldung ausführen
  • Replace Taskamanger – ersetzt den Taskmanager vollständig durch den Process Explorer (kann auch rückgängig gemacht werden)
  • Verify Image Signatures – prüft die Signaturen der ausführbaren Dateien.
  • Check VirusTotal.com – prüft die Dateihashes der ausführbaren Datei bei Virustotal.com und zeigt die Ergebnisse anderen

Vor Allem die letzten beiden Optionen können bereits in einem ersten Schritt hilfreich sein, um Malware auf einem System zu entdecken. Beim Aktivieren der Option „Check Virustotal.com“ erhält man ein Popup mit einem Hinweis zu den Nutzungsbedingungen von Virustotal.com, welchen man zustimmen muss.

HINWEIS: Dateien deren Hashes noch nicht bei Virustotal gefunden wurden, kann man über die Option „Submit Unknown Executables“ hochladen und von den ca. 60 Virenscannerengines dort untersuchen lassen.
Selbstprogrammierte Dateien oder jene, die Rückschlüsse auf die interne Infrastruktur eines Unternehmens geben könnten, sollte man hierbei nur nach genauer Überlegung hochladen.

Für jeden aufgeführten Prozess kann man unglaublich weitreichende Informationen abfragen, indem man diesen mit Doppelklick „öffnet“.

Auch hier gibt es einen großen Vorteil gegenüber dem Taskmanager, da man für jeden Prozess die Historie einsehen kann was Festplatten- und Netzwerk- Schreib-/Leseoperationen angeht.

Über die weiteren Reiter kann man zudem Informationen zu bestehenden TCP / IP Verbindungen, Zugriffsrechten oder den Umgebungsvariablen die dem Prozess zur Verfügung stehen einsehen.

Meiner Meinung nach lohnt es sich für jeden IT-Administrator, sich mit diesem Tool ein wenig genauer auseinander zu setzen.

Einen ersten guten Einstieg bietet das Video:

https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-2-Process-Explorer

Advertisements

Windows Registry Teil 7 – HKEY_USERS

Dieser Hive umfasst alle benutzerspezifischen Konfigurationseinstellungen der Windows Registrierungsdatenbank und wird häufig schlicht mit HKU abgekürzt.
Änderungen in diesem Bereich wirken sich immer auf den speziellen Systembenutzeraccount aus. Folgende Dateien spiegeln hierbei die einzelnen auf jedem Windows-System vorhandenen Schlüssel unter dem Hive wieder

Registry Hive

Datei(en)

HKU\.Default

System32\config\.Default

HKU\S-1-5-18

System32\config\.Default

HKU\S-1-5-19

%WINDIR%\ServiceProfiles\LocalService

HKU\S-1-5-20

%WINDIR%\ServiceProfiles\NetworkService

Die “kurzen” Benutzer-SIDs gehören zu lokalen, windows-eigenen “Dienstaccounts”.
S-1-5-18 = Local System
S-1-5-19 = NT Authority\LocalService
S-1-5-19 = NT Authority\NetworkService

Nähere Infos zu bekannten Sicherheits-IDs in Windows Betriebssytemen findet sich hier: https://support.microsoft.com/de-de/help/243330/well-known-security-identifiers-in-windows-operating-systems

Zudem wird unter HKU werden nach der Benutzeranmeldung an einem Windows System die zu der Benutzeranmeldung gehörigen Benutzer-Registrierungsdateien “eingehangen”.

Sollten mehrere Benutzer gleichzeitig angemeldet sein (zum Beispiel über die Funktion “Benutzer wechseln” muss man die SID des jeweiligen Benutzeraccounts kennen oder über den Unterschlüssel

HKU\Benutzer-SID\VolatileEnvironment

und dessen Wert “Username” den entsprechenden Zweig herausfinden.

Zum Beispiel

Registry Hive

Datei(en)

S-1-5-21-1234-123456-123456-1001

%systemdrive%\Users\%username%\NTUSER.DAT

S-1-5-21-1234-123456-123456-1001_classes

%systemdrive%\Users\%username%\NTUSER.DAT

Die Datei, welche die benutzerspezifischen Einstellungen wiederspiegelt heißt ntuser.dat und liegt direkt im Wurzelverzeichnis des Benutzerprofils.

Der Zweig des aktuell angemeldeten Benutzers wird zudem, wie bereits unter Windows Registry Teil 4 – HKEY_CURRENT_USER beschrieben, nach HKEY_CURRENT_USER “gespiegelt”.

Windows Registry Teil 6 – HKEY_CURRENT_CONFIG

In der Teilstruktur HKEY_Current_Config finden sich Informationen zu der aktuellen Hardware-KonfigurationDie hier dargestellten Einstellungen spiegeln die Werte aus dem Zweig

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfile\Current

wieder.

In diesem Zweig werden nur die Unterschiede zu der Standard Hardwarekonfiguration des Systems gespeichert.

Die Standardkonfiguration ergibt sich aus den beiden HKLM-Schlüsseln

  • HKLM\Software
  • HKLM\System

Das Ändern bzw. Auslesen von Wertdaten aus diesem Teil der Registry habe ich bisher in meinem Itler-Dasein noch nicht bewusst benötigt.

Windows Registry Teil 5 – HKEY_LOCAL_MACHINE

Dieser Hive umfasst alle computerspezifischen Konfigurationseinstellungen der Windows Registrierungsdatenbank und wird häufig schlicht mit HKLM abgekürzt.

Änderungen in diesem Bereich wirken sich immer auf das gesamte System und alle Benutzer die sich an dem System anmelden aus.

Folgende Dateien spiegeln hierbei die einzelnen Schlüssel unter dem Hive wider und finden sich im Windows-Installationsverzeichnis unter:

Registry Hive

Datei(en)

HKEY_LOCAL_MACHINE\Software

System32\config\Software

HKEY_LOCAL_MACHINE\SAM

System32\config\SAM

HKEY_LOCAL_MACHINE\Security

System32\config\Security

HKEY_LOCAL_MACHINE\System

System32\config\System

HKEY_LOCAL_MACHINE\Drivers

System32\config\Drivers

Tipp 1: Um eine Zuordnung aller Hives und zugehörigen Dateien zu erhalten, navigiert man zu dem Schlüssel

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

Windows Registry Teil 4 – HKEY_CURRENT_USER

In der alphabetisch nächstsortierten Teilstruktur HKEY_CURRENT_USER finden sich die benutzerspezifischen Einstellungen des interaktiven (aktuell angemeldeten Benutzers).

Diese  spiegeln die Einstellung des Benutzer-Unterordners des Zweiges HKEY_USERS wider.

Die Einstellungen sind in der Datei ntuser.dat in jedem Benutzerprofil gespeichert.
Zu dieser Datei gibt es jeweils entsprechend auch Logfiles.

Diese Datei wird bei der Benutzeranmeldung an einem Windows-System in der Registrierungsdatenbank mit der SID des Benutzers als Bezeichner in der Teilstruktur HKEY_USERS “eingehangen”.

Dieser Zweig enthält benutzerspezifische Softwareeinstellungen, die Umgebungsvariablen des Benutzers, die Einstellungen des Desktops, Druckereinstellungen, etc.

Sind also parallel mehrere Benutzer an einem Windows System angemeldet, finden sich in der Struktur “HKEY_USERS” mehr “Unterschlüssel” (zum Beispiel auf einem Terminalserver) als wenn nur ein Benutzer an dem System angemeldet ist.

Windows Registry Teil 3 – HKEY_CLASSES_ROOT

Im alphabetisch an erster Stelle stehenden Teilschlüssel vereinen sich sowohl die computer- als auch benutzerspezifischen Informationen zu bekannten Dateitypen, mit welchen Programmen diese zu öffnen bzw. zu bearbeiten sind, die ProgIDs (identifiziert Programmklassen, aber weniger genau), CLSIDs (identifiziert eindeutig ein COM-Klassenobjekt) und IIDs (identifiziert eindeutige Schnittstellen).

Der Hauptzweck dieses Teilschlüssels besteht in der (Rückwärts-)Kompatibilität zu früheren Windows Versionen und Programmen, welche den damaligen Registrierungsaufbau weiterhin annehmen.

Damals gab es keinen benutzerspezifischen Teil. Dieser wurde unter dem Begriff „Per-User Class Registration“ eingeführt und bietet folgende Vorteile:

Verschiedene Benutzer können unterschiedliche Applikationen installieren, welche zum Darstellen oder Bearbeiten eines bestimmten Dateityps gedacht sind, ohne dass die Einstellungen der anderen Benutzers verändert oder beeinträchtigt werden.

Da früher die Änderung des Standardprogramms systemweit übernommen wurde, kam es durchaus vor, dass ein Benutzer der ein falsches oder abweichendes Standardprogramm definierte, nicht nur seine Zuordnung zerstörte, sondern auch die aller anderen Benutzer des Systems.

Deshalb werden unter diesem Teilschlüssel nun folgende beide Teilstrukturen

  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes (gilt systemweit)
  • HKEY_CURRENT_USER\SOFTWARE\Classes (gilt nur für den angemeldeten Benutzer)

nach folgenden Regeln zusammengeführt dargestellt:

1.) Ein Wert wird unter HKEY_CLASSES_ROOT angezeigt, wenn er in einem der oben genannten Teilschlüssel vorhanden ist.

2.) Ist ein Wert in beiden Teilschlüsseln vorhanden, wird immer der Wert aus HKEY_CURRENT_USER\SOFTWARE\Classes angezeigt und besitzt auch innerhalb der Benutzersitzung Vorrang vor den Standardwerten aus HKEY_LOCAL_MACHINE.

ERGO: Dieser Teilschlüssel kann auf dem gleichen PC / Server unterschiedliche Werte beinhalten, je nachdem welcher Benutzer angemeldet ist.

Dies erklärt auch folgende Microsoft-Empfehlungen:

1.) Soll eine Änderung nur für den interaktiven (sprich: angemeldeten) Benutzer vorgenommen werden, so sollen die Änderungen im Schlüssel HKEY_CURRENT_USER\SOFTWARE\Classes vorgenommen werden und nicht unter HKEY_CLASSES_ROOT.

2.) Um die Standardeinstellung für das gesamte System anzupassen, sollen die Änderungen im Schlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Classes vorgenommen werden und nicht unter HKEY_CLASSES_ROOT.

Eine Änderung der Werte unter HKEY_CLASSES_ROOT kann in verschiedenen Fällen nicht zu dem gewünschten Ergebnis führen, da

1.) Wenn ein neuer Schlüssel oder Unterschlüssel unter HKEY_CLASSES_ROOT erstellt wird, wird somit ein neuer Schlüssel bzw. Unterschlüssel unter HKEY_LOCAL_MACHINE\SOFTWARE\Classes erstellt.

2.) Wird ein neuer Wert unter einem bestehenden Schlüssel oder Unterschlüssel von HKEY_CLASSES_ROOT erzeugt, wird der neue Wert in der Teilstruktur abgelegt, in welcher sich der Schlüssel oder Unterschlüssel bereits befand und gilt somit entweder nur für den aktuellen Benutzer oder systemweit.

3.) besteht der Schlüssel bzw. Unterschlüssel in beiden Strukturen, wird der neue Wert NUR unter HKEY_CURRENT_USER\SOFTWARE\Classes erzeugt

4.) besteht der Schlüssel bzw. Unterschlüssel nur in HKEY_CURRENT_USER\SOFTWARE\Classes wird der neue Wert auch nur dort angelegt.

5.) besteht der Schlüssel bzw. Unterschlüssel nur in HKEY_LOCAL_MACHINE\SOFTWARE\Classes wird der neue Wert auch nur dort angelegt.

Windows Registry Teil 2 – Aufbau der Windows Registry

Auch wenn die bisherigen Ausführungen durchaus die Vermutung zulassen, dass es sich bei der Registry um eine einzige Datei handelt, stimmt dies leider nicht. Viel mehr werden in der Registry die Informationen aus unterschiedlichen einzelnen Teilstrukturen zusammengeführt die auf der einen Seite system- / computerspezifische Informationen widerspiegeln und auf der anderen Seite benutzerspezifische Einstellungen zeigen.

Schauen wir uns die Registry doch einmal an.

Die obige Grafik zeigt 5 Teilstrukturen, welche alle mit HKEY beginnen. Dies steht für Hive Keys zu deutsch Bienenstock-Schlüssel.

Tatsächlich existieren jedoch nur 2 Teilstrukturen, nämlich:

HKEY_USERS (benutzerspezifische Einstellungen)
und
HKEY_LOCAL_MACHINE (computerspezifische Einstellungen)

Die anderen drei Teilstrukturen dienen nur als eine Art „Alias“ bzw. Verweis auf bestimmte Unterstrukturen von HKEY_USERS bzw. HKEY_LOCAL_MACHINE.

Eine etwas ausführlichere Darstellung findet sich im folgenden Microsoft Technet Artikel:
https://technet.microsoft.com/de-de/library/cc776231

Ich gehe auf jeden dieser 5 Teilschlüssel noch einmal nachstehend in einer etwas ausführlicheren Aufbereitung ein.

Begriffe und Datentypen

Bevor wir uns die einzelnen Hive-Keys jedoch anschauen, möchte ich noch die Begrifflichkeiten rund um die Registry klären sowie die verschiedenen Datentypen vorstellen die man finden kann.

1.) Hive

Die Hives sind die 5 Hauptschlüssel die im vorhergehenden Kapitel zu sehen waren.
In der Beispielgrafik befinden wir uns im Hive HKEY_CURRENT_USER

2.) Schlüssel (bzw. Unterschlüssel)

So werden alle Unterstrukturen genannt, welche keine Werte und Wertdaten darstellen. Sie dienen zur Strukturierung der Registrierung.
In der Beispielgrafik lautet die Bezeichnung des Schlüssels ENVIRONMENT

3.) Wert

Der Wert steht für einen bestimmten Konfigurationswert.
In der Beispielgrafik lautet der Wertname TEMP

4.) Werttyp

Jeder Wert ist von einem bestimmten Typ (eine Übersicht folgt in der nachstehenden Grafik) welche sich je nach Inhalt unterscheiden.
In der Beispielgrafik ist der Typ des Wertes REG_EXPAND_SZ

5.) Wertdaten

Die Wertdaten sind letztendlich die Informationen die der Wert enthält bzw. darstellt.
In der Beispielgrafik sind die Daten die erweiterbare Zeichenfolge %USERPROFILE%\AppData\Local\Temp

In der folgenden Tabelle sind die unterschiedlichen Werttypen benannt und welche Daten sie üblicherweise enthalten bzw. für welche Werte sie häufig gebräuchlich sind.

Werttyp Name Beschreibung
REG_SZ Zeichenkette
(engl. String)
Einfache Zeichenketten aus Unicode-Zeichen welche Text oder Zahlenwerte enthalten und immer von Anführungszeichen eingeschlossen sein müssen
REG_MULTI_SZ Wert der mehrteiligen Zeichenfolge
(Multistring)
Mehrteilige Zeichenfolgen enthalten mehrere Werte oder Listen in lesbarem Format. Die einzelnen Einträge werden durch Trennzeichen voneinander abgegrenzt.
REG_EXPAND_SZ Wert der erweiterbaren Zeichenfolge
(Expandable String)
Eine erweiterbare Zeichenfolge beinhaltet eine Variable die zur Laufzeit in die entsprechende Zeichenfolge aufgelöst wird.
REG_BINARY Binärwert
(Binary)
Binärcode welcher direkt verarbeitet werden kann. Dieser wird im Hexadezimalformat angezeigt.
REG_DWORD DWORD-Wert (32-Bit)
(DWORD (32-Bit)
Daten die mittels einer 4Byte (32 Bit) großen Integer-Zahl dargestellt werden. Diese können im Dezimal, Hexadezimal oder Binärformat vorkommen.
REG_QWORD QWORD-Wert (64-Bit)
(QWORD (32-Bit)
Daten die mittels einer 8Byte (64 Bit) großen Integer-Zahl dargestellt werden.Ansonsten identisch mit dem REG_DWORD.

Windows Registry Teil 1 – Was ist die Windows Registry?

Sowohl Microsoft selbst als auch zum Beispiel Wikipedia erklären die Windows Registrierungsdatenbank (meist nur Registrierung oder mit dem gebräuchlichen englischen Begriff Registry abgekürzt) als eine hierarchische Datenbank welche unter anderem Informationen zu

– installierter Soft- und Hardware
– Konfigurationseinstellungen von Windows und installierten Programmen
– Dateitypen und deren zugehörigen Standardanwendungen
– Benutzerprofilen und deren individuelle Einstellungen

enthält.

Historisch betrachtet wurden mit dieser zentralen Datenbank die unzähligen separaten Konfigurationsdateien (z.Bsp. *.ini, *.sys oder *.com), welche bis Windows 3.1 verwendet wurden, abgelöst.

Dies bietet verschiedene Vorteile:

1.) Mit Hilfe des Registrierungs-Editors ist es möglich, zentral alle Einstellungen einzusehen und zu bearbeiten, anstatt unzählige Konfigurationsdateien zu durchsuchen. Auch unnötige Redundanzen lassen sich somit vermeiden.

2.) Programme können über eine Standardschnittstelle Werte aus der Registrierung auslesen, einfügen, bearbeiten oder gar löschen (sofern der entsprechende Benutzer das Recht dazu hat).

3.) Berechtigungen können granularer als nur auf Datei-Ebene (auf Schlüssel-Ebene) vergeben werden.

4.) Mit Hilfe von Gruppenrichtlinien können in einer Active Directory Domäne über eine grafische Oberfläche identische Registrywerte auf die gewünschten Windows-Endgeräte verteilt werden.

Windows Registry – Einleitung

Immer wieder stelle ich in meinem Arbeitsalltag fest, dass selbst langjährige Mitarbeiter im IT – Bereich nur wenige Erfahrungen mit der Windows Registrierungsdatenbank (englische Kurzform: Registry) besitzen und häufig Probleme damit haben, diese zur Fehlerbehebung oder Konfiguration von Systemen zu verwenden.

Gerade deshalb finde ich es vor Allem auch für Auszubildende bzw. Umschüler besonders wichtig, sich mit diesem zentralen Teil der Windows-Betriebssystemkonfiguration eingehender zu beschäftigen.

Genau zu diesem Zweck und Thema, möchte ich eine Artikelserie erstellen, die einen kompakten aber dennoch umfassenden Überblick über die Windows Registrierungsdatenbank gibt und gleichzeitig auch eine Schnellübersicht zu Registierungswerten bieten soll, die im IT-Alltag immer wieder benötigt werden.

Das nachfolgende „Inhaltsverzeichnis“ wird aktualisiert, sobald weitere Teile der Artikelserie hinzukommen, bis diese abgeschlossen ist.

Einleitung
Teil 1 – Was ist die Windows Registry?
Teil 2 – Aufbau der Windows Registry
Teil 3 – HKEY_CLASSES_ROOT
Teil 4 – HKEY_CURRENT_USER
Teil 5 – HKEY_LOCAL_MACHINE
Teil 6 – HKEY_CURRENT_CONFIG
Teil 7 – HKEY_USERS

Inxi – Linux Systeminformationen

Inxi ist ein interessantes, kleines Kommandozeilentool für Linux welches die Informationen verschiedener anderer Kommandozeilenwerkzeuge (fdisk, dmidecode, lspci) unter Linux kompakt darstellt.

Installation (z.Bsp.): sudo apt-get install inxi

Hilfreie Parameter für den Einstieg:

-B (Informationen zu Akku / Batterie)

-C (Informationen zu CPU)

-d (Informationen zu optischen Laufwerken)

-F (Informationen zu dem kompletten System)

-G (Informationen zur Grafikkarte)

-i(x) (Informationen zu den Netzwerkadaptern und IP-Adressen, +x = +IPv6)

-m (Informationen zum Arbeitsspeicher)

-u (Informationen zu den Partition inkl. UUIDs)

-r (Informationen zu den Paketrepositories)

-t (Informationen zu Prozessen)

-t cm10 (Top 10 Prozesse für CPU-Auslastung und RAM-Belegung)

-xxx (kann an jeden anderen Befehl angehangen werden um erweiterte Informationen zu erhalten – Beispiel: inxi -m -xxx)

Weiterführende Links:

https://wiki.ubuntuusers.de/inxi/

https://linuxundich.de/gnu-linux/inxi-inex-alternativen-zu-cpu-z/