Fehlerhafte Logins in Windows-Umgebungen aufspüren

📄 Inhalt

Einleitung

Als Windows-Administrator kennen Sie sicherlich das Szenario: Plötzlich häufen sich fehlerhafte Anmeldeversuche in Ihrem Active Directory, die Alarmsysteme schlagen an und melden potenziell einen Brute-Force-Angriff. Doch oft steckt hinter diesen Fehlalarmen kein Angreifer, sondern ein technisches Problem – etwa ein Dienst mit abgelaufenem Passwort oder eine fehlerhafte Anwendung.

In diesem Artikel zeigen wir, wie Sie fehlerhafte Anmeldeversuche systematisch untersuchen, deren Quelle identifizieren und das zugrundeliegende Problem beheben können.

Die Herausforderung fehlgeschlagener Anmeldeversuche

Fehlgeschlagene Anmeldeversuche stellen ein doppeltes Problem dar. Einerseits könnten sie auf einen echten Angriff hindeuten – schließlich nutzen über 90 % aller Hackingangriffe das Active Directory als Angriffsvektor. Andererseits können sie auch vollkommen harmlose Ursachen haben:

  • Dienste mit abgelaufenen oder geänderten Passwörtern
  • Geplante Tasks mit falschen Anmeldeinformationen
  • Alte Skripte, die veraltete Anmeldedaten verwenden
  • Fehlkonfigurierte Anwendungen
 

Das Dilemma: Ignorieren Sie die Fehlversuche, riskieren Sie, einen echten Angriff zu übersehen. Behandeln Sie jedoch jeden Fehlalarm als Sicherheitsvorfall, verschwenden Sie wertvolle Zeit und Ressourcen.

Schritt 1: Die richtigen Ereignisse im Event Log aktivieren und sammeln

Bevor Sie mit der Fehlersuche beginnen können, müssen Sie sicherstellen, dass Sie die notwendigen Ereignisprotokolle erfassen. 

Dazu sollten Sie die folgenden Auditrichtlinien als Gruppenrichtlinie für Domaincontroller erstellen:

  1. Öffnen Sie den Gruppenrichtlinien-Editor (gpedit.msc)
  2. Navigieren Sie zu: Computerkonfiguration > Richtlinie > Windows-Einstellungen > Sicherheitseinstellungen > Lokale Richtlinien > Überwachungsrichtlinie
  3. Aktivieren Sie folgende Einstellungen:
    • „Anmeldeversuche überwachen“ (Fehler)
    • „Anmeldeereignisse überwachen“ (Fehler)
    • „Kontenverwaltung überwachen“ (Erfolg)
 

Die wichtigsten Event-IDs für Anmeldefehler:

  • Event ID 4625: Fehlgeschlagene Anmeldung
  • Event ID 4771: Kerberos-Vorauthentifizierung fehlgeschlagen
  • Event ID 4776: NTLM-Authentifizierung
  • Event ID 4768: Kerberos-Ticketanforderung (TGT)

Schritt 2: Die Quelle identifizieren - Von welchem Computer kommen die Fehler?

Mit aktivierter Überwachung können Sie nun die Quelle der fehlgeschlagenen Anmeldeversuche identifizieren. Im Ereignisprotokoll finden Sie unter Event ID 4625 im Protokoll „Sicherheit“ folgende wichtige Informationen:

  • Quellnetzwerkadresse: Die IP-Adresse des Computers, von dem die Anmeldung versucht wurde
  • Quellport: Der Netzwerkport, der für die Verbindung verwendet wurde
  • Prozessname: Falls verfügbar, der Prozess, der die Anmeldung initiiert hat
  • Fehlercode: Der spezifische Fehlergrund (z.B. falsches Passwort, Konto gesperrt) 
  • Anmeldetyp: Gibt an, wie die Anmeldung versucht wurde (z.B. interaktiv, Netzwerk, Dienst)
    • Typ 2: Interaktive Anmeldung
    • Typ 3: Netzwerkanmeldung
    • Typ 4: Batchanmeldung
    • Typ 5: Dienstanmeldung
    • Typ 7: Entsperrung
    • Typ 8: NetworkCleartext
    • Typ 10: RemoteInteractive (RDP) 
  •  

Mehr Details zu den Fehlercodes und Anmeldetypen finden sich in der Microsoft-Dokumentation: https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/auditing/event-4625

 

Suchen Sie nach Mustern in den fehlgeschlagenen Anmeldungen:

  • Kommen sie alle vom gleichen Computer?
  • Treten sie zu bestimmten Zeitpunkten auf?
  • Wird immer das gleiche Konto verwendet?
  •  

Alternativ können Sie auch mit der PowerShell gezielt nach den Ereignissen suchen und diese filtern

				
					# Suche nach fehlgeschlagenen Anmeldeversuchen in den letzten 24 Stunden
Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    ID = 4625
    StartTime = (Get-Date).AddHours(-24)
} | Select-Object TimeCreated, 
    @{Name='Username';Expression={$_.Properties[5].Value}},
    @{Name='Domain';Expression={$_.Properties[6].Value}},
    @{Name='SourceComputer';Expression={$_.Properties[13].Value}},
    @{Name='SourceIP';Expression={$_.Properties[19].Value}},
    @{Name='Status';Expression={$_.Properties[7].Value}},
    @{Name='FailureReason';Expression={$_.Properties[8].Value}}
				
			

Schritt 3: Ursachenanalyse auf dem identifizierten Computer

Nachdem Sie den Computer identifiziert haben, von dem die fehlgeschlagenen Anmeldeversuche stammen, müssen Sie herausfinden, welcher Dienst oder welche Aufgabe diese verursacht.

 

Dienste überprüfen
  1. Öffnen Sie die Dienste-Konsole (services.msc)
  2. Überprüfen Sie alle Dienste, die mit Domänenkonten oder Dienstkonten laufen:
    • Klicken Sie mit der rechten Maustaste auf jeden Dienst und wählen Sie „Eigenschaften“
    • Überprüfen Sie den Reiter „Anmelden“
    • Notieren Sie alle Dienste, die mit Domänenkonten konfiguriert sind

 

Geplante Tasks überprüfen
  1. Öffnen Sie den Task Scheduler (taskschd.msc)
  2. Durchsuchen Sie alle Aufgaben und prüfen Sie die Registerkarte „Allgemein“ und „Ausführen als“
  3. Identifizieren Sie Tasks, die mit Domänenkonten ausgeführt werden
  4. Überprüfen Sie die Ausführungshistorie dieser Tasks

 

Anwendungsspezifische Konfigurationen überprüfen

Viele Anwendungen speichern Anmeldeinformationen in eigenen Konfigurationsdateien:

  • Web.config-Dateien bei .NET-Anwendungen
  • Konfigurationsdateien in den Programmverzeichnissen
  • Verbindungszeichenfolgen in Anwendungsdatenbanken

Schritt 4: Automatisierte Überwachung einrichten

Um künftige Probleme schneller zu identifizieren und echte Angriffe von technischen Problemen zu unterscheiden, sollten Sie eine automatisierte Überwachung einrichten.

PowerShell-Skript für regelmäßige Überprüfung

Hier ein einfaches PowerShell-Skript, das Sie als geplante Aufgabe einrichten können:

				
					# Fehlerhafte Anmeldeversuche überwachen
$events = Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    ID = 4625
    StartTime = (Get-Date).AddMinutes(-15) # Letzte 15 Minuten
}

# Gruppieren nach Quell-IP
$groupedEvents = $events | Group-Object {$_.Properties[19].Value}

foreach ($group in $groupedEvents) {
    $count = $group.Count
    $sourceIP = $group.Name
    
    # Wenn mehr als 5 Fehler von der gleichen IP in 15 Minuten
    if ($count -gt 5) {
        # Prüfen, ob es sich um einen internen oder externen Computer handelt
        if ($sourceIP -match "^(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)") {
            # Interne IP - wahrscheinlich technisches Problem
            Write-Output "WARNUNG: $count fehlgeschlagene Anmeldeversuche von interner IP $sourceIP"
            # Hier könnten Sie E-Mail-Benachrichtigungen an das IT-Team senden
        } else {
            # Externe IP - möglicher Angriff
            Write-Output "ALARM: $count fehlgeschlagene Anmeldeversuche von externer IP $sourceIP"
            # Hier könnten Sie Sicherheitsalarme auslösen
        }
    }
}
				
			
SEC AUDITOR als umfassende Lösung

Während kostenlose Tools und selbst entwickelte Skripts einen guten Einstieg bieten, kann eine spezialisierte Lösung wie SEC AUDITOR den Prozess deutlich verbessern. Die Plattform bietet:

  • Echtzeit-Monitoring: SEC AUDITOR überwacht kontinuierlich alle Aktivitäten im Active Directory und erkennt Anomalien sofort.
  • Forensische Analyse: Alle Änderungen werden revisionssicher gespeichert, sodass eine genaue Nachverfolgung möglich ist.
  • Benachrichtigungen: Die Lösung benachrichtigt bei Bedrohungen und erkannten Fehlkonfigurationen
  • Detaillierte Hilfestellung: Für jedes erkannte Problem erhalten Sie konkrete Anweisungen zur Behebung.
Best Practices

Die Untersuchung fehlerhafter Anmeldeversuche ist ein wichtiger Bestandteil der Windows-Administration und Sicherheitsüberwachung. Mit den richtigen Tools und Verfahren können Sie die Ursachen schnell identifizieren und beheben.

  1. Aktivieren Sie die erweiterte Protokollierung: Stellen Sie sicher, dass Sie alle notwendigen Ereignisse erfassen.
  2. Überprüfen Sie Dienste und Tasks regelmäßig: Führen Sie regelmäßige Audits durch, um veraltete Anmeldeinformationen zu identifizieren.
  3. Verwenden Sie zentrale Logging-Lösungen: Sammeln Sie Ereignisse von allen Systemen an einem zentralen Ort.
  4. Implementieren Sie eine automatisierte Differenzierung: Unterscheiden Sie zwischen technischen Problemen und echten Angriffen.
  5. Dokumentieren Sie bekannte Probleme: Führen Sie eine Wissensdatenbank mit bekannten Ursachen und Lösungen.

 

Mit diesen Techniken können Sie nicht nur die Ursachen fehlerhafter Anmeldeversuche effizienter identifizieren, sondern auch Ihre gesamte Active-Directory-Sicherheit verbessern und die Wahrscheinlichkeit von Fehlalarmen reduzieren.