豆子今天想看看PowerShell是否有像Winsock之類的方式抓包,不過很遺憾,他有一個NetEvenPacketCapture的子產品,但是他不像wireshark那樣可以直接抓取TCP/IP包,他擷取的是Windows的網絡日志。優點是我可以直接用get-winEvent來分析内容了,缺點是我還是看不見直接的包的内容。
整個子產品一共有23個指令,新手一般會比較迷糊到底怎麼用。
豆子主要參考了微軟的這個部落格來進行的配置
https://blogs.technet.microsoft.com/heyscriptingguy/2015/10/12/packet-sniffing-with-powershell-getting-started/
簡單的說,6個基本步驟:
建立Session
綁定Provider
開始Session
擷取這個Session的日志
關掉這個Session
删除這個Session
1.建立一個新的session,他會告訴我日志儲存的位址

2.綁定Provider,首先通過logman看看有哪些provider可以使用
然後綁定這個Provider
3. 開始這個Session,沒有什麼結果出來,不過PS的設計和Linux一樣,no news is good news, 沒報錯就是好結果
4. 開始抓取日志
5.等一會然後停止
6. 删除
注意生成的日志格式是etl格式的,這個格式是沒法用wireshark之類的抓包工具打開的,不過我們可以直接用事件檢視器直接打開,如下圖所示
如果需要用腳本處理,這個和處理普通的windows日志一樣,直接用get-WinEvent就可以了
注意必須倒序排列才行。
比如我隻需要檢視ID為1300的日志
我想檢視最後的記錄
如果我想處理Message的内容,可以轉換成XML格式,然後檢視EventData的内容,比如
通過這種方式,我可以設定計劃任務,在指定的時間内抓取網絡日志,然後進行分析。