Windows 平台如何抓包

Abstract

这篇文章会描述如何在windows平台下不安装任何第三方依赖库来进行网络的抓包和分析.

抓包

这里我们会使用windows自带的netsh 来进行抓包. netsh本身包含了很多网络配置相关的功能.这里主要使用netsh trace.
该工具与tcpdump相比的主要优点是(1)不依赖第三方库,(2)无需安装别的什么软件.
缺点就是(1)不支持端口过滤. (2) 参考资料很少. (3) 可能少数老旧操作系统没有.
主要分为两步:
1.启动一个抓包session

netsh trace start [OTHER OPTIONS]

2.停止一个抓包session. (该命令同一时刻只能有一个session)

netsh trace stop

Example:
1.抓取某个地址11.11.11.11的snmp消息 (snmp 采用的是udp协议):

netsh trace start capture=yes traceFile="c:\\snmp.etl" overwrite=yes correlation=no protocol=udp ipv4.address=11.11.11.11

这样的输出就代表成功了, 生成的文件在c:\snmp.etl.

Trace configuration:
-------------------------------------------------------------------
Status:             Running
Trace File:         C:\snmp.etl
Append:             Off
Circular:           On
Max Size:           250 MB
Report:             Off

注意:文件必须为etl结尾.
这个文件会以很快的速度增长,这里设置的是最大250MB, 循环写snmp.etl.
这里的协议可以是tcp/udp/icmp等.

2.停止抓包

netsh trace stop

输出:

Merging traces ... done
Generating data collection ... done
The trace file and additional troubleshooting information have been compiled as "c:\snmp.cab".
File location = c:\snmp.etl
Tracing session was successfully stopped.

分析抓包结果

前面我们获取了抓包的文件snmp.etl,这里我们展示如何来分析该文件.
大体步骤:用windows message analyzer打开 -> 等待加载完成 -> 转换为cap文件 -> 使用wireshark分析.

这里需要用到的软件是windows message analyzer. 从这里下载
安装后的样子:
Windows 平台如何抓包_第1张图片
打开snmp.etl后. 等待左下角的状态变为Ready:
Windows 平台如何抓包_第2张图片
然后,到处为cap文件: File -> Save As -> Export
Windows 平台如何抓包_第3张图片
遇到右图的错误忽略就好.

这个生成的文件snmp.cap 就可以被wireshark分析了.
这里写图片描述

参考

[1]windows netsh

你可能感兴趣的:(windows)