TrackLoginEvents
VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur
instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird,
welcher unter C:\Windows\SysWOW64\cscript.exe liegt.
Dieses Skript deckt noch nicht die Windows 2012 Events ab.
Account Lockout and
Management Tools
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=18465
Diese Werkzeugkiste von Microsoft könnte
interessant sein.
Account Lockout Status (LockoutStatus.exe)
http://www.microsoft.com/download/en/details.aspx?id=15201
Was machen meine Anwender ist nur eine Frage in einem Netzwerk. Viel dringender sind Fragen, wie man Eindringlinge erkennt oder wie man Zugriffe nachverfolgen kann, die ja auf vielen Servern und Systemen passieren können. Allerdings kann ich hier kein komplettes "Auditsystem" liefern, welches Revisionssicher und fälschungssicher wäre. Das Skript TrackLoginEvents ist aus der Notwendigkeit entstanden, zu Erfahren, welche Accounts sich wo wie anmelden. Das ist z.B. erforderlich, wenn man ein Dienstkennwort ändern möchte und eigentlich nicht genau weiß, wo es denn überall eingesetzt wird. Das Skript DumpServiceAccounts hilft bei Dienstkonten schon gut aus, aber übersieht doch einige andere Anmeldedaten, die in den Tiefen von Systemen versteckt sind.
Mit TrackLoginEvents versuche ich auf Domain Controllern die Anmeldungen zu erhalten, um in der ersten Stufe eben eine Zuordnung von Anmeldungen zu Clients machen zu können. Dafür gibt es mehrere legitime Gründe, z.B.:
- Fehlerhafte Anmeldungen
Es ist schon wichtig, welche Anmeldungen fehlschlagen. Das können einfache Tippfehler von Anwendern sein aber auch eine Fehlkonfiguration von Dienstkonto oder Einbruchsversuche (Besonders bei Häufung). Aber auch Computer, die nicht mehr "richtig" in der Domäne sind (z.B.: Restore eines Image) , fallen hier auf. - Erfolgreiche Anmeldungen
Wenn das Security Log die Daten von vielen Wochen enthält, dann kann man eine sehr vollständige Liste erstellen, welches Konto sich auf welchen Systemen anmeldet. Das hilft z.B.: die Verwendung von Dienstkonten zu überwachen oder auch nachzuvollziehen wo sich ein Anwender anmeldet, um die Systeme bei einer Migration (ADMT) bei den Profilen zu berücksichtigen.
Sicher ist das Skript erst eine Grundversion, die man um weitere Events (z.B. Account Locked out) erweitern kann und je nach Event sogar eine Eskalation (z.B. Mail senden) anstoßen kann. Es ist immer von Vorteil, wenn der Helpdesk schon vor dem Anruf des Anwender schon das Problem kennt und nicht erst lange suchen muss. Der Helpdesk könnte ja auch aktiv den Anwender anrufen.
Da mit diesem Skript in Grenzen sogar Aktivitäten von Benutzern aufgezeichnet werden könnten, weise ich vorsorglich auf Datenschutz und Mitbestimmungsrichtlinien hin.
Logging aktivieren
Ehe Sie etwas auswerten, muss man Windows dazu überreden, auch etwas zu protokollieren. Das erfolgt am einfachsten in der "Default Domain Controllers Policy". Hier sind die beiden relevanten Einträge "Anmeldeversuche überwachen" und "Anmeldeereignisse überwachen".
für beide Einstellungen können Sie konfigurieren, ob nur erfolgreiche, fehlerhafte oder beide Vorgänge protokolliert werden sollen. Etwas verwirrend ist natürlich die Bezeichnung und damit die Frage, was denn nun zu aktivieren ist.
- Anmeldeereignisse überwachen
Hiermit werden die Anmeldungen auf der Maschine protokolliert, auf der die Einstellung aktiv ist. Dies hat aber keinen Einfluss auf die Domain Controller. Ein Zugriff auf einen Mitgliedsserver wird also hier nur im Eventlog des Mitgliedsserver selbst aufgeschrieben. Da dies aber auch für die "Fileserver-Funktion" (NETLOGON/SYSVOL) eines Domain Controllers gilt, erwischen Sie so schon sehr viele "normale" Anwender. - Anmeldeversuche überwachen
Diese Events erscheinen nicht im Eventlog des Servers, auf den der Anwender zugreift, sondern nur auf dem Domain Controller, welcher den Zugriff autorisiert, z.B. indem er ein Kerberos Ticket ausstellt oder der Memberserver die Anmeldung beim Domain Controller überprüft.
Danach landen im Eventlog jede Menge Events.
Die Beschränkung der Überwachung auf ausgewählte Server ist für den Server zwar hinreichend, aber liefert kein Gesamtbild. Selbst die Protokollierung auf dem DC liefert keinen vollständigen aber sehr umfangreichen Überblick über Anmeldungen im Netzwerk. für eine komplette Lösung müssten alle Security Events aller Server an einer zentralen Stelle konsolidiert werden.
Zwei Dinge sollten Sie bei der Protokollierung beachten. Zum einen sollte ihre Eventlog eine ausreichend Größe haben, damit Sie Einträge auch wirklich lesen können und sie sollten wachsam sein, wenn der Event 517 erscheint. Dieser besagt, dass jemand das Eventlog gelöscht hat.
Die Größe des Eventlogs sollten Sie auch am besten über eine Gruppenrichtlinie konfigurieren, damit alle Server einheitlich eingestellt sind.
Relevante Windows 2003 Events
Die Frage ist gar nicht so einfach zu beantworten, da Windows je nach Version mehrere Events generiert und es den klassischen "ich melde mich an "-Event so nicht gibt. Es ist schon ein unterschied, ob ich mich auf dem DC anmelde oder auf einem Client. Wenn ich auf einem Clients angemeldet bin, dann ist es noch ein unterschied, ob ich mir vom DC nur ein Kerberos-Ticket für den Zugriff auf einen anderen Server besorge oder per Netzwerk auf eine Freigabe auf dem DC selbst zugreife. Ich habe einige Zeit gesucht und mich auf den Event 540 konzentriert, auch wenn dieser erst seit Windows 2000 verfügbar ist. Wenn Sie also Windows NT4 überwachen wollten, dann wäre Event 528 besser. Ein 540er Event hat etwa folgendes Layout:
Ereignistyp: Erfolgsüberw. Ereignisquelle: Security Ereigniskategorie: An-/Abmeldung Ereigniskennung: 540 Benutzer: MSXFAQ\Administrator Computer: SRV01 Beschreibung: Erfolgreiche Netzwerkanmeldung: Benutzername: Administrator Domäne: MSXFAQ Anmeldekennung: (0x0,0x159D6BD) Anmeldetyp: 3 Anmeldevorgang: Kerberos Authentifizierungspaket: Kerberos Arbeitsstationsname: Anmelde-GUID: {2af799e2-2c94-40cb-fb15-a89f33a4619c} Aufruferbenutzername: - Aufruferdomäne: - Aufruferanmeldekennung: - Aufruferprozesskennung: - Übertragene Dienste: - Quellnetzwerkadresse: 10.1.1.10 Quellport: 0 Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie un...
Sie erkennen zum einen eine gewisse Struktur, die aber Sprachabhängig ist, so dass ein Parsen nicht ganz trivial ist. Der 528er Event ist vergleichbar aufgebaut und kann mit dem gleichen Parser behandelt werden
Ereignistyp: Erfolgsüberw. Ereignisquelle: Security Ereigniskategorie: An-/Abmeldung Ereigniskennung: 528 Benutzer: MSXFAQ\Administrator Computer: SRV01 Beschreibung: Erfolgreiche Anmeldung: Benutzername: Administrator Domäne: MSXFAQ Anmeldekennung: (0x0,0x162721E) Anmeldetyp: 2 Anmeldevorgang: User32 Authentifizierungspaket: Negotiate Name der Arbeitsstation: SRV01 Anmelde-GUID: {5f871070-97d1-ca03-2298-5e0c730d9f3a} Aufruferbenutzername: SRV01$ Aufruferdomäne: MSXFAQ Aufruferanmeldekennung: (0x0,0x3E7) Aufruferprozesskennung: 3792 Übertragene Dienste: - Quellnetzwerkadresse: 127.0.0.1 Quellport: 0 Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie un...
Da die Texte aber je nach Sprache unterschiedlich sein können, kann man eigentlich nur auf die Form gehen, d.h. basiert der Parser auf der Position und der Trennung durch das ":"-Zeichen. Interessant sind aber auch noch die fehlgeschlagenen Anmeldeversuche:
Ereignistyp: Fehlerüberw. Ereignisquelle: Security Ereigniskategorie: An-/Abmeldung Ereigniskennung: 529 Benutzer: NT-AuTORITäT\SYSTEM Computer: SRV01 Beschreibung: Fehlgeschlagene Anmeldung: Grund: unbekannter Benutzername oder falsches Kennwort Benutzername: fcarius Domäne: MSXFAQ Anmeldetyp: 3 Anmeldevorgang: NtLmSsp Authentifizierungspaket: NTLM Name der Arbeitsstation: FC-MOBIL Aufruferbenutzername: - Aufruferdomäne: - Aufruferanmeldekennung: - Aufruferprozesskennung: - Übertragene Dienste: - Quellnetzwerkadresse: 10.1.1.254 Quellport: 0 Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie un...
Besonders interessant können auch Kontoaussperrungen sein. Der Event 539 erscheint, wenn sich ein Benutzer versucht an einem gesperrten Konto anzumelden. Das wäre für einen Helpdesk oder einen SMS-Versand an den Anwender schon interessant. Viel nützlicher ist aber den eigentlichen Sperr-Event" mit der Nummer 644 zu ermitteln und darauf zu reagieren.
Ereignistyp: Erfolgsüberw. Ereignisquelle: Security Ereigniskategorie: Kontenverwaltung Ereigniskennung: 644 Benutzer: NT-AuTORITäT\SYSTEM Computer: DC1 Beschreibung: Gesperrtes Benutzerkonto: Zielkontoname: User Zieldomäne: Clientname Aufrufercomputername: DOMAIN\User Aufruferbenutzername: DC1$ Aufruferdomäne: DOMAIN Aufruferanmeldekennung: (0x0,0x3E7) Weitere Informationen über die Hilfe- und Supportdienste erhalten Sie unter http://go.microsoft.com/fwlink/events.asp.
Diese Event zeigt nämlich auch den Client, von dem die Anmeldung versucht wurde und letztlich zur Sperrung führte. Das ist ein sehr nützlicher Event um im Helpdesk "Proaktiv" zu arbeiten aber noch mehr um Einbruchversuche zu ermitteln.
Es gibt jede Menge weitere Events, die alle ähnlich aber doch nicht gleich aussehen und daher im Skript individuell zu behandeln sind.
Leider scheinen unterschiedliche Windows Versionen unterschiedliche Events zu verwenden. Die Liste ist nicht vollständig
Event-Typ | Event ID | Bedeutung | Parser |
---|---|---|---|
Erfolgsüberwachung |
528 |
Erfolgreiche Anmeldung |
|
Fehlerüberwachung |
529 |
Fehlerhafte Anmeldung, Falscher User oder Kennwort |
|
|
530 |
außerhalb der erlaubten Anmeldezeiten |
|
|
531 |
Konto deaktiviert oder ausgesperrt |
|
|
532 |
Konto ist abgelaufen |
|
|
533 |
Konto darf sich nicht an dem PC anmelden (Beschränkung am AD-Konto Users hinterlegt ) |
|
|
534 |
Falsche Anmeldetyp, z.B. wenn ein Benutzer sich nicht über das Netzwerk anmelden darf und versucht ein Laufwerk oder die Registrierung über LAN zu verbinden oder "Anmelden als Service" oder "Anmelden als Batch" |
|
|
535 |
Kennwort ist abgelaufen |
|
|
537 |
unbekannte Anmeldefehler. Mehr sollte im Text stehen |
|
|
539 |
Konto ist noch ausgesperrt, daher keine Anmeldung |
|
Erfolgsüberwachung |
540 |
Erfolgreiche Anmeldung |
|
|
644 |
Konto wurde gesperrt (Zu viele Fehlversuche) |
|
|
675 |
Versuch sich an einem bereits gesperrten Konto anzumelden |
|
|
681 |
ungültiges Kennwort |
|
Erfolgsüberwachung |
4740 |
Win2008: Account wurde gesperrt |
|
Folgende Artikel enthalten weitere Informationen.
- Maintaining and Monitoring Account Lockout
http://technet.microsoft.com/en-us/library/cc776964(WS.10).aspx - 174073 Auditing User Authentication
- 182918 Account Lockout Event also Stored in Security Event Log on Domain Controller
- 172402 Auditing Logon Failures Does Not Log Remote Failures
- 171148 Automating Detection of Logon Failures in a Windows NT Domain
- Windows 2008 Active Directory Security Audit MP (for
SCE 2010 and OpsMgr 2007 R2)
http://www.systemcentercentral.com/PackCatalog/PackCatalogDetails/tabid/145/IndexID/64476/Default.aspx - Account Lockout and Management Tools
http://www.microsoft.com/downloads/details.aspx?FamilyId=7AF2E69C-91F3-4E63-8629-B999ADDE0B9E&displaylang=en
enthält das Tool LockoutStatus.exe, welche aus allen DCs den 644-Eintrag einsammelt und als CSV-Datei für weitere Aktionen ausgibt.
Speziell aus Aussperren von Konten muss nicht allein über die Eventlogs aller DCs erfolgen, sondern kann auch über Änderungen im Active Directory nachverfolgt werden.
Noch ein Wort zum Anmeldetyp, welcher in jedem Event enthalten ist.
- 2 Interaktive Anmeldung
- 3 Netzwerk
- 4 Batch
- 5 Service
- 7 PC entsperren
- 8 Netzwerk mit unsicherem Klartextkennwort
- 9 impersonated logons
Relevante Windows 2008 Events
Dieses Skript deckt noch nicht die Windows 2008 Events ab
Seit Windows gibt es neue Events, die auszuwerten sind.
Event-Typ | Event ID | Bedeutung | Parser |
---|---|---|---|
Erfolgsüberwachung |
4624 |
An account was successfully logged on |
|
|
4625 |
An account failed to login. |
|
|
4634 |
An account was logged off |
|
|
4740 |
A User account was locked out |
|
|
4767 |
A User account was unlocked |
|
|
4768 |
A Kerberos authentication ticket (TGT) was requested |
|
|
4769 |
A Kerberos service ticket was requested. |
|
|
4776 |
The domain controller attempted to validate the credentials für an account. |
|
|
4672 |
Special privileges assigned to new logon |
|
Relevant sind hier die 4624 und 4625 um Anmeldevorgänge überhaupt zu überwachen. Als Alarmierung kann noch der Event 4740 sein, der eine Kontosperrung kennzeichnet.
- 947226 Description of security events in Windows Vista and in Windows Server 2008
Hier einige Musterevents:
EventID 4624 -Erfolgreiche Anmeldung
Diese Events sollten die Mehrzahl der Anmeldungen darstellen, wenn Sie nicht gerade einen Angriff abzuwehren haben.
Ereignistyp: Erfolgsüberw. Ereignisquelle: Microsoft-Windows-Security-Auditing Ereigniskategorie: (12544) Ereigniskennung: 4624 Datum: 30.11.2010 Zeit: 10:41:56 Benutzer: Nicht zutreffend Computer: srv01.msxfaq.de Beschreibung: An account was successfully logged on. Subject: Security ID: S-1-0-0 Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 New Logon: Security ID: S-1-5-21-330543478-484051587-682003330-1005 Account Name: fcarius Account Domain: MSXFAQ Logon ID: 0x97140f6 Logon GUID: {004FFC01-84AA-6608-6312-6501C0BD37D8} Process Information: Process ID: 0x0 Process Name: - Network Information: Workstation Name: Source Network Address: - Source Port: - Detailed Authentication Information: Logon Process: Kerberos Authentication Package: Kerberos Transited Services: - Package Name (NTLM only): - Key Length: 0 nachfolgende noch eine Erklärung der Felder
EventID 4634 - erfolgreiche Abmeldung
Auch diese Events gibt es wenngleich sie seltener sind. Eine Anmeldung ist immer erforderlich aber wenn ein PC aus dem WLAN-Bereich verschwindet, in den Schalfmode geht o.ä. kann er sich nicht mehr abmelden.
Ereignistyp: Erfolgsüberw. Ereignisquelle: Microsoft-Windows-Security-Auditing Ereigniskategorie: (12545) Ereigniskennung: 4634 Datum: 30.11.2010 Zeit: 11:23:29 Benutzer: Nicht zutreffend Computer: srv01.msxfaq.de Beschreibung: An account was logged off. Subject: Security ID: S-1-5-21-330543478-484051587-682003330-1005 Account Name: fcarius Account Domain: msxfaq.de Logon ID: 0x9aa8517 Logon Type: 3
Event 4740 - Konto locked out
Die "Konto gesperrt"-Meldungen landen alle auf dem PDC-Emulator einer Domäne.
Log Name: Security Source: Microsoft-Windows-Security-Auditing Date: 15.03.2018 18:27:09 Event ID: 4740 Task Category: User Account Management Level: Information Keywords: Audit Success User: N/A Computer: DC01.msxfaq.de Description: A User account was locked out. Subject: Security ID: SYSTEM Account Name: DC01$ Account Domain: MSXFAQ Logon ID: 0x3e7 Account That Was Locked Out: Security ID: MSXFAQ\test Account Name: test Additional Information: Caller Computer Name:
Leider enthalten diese Logs nicht immer die Information, auf welchem Client der Anmeldeversuch stattgefunden hat. Dazu müssen Sie wohl oder übel die Logs der Clients durchsuchen.
Aber schon die Lockout-Meldungen können natürlich erfasst und damit auch "gezählt" werden.
# Einsammlen der "Account Lockout Meldungen $pdc=(Get-ADDomain).pdcemulator Get-Winevent ` -FilterHashTable @{LogName = "Security"; ID = 4740; Providername="Microsoft-Windows-Security-Auditing"} ` -ComputerName $pdc ` | %{$array = ([xml]$_.ToXml()).event.eventdata.data $result = $_ | select (($array.name)+"timecreated"+"message"+"ProviderName"+"id") foreach ($item in $array){ try{$result.([string]$item.name) = [string]$item.'#text'} catch{} } $result }
- Diagnosing Account Lockout in Active
Directory
https://www.eventtracker.com/blog/2015/december/diagnosing-account-lockout-in-active-directory/
Event 4625 - An account failed to log on
Mit diesen Meldungen protokolliert Windows eine fehlerhafte Anmeldung:
Log Name: Security Source: Microsoft-Windows-Security-Auditing Date: 15.03.2018 07:12:56 Event ID: 4625 Task Category: Logon Level: Information Keywords: Audit Failure User: N/A Computer: DC01.msxfaq.de Description: An account failed to log on. Subject: Security ID: NULL SID Account Name: - Account Domain: - Logon ID: 0x0 Logon Type: 3 Account For Which Logon Failed: Security ID: NULL SID Account Name: Administrator Account Domain: PC1 Failure Information: Failure Reason: Unknown User name or bad password. Status: 0xc000006d Sub Status: 0xc000006a Process Information: Caller Process ID: 0x0 Caller Process Name: - Network Information: Workstation Name: PC1 Source Network Address: 192.168.178.228 Source Port: 56986 Detailed Authentication Information: Logon Process: NtLmSsp Authentication Package: NTLM Transited Services: - Package Name (NTLM only): - Key Length: 0 This event is generated when a logon request fails. It is generated on the computer where access was attempted. The Subject fields indicate the account on the local system which requested the logon. This is most commonly a service such as the Server service, or a local process such as Winlogon.exe or Services.exe. The Logon Type field indicates the kind of logon that was requested. The most common types are 2 (interactive) and 3 (network). The Process Information fields indicate which account and process on the system requested the logon. The Network Information fields indicate where a remote logon request originated. Workstation name is not always available and may be left blank in some cases. The authentication information fields provide detailed information about this specific logon request. - Transited services indicate which intermediate services have participated in this logon request. - Package name indicates which sub-protocol was used among the NTLM protocols. - Key length indicates the length of the generated session key. This will be 0 if no session key was requested.
Leider werden diese Meldungen nicht zum PDC-Emulator gesendet sondern auf dem System geloggt, auf dem die Anmeldung fehlgeschlagen ist. Sie kommen also nicht umhin auf den Systemen selbst nachzuschauen.
get-winevent ` -FilterHashTable @{LogName = "Security"; ID = 4625; Providername="Microsoft-Windows-Security-Auditing"} ` | %{$array = ([xml]$_.ToXml()).event.eventdata.data $result = $_ | select (($array.name)+"timecreated"+"message"+"ProviderName"+"id") foreach ($item in $array){ try{$result.([string]$item.name) = [string]$item.'#text'} catch{} } $result }
Ein gehäuftes Auftreten dieser Meldungen kann als Zeichen für Rate-Versuche gelten.
Event 4776 - The computer attempted to validate the credentials for an account
Besonders angetan hat es mir der Event 4776, da er sehr ausführlich viele Anmeldungen zusammenfasst und im Datenbereich ein Error-Code hinterlegt ist:
Log Name: Security Source: Microsoft-Windows-Security-Auditing Date: 10.08.2016 17:59:35 Event ID: 4776 Task Category: Credential Validation Level: Information Keywords: Audit Success User: N/A Computer: DC01.UCLABOR.DE Description: The computer attempted to validate the credentials for an account. Authentication Package: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 Logon Account: administrator Source Workstation: Hyper-V014 Error Code: 0x0 Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" /> <EventID>4776</EventID> <Version>0</Version> <Level>0</Level> <Task>14336</Task> <Opcode>0</Opcode> <Keywords>0x8020000000000000</Keywords> <TimeCreated SystemTime="2017-08-10T15:59:35.481902400Z" /> <EventRecordID>27321544</EventRecordID> <Correlation /> <Execution ProcessID="504" ThreadID="636" /> <Channel>Security</Channel> <Computer>DC01.UCLABOR.DE</Computer> <Security /> </System> <EventData> <Data Name="PackageName">MICROSOFT_AUTHENTICATION_PACKAGE_V1_0</Data> <Data Name="TargetUserName">administrator</Data> <Data Name="Workstation">Hyper-V014</Data> <Data Name="Status">0x0</Data> </EventData> </Event>
Der Error-Code hat folgende Bedeutung:
Hex Code | Bedeutung |
---|---|
0xC000006A |
An invalid attempt to login has been made by the following user. |
0xC0000064 |
User name does not exist |
0xC000006A |
User name is correct but the password is wrong |
0xC0000234 |
User is currently locked out |
0xC0000072 |
account is currently disabled |
0xC000006F |
User tried to logon outside his day of week or time of day restrictions |
0xC0000070 |
workstation restriction |
0xC0000193 |
account expiration |
0xC0000071 |
expired password |
0xC0000224 |
User is required to change password at next logon |
0xC0000225 |
evidently a bug in Windows and not a risk |
0xC0000234 |
The user account has been automatically locked because too many invalid logon attempts or password change attempts have been requested |
- 4776(S, F): The computer attempted to validate the credentials for an
account.
https://docs.microsoft.com/en-us/windows/device-security/auditing/event-4776 - 4776: The domain controller attempted to validate the credentials for an
account
https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventID=4776 - IIS Authentication failed on locally hosted website with custom/alternate
FQDN
https://outhereinthefield.wordpress.com/2015/02/24/iis-authentication-failed-on-locally-hosted-website-with-customalternate-fqdn/ - Account Policy Settings
http://technet.microsoft.com/en-us/library/cc757692(v=WS.10).aspx
Skript
Das Skript ist relativ einfach gestrickt und verbindet sich mittels WMI auf den lokalen Server und liest das Security Eventlog aus. Per Default liest es das bestehende Eventlog aus, schreibt die Daten in eine CSV-Datei und beendet sich dann wieder. Alternativ kann man im Skript über Konstanten einen Monitorbetrieb aktivieren, damit das Skript aktiv auf neue Events wartet. Das macht Sinn, wenn Sie im Skript weiteren Code addiert haben um beim Eintreffen eines bestimmten Events (z.B. Anmeldung eines Dienstkontos) eine Mail bekommen oder andere Aktionen ausgelöst werden sollen.
trackloginevents.1.1.vbs
Nach dem Download als VBS-Datei umbenennen und auf dem Server ablegen
Aufruf: CSCRIPT trackloginevents.1.1.vbs
Das Skript schreibt ein Log-File für die Fehlersuche, welches Sie später natürlich reduzieren oder ganz deaktivieren sollten. Die Events selbst landen in einer CSV-Datei, die Sie einfach mit Excel oder anderen Programmen verwenden können.
Denkbar ist auch die direkte Weitergabe an z.B. einen SQL-Server. Das Skript liegt ja im Source Code vor.
Trigger
Schon seit Windows 2003 gibt es das Programm "EventTriggers", mit welchem auf bestimmte Events entsprechende Aktionen ausgelöst werden können. Seit Windows 2008 kann dies direkt über den Taskmanager durchgeführt werden.
Sobald also nun ein 644-Event im Security-Eventlog dieses Servers erscheint, kann eine Aktion ("Programm starten", "E-Mail senden", "Messagebox anzeigen") ausgelöst werden. Leider konnte ich nicht ermitteln, ob der Taskmanager den auslösenden Event an das gestartet Programm weiter gibt. Es bleibt also die Programm überlassen, nach dem Start im Eventlog nach seinem Auslöser zu suchen. Zudem müsste so eine Logik natürlich auf jedem DC installiert werden.
- Task Scheduler 2.0
http://msdn.microsoft.com/en-us/library/bb756979.aspx - Developing für Task Scheduler 2.0
http://msdn.microsoft.com/en-us/library/bb756903.aspx
enthält ein C++-Beispiel um eine Mail zu senden, wenn ein Event auftritt.
PowerShell Version?
Ich plane die nächste Version als PowerShell Skript zu schreiben. Bis dahin hier schon ein paar Links
- PS Eventlog
- Use PowerShell to Find the Location of a Locked-Out User
https://blogs.technet.microsoft.com/heyscriptingguy/2012/12/27/use-powershell-to-find-the-location-of-a-locked-out-User/ - Use PowerShell to Find Locked-Out User Accounts
ttps://blogs.technet.microsoft.com/heyscriptingguy/2011/08/31/use-powershell-to-find-locked-out-User-accounts/ - Get-WinEvent
http://technet.microsoft.com/en-us/library/dd367894.aspx - Hey, Scripting Guy! How Can I Be Notified When a
Process Begins?
http://blogs.technet.com/b/heyscriptingguy/archive/2009/01/19/how-can-i-be-notified-when-a-process-begins.aspx - Build Windows Event Log Watcher Service Process to
Export Event Log Entries as RSS feed
http://www.siccolo.com/Articles/CodeProject/LogWatcher_RSS_feed/build_log_watcher_rss_feed.html - Remote Event Log Montior/Watcher (using TCP in .NET)
http://www.siccolo.com/Articles/CodeProject/Build_Event_Log_Watcher/how-to-Build_Event_Log_Watcher.html - How to
Build Simple Event Log Montior/Watcher (using TCP in .NET)
http://www.codeproject.com/KB/vb/BuildEventLogMonitor.aspx - Use Windows Management Instrumentation (WMI) - Win32_NTLogEvent and
ManagementEventWatcher - to Build Windows Event Log Watcher Service Process to
Export Event Log Entries as RSS feed
http://www.siccolo.com/Articles/CodeProject/LogWatcher_RSS_feed/build_log_watcher_rss_feed_using_WMI.html -
How to Build Remote Event Log Montior/Watcher (using TCP in .NET)
http://www.siccolo.com/Articles/CodeProject/Build_Event_Log_Watcher/how-to-Build_Event_Log_Watcher.html
Kommerzielle Tools
Das Feld des "Einsammelns von Security und Audit-Events" wird natürlich von verschiedenen Herstellern beackert. Teilweise komplett kommerziell, teilweise als "Lite-Version" sogar kostenfrei oder für kleines Geld. Die Links hier können keinen Marktüberblick geben.
- Auditing
- About Audit Collection
Services (ACS) in Operations
Manager 2007
http://technet.microsoft.com/en-us/library/bb381373.aspx - Blackbird Last Login
Reporter
http://www.blackbird-group.com/products/blackbird-last-login-reporter
http://www.blackbird-group.com/products/community - Und viele weitere
Weitere Links
- DoS mit Account Lockout
- Account Lockout mit Docker
- Auditing
- Exit-Management
- DumpServiceAccounts
- Überwachung von Exchange - Eventlog
- DoS mit Account Lockout
- 174073 Auditing User Authentication
- 182918 Account Lockout Event also Stored in Security Event Log on Domain Controller
- 308427 How to view and manage event logs in Event Viewer in Windows XP
-
Use Windows Event Forwarding to help with intrusion detection
https://docs.microsoft.com/en-us/windows/security/threat-protection/use-windows-event-forwarding-to-assist-in-intrusion-detection -
Tracking User Logon Activity using Logon Events
http://blogs.msdn.com/b/ericfitz/archive/2008/08/20/tracking-User-logon-activity-using-logon-events.aspx - Tracking Logon and Logoff Activity in Windows 2000
http://technet.microsoft.com/en-us/library/bb742436.aspx - Interactive Logon Tools and Settings
http://technet.microsoft.com/en-us/library/cc787053.aspx - Interpreting the NT Security Log - use the Security Log to track User's activities
http://technet.microsoft.com/en-us/library/cc751315.aspx - Deciphering Account Logon Events
http://blogs.msdn.com/ericfitz/archive/2005/08/04/447934.aspx - Audit Account Logon Events
http://technet.microsoft.com/en-us/library/bb742435.aspx - Minimizing Directory Service Audit Event Noise
http://blogs.msdn.com/ericfitz/ - Auditing: The difference between audit account logon event and
audit logon event
http://geekswithblogs.net/woodenshoe/archive/2005/08/30/51642.aspx - Forensic Log Parsing with Microsoft's LogParser
http://www.securityfocus.com/infocus/1712 - Account Lockout Status (LockoutStatus.exe)
https://www.microsoft.com/en-us/download/details.aspx?id=15201 - http://www.comp.nus.edu.sg/~aho/kb/eventlog/eventlog.txt
- Monitor The Security Eventlog In Real Time...
http://cwashington.netreach.net/depo/view.asp?Index=747 - How to: Trace the source of a bad password and account lockout
in AD
https://community.spiceworks.com/how_to/48758-trace-the-source-of-a-bad-password-and-account-lockout-in-ad#how_to_comment_38706 - Account Lockout Examiner ($)
http://www.netwrix.com/account_lockout_examiner.html
Kommerzielle Software zum Überwachen von "gesperrten Accounts". - WMI Quota
http://blogs.technet.com/b/askperf/archive/2008/09/16/memory-and-handle-quotas-in-the-wmi-provider-service.aspx
Trifft bei Auswertung von alten Events - Use Get-ADUser to Find Inactive AD Users
http://www.windowsitpro.com/article/windows-power-tools/getadUser-find-inactive-ad-Users-141486 - Getting Last Logon Times für Members of A Group ADSI Edition
https://www.angryadmin.co.uk/?p=441 - Troubleshoot AD Account Lockouts with NetLogon Logging
http://tritoneco.com/2013/05/21/troubleshoot-ad-account-lockouts-with-netlogon-logging/ - Netwrix Account Lockout Examiner
https://www.netwrix.com/account_lockout_examiner.html - How to: Identify the source of Account Lockouts in Active
Directory
https://community.spiceworks.com/how_to/128213-identify-the-source-of-account-lockouts-in-active-directory - Quick Forensics of Windows Event Logs (DeepBlueCLI)
https://github.com/sans-blue-team/DeepBlueCLI - Chainsaw: Rapidly Search and Hunt through Windows Forensic
Artefacts
https://github.com/WithSecureLabs/chainsaw - Quick Forensics of Windows Event Logs (DeepBlueCLI)
https://www.youtube.com/watch?v=G8XjSO_eshc