Startvorgang beim Start oder Anmeldung ueberwachen

Startvorgang beim Start oder Anmeldung

Registrierungsschlüssel zur automatischen Ausführung

Automatisierung ist etwas feines, aber auch gefährlich. Unter Windows gibt es verschiedene Registry-Zweige, um z.B. Applikationen oder Dienste einmalig oder persistent ausführen zu lassen. Das kann nach direkt dem Boot oder einer auch Anmeldung geschehen.

Aus diesem Grund sollte man die Einträge in der Registry kennen und sich intensiv damit auseinandersetzen. Es ist wichtig zu wissen, welche Programme, Dienste oder DLLs automatisch geladen werden. Denn Angreifer machen sich diese zu Nutze, um Malware auf das System zu bringen oder Schadcode auszuführen.

Startvorgang beim Start oder Anmeldung

Anhand eines Beispiels würde ich gerne zeigen, wie einfach es ist, einen Befehl ohne Wissen des Benutzers persistent laufen zu lassen.

Im Hintergrund protokolliere ich z.B. die Anmeldezeiten aller Benutzer. Ich weiß, die stehen im Event-Log, ist ja auch nur ein Beispiel.

Dazu erstelle ich in der Registry einen neuen Eintrag unter “Run”.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]

“LogonTo”=”\”C:\\Windows\\System32\\cmd.exe\” /q /c \”echo LogonOnToServer %username% at %time% >> C:\\Temp\\LogoOn.txt\””

Startvorgang beim Start oder Anmeldung

Ab sofort wird bei jeder Anmeldung ein Skript “Befehl” ausgeführt welches die Anmeldezeiten persistent protokolliert.

Registrierungsschlüssel zur automatischen Ausführung

Wenn ein Startvorgang nur einmalig ausgeführt werden soll, dann erstellt man den Eintrag unter “RunOnce”.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]

“LogonTo”=”\”C:\\Windows\\System32\\cmd.exe\” /q /c \”echo LogonOnToServer %username% at %time% >> C:\\Temp\\LogoOn.txt\””

Die unter “RunOnce” hinterlegten Befehle werden in der Regel vor der Ausführung gelöscht. Wenn man den Eintrag erst gelöscht wissen möchte, nachdem der Befehl ausgeführt wurde, dann stellt man dem Wert ein Ausrufezeichen “!LogonTo” voran.

An den hier aufgelisteten mir bekannten Stellen, kann diese Art der automatischen Ausführungen einmalig oder persistent konfiguriert werden:

Startvorgang beim Start oder Anmeldung

# Gilt für einen definierten Benutzer
C:\Users\(Username)\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

# Gilt für alle Benutzer
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

# Werden vom System oder einer Applikation erstellt
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunonceEx
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

# Persistente Ordner die nach der Anmeldung zur Verfügung stehen
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

# Dienste die beim Start kontrolliert und ausgeführt werden können
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices

# Wird von einer GPO gesteuert und kontrolliert
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run

# Wird ausgeführt wenn sich ein Benutzer anmeldet
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows