So überprüfen Sie den Anmeldeverlauf von Benutzern in Active Directory mithilfe von PowerShell

Wie man die Anmeldeaktivitäten von Benutzern in Active Directory verfolgt (ohne dabei verrückt zu werden)

Zu wissen, wann und wo sich Benutzer anmelden, ist entscheidend, insbesondere bei der Behebung ungewöhnlicher Kontoprobleme oder der Überwachung der Aktivitäten. Active Directory speichert jedoch nicht einfach wie eine Überwachungskamera einen Verlauf aller Anmeldungen. Um die benötigten Informationen zu erhalten, müssen Richtlinien und Skripte eingerichtet werden, und selbst dann kann es etwas knifflig sein, alles zusammenzutragen. Dieser Leitfaden hilft Ihnen, den Überblick zu behalten – von der Konfiguration von Überwachungsrichtlinien bis zum Abrufen von Protokollen mit PowerShell. Das Ziel? Ein möglichst vollständiges Bild der Benutzeraktivitäten im Zeitverlauf, einschließlich Anmeldezeiten, Quellrechner und sogar der verwendeten Authentifizierungsmethoden. Wenn Sie sich jemals gefragt haben: „Wann hat sich dieser Benutzer zuletzt angemeldet?“ oder „Von welchem ​​Rechner kam er?“ und nur eine Handvoll verdächtiger Protokolleinträge gefunden haben, ist dieser Leitfaden sehr hilfreich. Die richtige Einrichtung ermöglicht es Ihnen, nützliche Informationen aus den Protokollen Ihrer Domänencontroller zu extrahieren, ohne Hunderte von Ereignissen manuell durchsuchen zu müssen. Und ja, es ist schon etwas mühsam, alles zu synchronisieren – aber es lohnt sich, wenn man dann diese umfassende Protokollhistorie in seinen Skripten sieht.

Wie man sich einen klaren Überblick über die Benutzeranmeldungen in Active Directory verschafft

Konfigurieren der Benutzeranmeldungsüberwachungsrichtlinie in Active Directory

Als Erstes müssen Sie Windows anweisen, alle Anmeldeereignisse *aufzuzeichnen*, anstatt sie zu ignorieren. Windows macht das nämlich unnötig kompliziert. Sie müssen eine Überwachungsrichtlinie in der Gruppenrichtlinienverwaltung einrichten.– Öffnen Sie GPMC.msc (die Verwaltungskonsole für Domänen-GPOs).– Erstellen Sie ein neues GPO (z. B.„Benutzeranmeldeüberwachung“) und verknüpfen Sie es mit Ihrer Domänenstammdomäne – nicht mit der Standardrichtlinie. Das ist sicherer, glauben Sie mir.– Navigieren Sie zu: Computerkonfiguration → Richtlinien → Windows-Einstellungen → Sicherheitseinstellungen → Erweiterte Überwachungsrichtlinienkonfiguration → Überwachungsrichtlinien → An-/Abmeldung.– Aktivieren Sie sowohl Anmeldung überwachen als auch Andere An-/Abmeldeereignisse überwachen. Achten Sie darauf, dass Sie Erfolg und optional Fehler auswählen. Warum? Weil Sie jede erfolgreiche Anmeldung protokollieren möchten, Fehler aber auch auf missbräuchliche Anmeldeinformationen oder Brute-Force-Angriffe hinweisen können. Wechseln Sie außerdem zu Kontoanmeldung → Kerberos-Authentifizierungsdienst überwachen und aktivieren Sie Erfolg. Kerberos-Ereignisse sind besonders wertvoll, um Anmeldungen zu identifizieren, die nicht standardmäßig in den Anmeldeereignissen erfasst werden. Speichern Sie die Gruppenrichtlinie und verteilen Sie sie anschließend mit ** gpupdate /forceauf Ihren Domänencontrollern, um die Übertragung zu beschleunigen. Es kann einige Minuten dauern, bis diese Einstellungen übernommen werden. Sobald dies geschehen ist, generiert jede erfolgreiche Benutzeranmeldung die Ereignis-ID4624im Sicherheitsprotokoll. Die Details umfassen den Benutzer, den Standort und die Art der Anmeldung (lokal, Netzwerk, Remote usw.).Beachten Sie: Das FeldAnmeldetypgibt an, ob es sich um eine lokale Anmeldung, eine Netzwerkanmeldung, eine Remote-RDP-Anmeldung oder etwas anderes handelt. Beispiele:Typ 2– Lokale Desktop-Anmeldung.Typ 3– Netzwerkanmeldung/Anmeldung an einem freigegebenen Ordner.Typ 10– Interaktive Remote-Anmeldung, z. B.RDP.Typ 7– Sitzungsentsperrung nach dem Sperrbildschirm. Wenn Sie noch mehr Einblicke gewinnen möchten, hilft Ihnen die Verfolgung der Ereignis-ID4768** (Kerberos Ticket Granting Ticket-Anfragen) dabei, Anmeldungen zu erkennen, die im Hintergrund stattfinden – eine nützliche Funktion für Audits.

Abrufen von Anmeldedaten mit PowerShell (weil manuell einfach nicht ausreicht)

Sobald Ihre Überwachungsprotokolle laufen, wie können Sie dann tatsächlich sehen, wer sich wann und von welchem ​​Rechner aus angemeldet hat? PowerShell ist die Lösung. Aber Vorsicht: Die Verwendung von Get-EventLog ist nicht gerade schnell, insbesondere bei großen Protokolldateien oder vielen Domänencontrollern in Ihrer Domäne. Auf einem einzelnen Rechner funktioniert es zwar, aber es kann sehr langsam sein – vergleichbar mit dem Zählen von Sirup. Deshalb schwören viele auf Get-WinEvent; es ist schneller und flexibler. Hier ist ein einfaches, praxisnahes Beispiel, um Anmeldeereignisse eines bestimmten Benutzers von allen Domänencontrollern der letzten Tage abzurufen: PowerShell # Zu prüfender Benutzer $checkuser=’*jbrown*‘ # bei Bedarf ersetzen # 2 Tage zurückblicken $startDate = (Get-Date).AddDays(-2) # Liste aller Domänencontroller abrufen $DCs = Get-ADDomainController -Filter * $results = foreach ($DC in $DCs) { # Ereignisse mit der ID 4624 (erfolgreiche Anmeldung) suchen $events = Get-WinEvent -ComputerName $DC. HostName -FilterHashtable @{LogName=’Security‘;Id=4624;StartTime=$startDate} -ErrorAction SilentlyContinue foreach ($ev in $events) { # XML konvertieren, um Daten zu extrahieren $xml = [xml]$ev. ToXml() $user = $xml. Event. EventData. Data[5].’#text‘ # Ziel Benutzername $logonTypeCode = $xml. Event. EventData. Data[8].’#text‘ # Anmeldetyp if ($user -like $checkuser) { [PSCustomObject]@{ Time = $ev. TimeCreated User = $user DC = $DC. Name LogonType = switch ($logonTypeCode) { 2 {‚Lokal interaktiv‘} 3 {‚Netzwerk‘} 7 {‚Entsperren‘} 10 {‚Remote-Interaktiv RDP‘} default {‚Andere‘} } SourceIP = $xml. Event. EventData. Data[18].’#text‘ } } } } # Bei Bedarf als CSV exportieren $results | Export-Csv -Path „C:\Logs\UserLogonHistory.csv“ -NoTypeInformation Dies gibt eine Liste aller erfolgreichen Anmeldungen des Benutzers, des jeweiligen Rechners und des verwendeten Domänencontrollers aus. So können Sie sehen, ob sich jemand von seinem Büro-PC oder über eine RDP-Sitzung angemeldet hat. Hinweis: Da Get-EventLog langsam sein kann, Get-WinEventist der Wechsel zu für größere Umgebungen oft besser geeignet. Außerdem trägt das Senden von Protokollen an einen zentralen Protokollsammler (wie Graylog oder Splunk) dazu bei, dass alles langfristig durchsuchbar bleibt.

Beobachtung von Kerberos-Ereignissen für einen leichten Ansatz

Sie möchten schnell einen Blick auf die letzten Anmeldungen werfen – insbesondere, wenn Kerberos Ihre primäre Authentifizierungsmethode ist? Die Ereignis-ID 4768 kennzeichnet eine Kerberos-Ticketanfrage. Dies ist in der Regel effizienter, da dadurch alle irrelevanten Dienstzugriffe herausgefiltert werden. Dieses Skript ruft beispielsweise Benutzeranmeldeinformationen basierend auf Kerberos-TGT-Anfragen des Vortages ab: powershell $allUserHistory = @() $startDate = (Get-Date).AddDays(-1) $DCs = Get-ADDomainController -Filter * foreach ($DC in $DCs) { $events = Get-EventLog -LogName Security -InstanceID 4768 -after $startDate -ComputerName $DC. HostName foreach ($ev in $events) { # Ereignisdaten-XML parsen $xml = [xml]$ev. ToXml() $user = $xml. Event. EventData. Data[0].’#text‘ $ip = $xml. Event. EventData. Data[9].’#text‘ $allUserHistory += [PSCustomObject]@{ UserName = $user IP = $ip Date = $ev. TimeGenerated DomainController = $DC. Name } } } $allUserHistory Dies zeigt nicht alle Anmeldungen an, sondern nur die von Kerberos-Tickets sind eine schnelle Möglichkeit, die kürzlich erfolgte Authentifizierung ohne unnötige Protokollierung zu überprüfen. Beachten Sie, dass Benutzer in reinen NTLM-Umgebungen hier nicht angezeigt werden. Denken Sie daran: Für die langfristige Nachverfolgung ist die zentrale Protokollierung und Automatisierung zuverlässiger als die Suche in den lokalen Ereignisprotokollen jedes einzelnen Rechners. Für schnelle Ad-hoc-Prüfungen oder kleinere Umgebungen ist diese Methode jedoch praktisch.– Hoffentlich vermittelt Ihnen dies einen guten Überblick darüber, wie Sie Benutzeranmeldungen problemlos nachverfolgen können. Sobald diese Richtlinien festgelegt sind und die Daten in Ihre Skripte fließen, erhalten Sie die benötigten Informationen viel einfacher, ohne jedes Mal die Protokolle manuell prüfen zu müssen. Denken Sie daran: Eine gute Vorbereitung zahlt sich aus, insbesondere bei der Arbeit mit Windows-Sicherheitsprotokollen. Viel Erfolg!