利用powershell進行windows日志分析


0x00 前言

  Windows 中提供了 2 個分析事件日志的 PowerShell cmdlet:一個是Get-WinEvent,超級強大,但使用起來比較麻煩;另一個是Get-EventLog,使得起來相當簡單,可以實時篩選,接下來,我們利用PowerShell 來自動篩選 Windows 事件日志。

0x01 Get-WinEvent

A、XML編寫

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

我們可以直接利用事件查看器里面篩選日志,如下圖:

通過查看登錄日志,發現在真正的登錄時間,是這條日志,去其他不同的是,此條日志記錄的進程名是winlogon.exe 要實現比較精確的篩選,需要從這里入手,

進一步篩選 點擊“事件屬性”里面的“詳細信息”中,可以看見一條信息,后面會用到:

 

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

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

點擊確認,可以精確的篩選用戶登錄事件。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM