PowerShell 抓取网络日志

豆子今天想看看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个基本步骤:

  1. 创建Session

  2. 绑定Provider

  3. 开始Session

  4. 获取这个Session的日志

  5. 关掉这个Session

  6. 删除这个Session


1.创建一个新的session,他会告诉我日志保存的地址

 New-NetEventSession -Name "Session1"


wKiom1bWNy7yVAPYAAAdC9Hmugw522.png


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

logman query providers | select-string tcp

wKioL1bWN6nycBtkAABGq5yaW7s303.png

然后绑定这个Provider

 Add-NetEventProvider -Name “Microsoft-Windows-TCPIP” -SessionName “Session1"


wKiom1bWNzLTSoT5AAAOT6cY3s8033.png


3. 开始这个Session,没有什么结果出来,不过PS的设计和Linux一样,no news is good news, 没报错就是好结果

Start-NetEventSession -Name “Session1"

4. 开始抓取日志

Get-NetEventSession

wKioL1bWN62CNkBWAAAdH39OPwE760.png


5.等一会然后停止

Stop-NetEventSession -Name session1

6. 删除

Remove-NetEventSession


注意生成的日志格式是etl格式的,这个格式是没法用wireshark之类的抓包工具打开的,不过我们可以直接用事件查看器直接打开,如下图所示

wKiom1bWNzej-1dwAADsDEsvIfU079.png



如果需要用脚本处理,这个和处理普通的windows日志一样,直接用get-WinEvent就可以了

注意必须倒序排列才行。

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

wKiom1bWN0KTQxyAAAGGdkYXzXE858.png


比如我只需要查看ID为1300的日志

wKioL1bWN73xKqG4AADisMW65UM587.png


我想查看最后的记录

wKiom1bWN0ey-74iAAAsRWAKoDs517.png


如果我想处理Message的内容,可以转换成XML格式,然后查看EventData的内容,比如

wKioL1bWN8KyaMzUAABhBuNfbkg851.png


通过这种方式,我可以设置计划任务,在指定的时间内抓取网络日志,然后进行分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值