网络抓包简述

Posted by LuckXiang on April 5, 2016

抓包做什么?

不管做什么事情,首先要有明确的目的,其次是要清楚能力的范畴,最后是要有清晰的思路。原始数据->过滤->分析,这是数据处理的基本套路,抓包的目的就是为了获取到想要的原始数据,拿到数据以后,我们就可以做以下一些事情:

  1. 分析数据传输协议。
  2. 定位网络协议的问题。
  3. 从数据包中获取想要的信息。
  4. 将截取到的数据包进行修改,伪造,重发。

抓包工具

抓包需要借助一定的工具,我一般用tcpdump和wireshark。tcpdump是一个命令行工具,我主要放在嵌入式设备上,搭配脚本,可以很方便的实现抓包功能。wireshark是一个pc上的图形化工具,抓包和数据分析都很棒,而且这两个都是免费开源的软件,可以很方便的从网上获取到相关资料和使用技巧。

如何抓包?

抓包工具都是从指定的设备(如网卡)上获取到数据,假如数据没有流过监测的设备,那么我们是抓不到任何想要的数据的,必须牢记这一点。一般情况下网卡会把不是传给本机的数据包一律丢掉,开启混杂模式,网卡才会把接收到的所有数据包传给上层,这样抓包工具才能获取到数据包。除此之外,大部分的操作系统下抓包都需要提供管理员权限。如何抓包,我们要考虑两个点,一个是抓包工具放在网络的什么位置,另一个是接入的方法。放在什么位置,需要考虑网络拓扑图,抓包都是在同一个网段内抓的,在处理涉及到多个网段和路由器的问题时,需要考虑在不同的地方抓包。接入的方法,常用的有五种:

  • 端口镜像,最优模式,不会留下网络痕迹,也不需要下线设备,但是需要交换机支持端口镜像。
  • ARP缓存中毒 不需要下线设备,比较高效,需要借助其他工具。
  • 集线器 使用方便,需要下线设备,效率低。
  • 网络分流器 需要下线设备,成本高,比集线器效率高,抓取光纤设备数据的唯一选择。
  • 直接安装 可能会因为主机故障导致数据包被丢弃。

注意:路由器是不能提供抓包接入的。

下面给几个抓包场景:

  1. 客户在异地,嵌入式设备网络性能差,需要抓包分析,通过交叉编译获取到tcpdump工具,编写抓包脚本,放入u盘,提供给客户。让客户执行脚本获取到数据传回来用wireshark分析。
  2. 嵌入式设备只有usb wifi, 首先在pc上创建一个wifi热点,将嵌入式设备连到热点上,打开wireshark,选择无线网卡进行抓包。
  3. 有一台设备,通过以太网进行通信,想获取到该设备的网络数据,通过一个集线器,把pc和设备接到集线器上,打开wireshark,选择以太网卡进行抓包。