利用powershell進行windows日誌分析

0x00 前言html

  Windows 中提供了 2 個分析事件日誌的 PowerShell cmdlet:一個是Get-WinEvent,超級強大,但使用起來比較麻煩;另外一個是Get-EventLog,使得起來至關簡單,能夠實時篩選,接下來,咱們利用PowerShell 來自動篩選 Windows 事件日誌。shell

0x01 Get-WinEventwindows

A、XML編寫微信

假設有這樣一個需求:windows server2008 R2環境,須要統計一下近7天用戶登陸次數。網絡

咱們能夠直接利用事件查看器裏面篩選日誌,以下圖:spa

經過查看登陸日誌,發如今真正的登陸時間,是這條日誌,去其餘不一樣的是,此條日誌記錄的進程名是winlogon.exe 要實現比較精確的篩選,須要從這裏入手,日誌

進一步篩選 點擊「事件屬性」裏面的「詳細信息」中,能夠看見一條信息,後面會用到:code

 

在「篩選當前日誌」中,選擇「XML」,勾選「手動編輯查詢」,並確認,在手動編輯中加入如下設置 *[EventData[Data[@Name='ProcessName'] and (Data='c:\windows\system32\winlogon.exe')]] and 如圖(裏面的PrcessName和winlogon.exe就是前面在「事件屬性」裏面的「詳細信息」中看到的):server

*[EventData[Data[@Name='ProcessName'] and (Data='c:\windows\system32\winlogon.exe')]] and

點擊確認,能夠精確的篩選用戶登陸事件。xml

windows server 2012的登陸篩選 在windows server2012中,可能會有一些小變化,可是也不要緊,按照以前的解決思路便可。下面可作參考:

*[EventData[Data[@Name='ProcessName'] and (Data='c:\windows\system32\winlogon.exe')]] and

*[EventData[Data[@Name='LogonType'] and (Data='10')]] and

B、Get-WinEvent使用

Get-WinEvent -FilterHashtable @{Logname='system';Id='6006','6005'}

0x02 Get-EventLog

 Get-EventLog Security  -InstanceId  4624,4625

 

$xml='<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[(EventID=4624)]]</Select>
  </Query>
</QueryList>'
$events = Get-WinEvent -FilterXml $xml
$i=0
#Write-Host '登陸時間','登陸類型','登陸帳號','登陸IP地址'
while ($i -lt $events.length) {
    $time=$events[$i].TimeCreated
    $type=[regex]::matches($events[$i].Message, '登陸類型:(.+)') | %{$_.Groups[1].Value.Trim()}
    $user=([regex]::matches($events[$i].Message, '賬戶名:(.+)') | %{$_.Groups[1].Value.Trim()})[1]
    $IP=[regex]::matches($events[$i].Message, '源網絡地址:(.+)') | %{$_.Groups[1].Value.Trim()}
    Write-Host $time,$user,$type,$IP
    $i++
}

腳本運行:

查看用戶登陸事件、登陸用戶名、登陸類型、登陸IP地址

 

最後

歡迎關注我的微信公衆號:Bypass--,每週原創一篇技術乾貨。 

 

 

參考連接:

Get-EventLog 使用

https://www.cnblogs.com/brooks-dotnet/archive/2010/08/24/1807615.html

https://www.cnblogs.com/fuhj02/archive/2011/01/03/1924339.html 

Get-EventLog使用

https://docs.microsoft.com/zh-cn/powershell/module/Microsoft.PowerShell.Management/Get-EventLog?view=powershell-5.1

精準的篩選windows用戶登陸事件

https://www.iyunv.com/thread-525384-1-1.html

相關文章
相關標籤/搜索