DNS Server Analytical Filter
DNS Logs filtern
Für etwaige Recherchezwecke ist es manchmal sinnvoll, die Analytischen und Debugprotokolle in der Ereignisanzeige einzublenden.
Protokollname: Microsoft-Windows-DNS-Server/Analytical
Interessant an diesen Ereignissen sind die Attribute unterhalb der Elemente Sytem und EventData wie z.B.
<EventID>256</EventID>
<Data Name=“InterfaceIP“>172.18.32.220</Data>
<Data Name=“Source“>172.18.32.220</Data>
<Data Name=“Destination“>172.18.32.220</Data>
<Data Name=“QNAME“>der-windows-papst.de.</Data>
Diese geben Aufschluss darüber, welcher Client im Netzwerk welche DNS-Anfrage stellt und wer diese beantwortet.
Hier mal ein zusammenhängendes Beispiel:
DNS Server Analytical Filter
Mit der Powershell lassen sich die Daten wie folgt anzeigen.
DNS Analyse mit der Powershell FilterXPath
Get-WinEvent -oldest -LogName Microsoft-Windows-DNSServer/Analytical -FilterXPath „*[EventData[Data[@Name=’qname‘]=’www.der-windows-papst.de.‘]]“
Get-WinEvent -oldest -LogName Microsoft-Windows-DNSServer/Analytical -FilterXPath „*[EventData[Data[@Name=’InterfaceIP‘]=’127.0.0.1′]]“
Get-WinEvent -oldest -LogName Microsoft-Windows-DNSServer/Analytical -FilterXPath „*[EventData[Data[@Name=’Source‘]=’172.18.32.1′]]“
Get-WinEvent -oldest -LogName Microsoft-Windows-DNSServer/Analytical -FilterXPath „*[EventData[Data[@Name=’qname‘]=’www.der-windows-papst.de.‘] and EventData[Data[@Name=’Source‘]=’172.18.32.1′]]“ | Export-Csv -Path C:\Logs\Export.csv
Get-WinEvent -oldest -FilterHashtable @{LogName=’Microsoft-Windows-DNSServer/Analytical‘} | Where-Object -Property Message -like ‚*www.der-windows-papst.de*‘ | fl -Property Message
DNS Analyse mit der Powershell Startdatum
$StartTime= „7 April 2022 11:00“
$EndTime= „10 April 2022 12:00“
Get-WinEvent -oldest -MaxEvents 10 -FilterHashtable @{
LogName = „Microsoft-Windows-DNSServer/Analytical“
StartTime = $StartTime
EndTime = $EndTime
}
$StartTime= „9 April 2022 11:00“
$EndTime= „10 April 2022 12:00“
Get-WinEvent -oldest -MaxEvents 10 -FilterHashtable @{
LogName = „Microsoft-Windows-DNSServer/Analytical“
StartTime = $StartTime
EndTime = $EndTime
} | Select -expand Message
DNS Analyse mit der Powershell PSCustomObject
# LookUP
$FilterHashTable = @{
LogName = ‚Microsoft-Windows-DNSServer/Analytical‘
ID = 279,257,256
StartTime = (Get-Date).AddHours(-20)
EndTime = Get-Date
}
$Events = Get-WinEvent -oldest -FilterHashtable $FilterHashTable | ForEach-Object {
$Values = $_.Properties | ForEach-Object { $_.Value }
[PSCustomObject]@{
ID = $_.ID
Time = $_.TimeCreated
InterfaceIP = $Values[1]
Source = $Values[2]
QNAME = $Values[4]
}
}
$Events | Format-Table -AutoSize
# RECURSE_QUERY
$FilterHashTable = @{
LogName = ‚Microsoft-Windows-DNSServer/Analytical‘
ID = 260,261
StartTime = (Get-Date).AddHours(-20)
EndTime = Get-Date
}
$Events = Get-WinEvent -oldest -FilterHashtable $FilterHashTable | ForEach-Object {
$Values = $_.Properties | ForEach-Object { $_.Value }
[PSCustomObject]@{
Time = $_.TimeCreated
InterfaceIP = $Values[2]
Dest = $Values[1]
QNAME = $Values[4]
}
}
$Events | Format-Table -AutoSize
Mit den Values müsst ihr etwas spielen, wenn es um eine exakte Auswertung anhand einer Event-ID geht. Ein Value steht nicht immer für das gleiche Attribut.







