tcpdump + wireshark 抓包组合

学习wireshark抓包随笔

一、目标地址: 239.255.255.250

239.255.255.250是多播地址,多见于路由器上开了UPnP服务,而这个服务会用SSDP(简单服务发现协议)就是用239.255.255.250的多播地址端口1900来发现UPnp服务,局域网内某台电脑上如果有UPnP服务,每隔一段时间这台机器就会向该多播地址宣告服务在网络上可取,而发送的方式就是基于UDP的HTTP多播方式。

 二、NPF驱动

网络数据包过滤器(Netgroup Packet Filter,NPF)是Winpcap的核心部分,它是Winpcap完成困难工作的组件。它处理网络上传输的数据包,并且对用户级提供可捕获(capture)、发送(injection)和分析性能(analysis capabilities)。

wireshark提示没有一个可以抓包的接口,这是由于win7 默认NPF服务是关闭的,需要以管理员的身份开启NPF这个服务,可以用管理员身份运行cmd,输入以下命令开启:
net start npf

开始->附件->cmd(右键点击,浏览到以管理员方式启动) ->命令net start npf

按下windows徽标键->键盘输入cmd(此时注意按下徽标键后窗口下的搜索栏内会输入你键入的cmd),搜到cmd,->同时按下ctrl+shift+enter—>接下来的就是弹出的是否以管理员运行,一切OK了

三、NPF和NDIS
NDIS(Network Driver Interface Specification)是一个定义网络适配器(或者说成是管理网络适配器的驱动程序)与协议驱动(例如TCP/IP的实现)之间通信的规范。NDIS最主要的目的是作为一个允许协议驱动发送和接收网络(LAN或WAN)上的数据包而不必关心特定的适配器或特定的Win32操作系统的封装。

 四、过滤器

过滤器很重要,它们可以帮助我们在庞杂的结果中迅速找到我们需要的信息。

捕捉过滤器:用于决定将什么样的信息记录在捕捉结果中。需要在开始捕捉前设置。
显示过滤器:在捕捉结果中进行详细查找。他们可以在得到捕捉结果后随意修改。

那么我应该使用哪一种过滤器呢?

两种过滤器的目的是不同的。
捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。
显示过滤器是一种更为强大(复杂)的过滤器。它允许您在日志文件中迅速准确地找到所需要的记录。

两种过滤器使用的语法是完全不同的。

tcpdump 与wireshark

Wireshark(以前是ethereal)是Windows下非常简单易用的抓包工具。但在Linux下很难找到一个好用的图形化抓包工具。
还好有Tcpdump。我们可以用Tcpdump + Wireshark 的完美组合实现:在 Linux 里抓包,然后在Windows 里分析包。

tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.cap
(1)tcp: ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型
(2)-i eth1 : 只抓经过接口eth1的包
(3)-t : 不显示时间戳
(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-S 0 后可以抓到完整的数据包
(5)-c 100 : 只抓取100个数据包
(6)dst port ! 22 : 不抓取目标端口是22的数据包
(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24
(8)-w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析

参考:
http://www.cnblogs.com/Jtianlin/p/4330723.html
http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html

原文地址:https://www.cnblogs.com/ylnic/p/2020397.html