天天看點

PowerShell 抓取網絡日志

豆子今天想看看PowerShell是否有像Winsock之類的方式抓包,不過很遺憾,他有一個NetEvenPacketCapture的子產品,但是他不像wireshark那樣可以直接抓取TCP/IP包,他擷取的是Windows的網絡日志。優點是我可以直接用get-winEvent來分析内容了,缺點是我還是看不見直接的包的内容。

整個子產品一共有23個指令,新手一般會比較迷糊到底怎麼用。

豆子主要參考了微軟的這個部落格來進行的配置

<a href="https://blogs.technet.microsoft.com/heyscriptingguy/2015/10/12/packet-sniffing-with-powershell-getting-started/" target="_blank">https://blogs.technet.microsoft.com/heyscriptingguy/2015/10/12/packet-sniffing-with-powershell-getting-started/</a>

 簡單的說,6個基本步驟:

建立Session

綁定Provider

開始Session

擷取這個Session的日志

關掉這個Session

删除這個Session

1.建立一個新的session,他會告訴我日志儲存的位址

1

<code> </code><code>New-NetEventSession</code> <code>-Name </code><code>"Session1"</code>

<a href="http://s4.51cto.com/wyfs02/M01/7C/AF/wKiom1bWNy7yVAPYAAAdC9Hmugw522.png" target="_blank"></a>

2.綁定Provider,首先通過logman看看有哪些provider可以使用

<code>logman query providers | </code><code>select-string</code> <code>tcp</code>

<a href="http://s3.51cto.com/wyfs02/M01/7C/AD/wKioL1bWN6nycBtkAABGq5yaW7s303.png" target="_blank"></a>

然後綁定這個Provider

<code> </code><code>Add-NetEventProvider</code> <code>-Name “Microsoft-Windows-TCPIP” -SessionName “Session1"</code>

<a href="http://s1.51cto.com/wyfs02/M01/7C/AF/wKiom1bWNzLTSoT5AAAOT6cY3s8033.png" target="_blank"></a>

3. 開始這個Session,沒有什麼結果出來,不過PS的設計和Linux一樣,no news is good news, 沒報錯就是好結果

<code>Start-NetEventSession</code> <code>-Name “Session1"</code>

4. 開始抓取日志

<code>Get-NetEventSession</code>

<a href="http://s5.51cto.com/wyfs02/M01/7C/AD/wKioL1bWN62CNkBWAAAdH39OPwE760.png" target="_blank"></a>

5.等一會然後停止

<code>Stop-NetEventSession</code> <code>-Name session1</code>

6. 删除

<code>Remove-NetEventSession</code>

注意生成的日志格式是etl格式的,這個格式是沒法用wireshark之類的抓包工具打開的,不過我們可以直接用事件檢視器直接打開,如下圖所示

<a href="http://s5.51cto.com/wyfs02/M02/7C/AF/wKiom1bWNzej-1dwAADsDEsvIfU079.png" target="_blank"></a>

如果需要用腳本處理,這個和處理普通的windows日志一樣,直接用get-WinEvent就可以了

注意必須倒序排列才行。

<code>Get-WinEvent</code> <code>-path C:\WINDOWS\system32\config\systemprofile\AppData\Local\NetEventTrace.etl -Oldest</code>

<a href="http://s4.51cto.com/wyfs02/M02/7C/AF/wKiom1bWN0KTQxyAAAGGdkYXzXE858.png" target="_blank"></a>

比如我隻需要檢視ID為1300的日志

<a href="http://s2.51cto.com/wyfs02/M02/7C/AD/wKioL1bWN73xKqG4AADisMW65UM587.png" target="_blank"></a>

我想檢視最後的記錄

<a href="http://s2.51cto.com/wyfs02/M00/7C/AF/wKiom1bWN0ey-74iAAAsRWAKoDs517.png" target="_blank"></a>

如果我想處理Message的内容,可以轉換成XML格式,然後檢視EventData的内容,比如

<a href="http://s3.51cto.com/wyfs02/M02/7C/AD/wKioL1bWN8KyaMzUAABhBuNfbkg851.png" target="_blank"></a>

通過這種方式,我可以設定計劃任務,在指定的時間内抓取網絡日志,然後進行分析。

本文轉自 beanxyz 51CTO部落格,原文連結:http://blog.51cto.com/beanxyz/1746576,如需轉載請自行聯系原作者

繼續閱讀