Scripts/Invoke-FirewallLogReview.ps1
Param( [switch]$ExportToCsv ) function New-FirewallLogReview { $Logs = @{ LogName = 'Security'; Id = 5156 } Get-WinEvent -FilterHashtable $Logs | foreach { $XmlData = [xml]$_.ToXml() $SourceAddress = $XmlData.Event.EventData.Data[3].'#text' $DestinationAddress = $XmlData.Event.EventData.Data[5].'#text' if ($Threats -contains $SourceAddress -or $Threats -contains $DestinationAddress) { $Event = New-Object -TypeName psobject Add-Member -InputObject $Event -MemberType NoteProperty -Name TimeCreated -Value $_.TimeCreated Add-Member -InputObject $Event -MemberType NoteProperty -Name RecordId -Value $_.RecordId Add-Member -InputObject $Event -MemberType NoteProperty -Name ProcessId -Value $XmlData.Event.EventData.Data[0].'#text' Add-Member -InputObject $Event -MemberType NoteProperty -Name Protocol -Value $XmlData.Event.EventData.Data[7].'#text' Add-Member -InputObject $Event -MemberType NoteProperty -Name SourceAddress -Value $SourceAddress Add-Member -InputObject $Event -MemberType NoteProperty -Name SourcePort -Value $XmlData.Event.EventData.Data[4].'#text' Add-Member -InputObject $Event -MemberType NoteProperty -Name DestinationPort -Value $XmlData.Event.EventData.Data[6].'#text' Add-Member -InputObject $Event -MemberType NoteProperty -Name DestinationAddress -Value $DestinationAddress return $Event } } } function Get-CyberThreatIntel { #$DateSource = 'http://rules.emergingthreats.net/blockrules/compromised-ips.txt' #$Threats = (Invoke-WebRequest -Uri $DataSource -ErrorAction Ignore).Content $Threats = Get-Content C:\Users\Public\Documents\Scripts\compromised-ips.txt } Get-CyberThreatIntel if ($ExportToCsv) { $Computer = (Get-WmiObject -Class Win32_ComputerSystem).Name + '_' $Date = Get-Date -Format yyyy-MM-dd_HHMM $Dropbox = 'C:\Users\Public\' $Folder = $Dropbox + 'Firewall\' $File = $Folder + 'Firewall_' + $Computer + $Date + '.csv' if (-not(Test-Path $Dropbox)) { New-Item -ItemType Directory $Dropbox | Out-Null } if (-not(Test-Path $Folder)) { New-Item -ItemType Directory $Folder | Out-Null } New-FirewallLogReview | Export-Csv -NoTypeInformation -Append -Path $File } else { New-FirewallLogReview | Select TimeCreated,RecordId,SourceAddress,DestinationAddress } <# REFERENCES http://rules.emergingthreats.net/blockrules/ #> |