网络协议分析工具wireshark

目录

1、wireshark简介

2、关于wireshark的启动

3、wireshark抓包基本操作

4、wireshark窗口介绍

5、包过滤

6、数据分析


1、wireshark简介

  • Wireshark 是当今世界上被应用最广泛的网络协议分析工具。用户通常使用Wireshark来学习网络协议,分析网络问题,检测攻击和木马等。
  • 为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。
  • wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容
  • 处理HTTP,HTTPS用Fiddler,其他协议比如TCP,UDP就用wireshark

2、关于wireshark的启动

由于这个周末还算比较空闲,所以准备单列一个博客写一下wireshark的使用。下午悠闲地打开电脑,万万没想到...

百度了一下可能是版本的问题,卸载重装之后可以打开wireshark了

卸载时用apt-get remove wireshark并不能完全卸载
使用apt-get remove --purge wireshark才能删除配置文件

进去之后由于Kali默认是root账号,会引发Lua加载错误,如下:

解决方法:

  • 修改/usr/share/wireshark/init.lua

  • 将倒数第二行:dofile(DATA_DIR.."console.lua")

  • 改为--dofile(DATA_DIR.."console.lua")


3、wireshark抓包基本操作

点击捕获选项可以选择要对监听的网卡和数据包捕获进行配置

开始捕获数据包

在“视图”->“对话着色”选项中可以修改着色规则


4、wireshark窗口介绍

这里的示意图是旧版的wireshark窗口的介绍,但功能布局与现在使用的版本基本一致,这里借来引用

WireShark 主要分为这几个界面:

  1. Display Filter(显示过滤器), 用于过滤

  2. Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

  3. Packet Details Pane(封包详细信息), 显示封包中的字段

  4. Dissector Pane(16进制数据)

  5. Miscellanous(地址栏,杂项)


5、包过滤

5.1 捕获过滤器

捕捉过滤器是用来配置应该捕获什么样的数据包,在启动数据包捕捉之前就应该配置好。打开主界面“捕获”—>“捕获过滤器”可以对捕获过滤器进行设置


5.2 捕获过滤器的语法

Protocol(协议)     Direction(方向)     Host(s)     Logical Operations(逻辑运算)

  • Protocol(协议):
    可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
    如果没有特别指明是什么协议,则默认使用所有支持的协议。

  • Direction(方向):
    可能的值: src, dst, src and dst, src or dst
    如果没有特别指明来源或目的地,则默认使用 "src or dst" 作为关键字

  • Host(s):
    可能的值: net, port, host, portrange.
    如果没有指定此值,则默认使用"host"关键字。

  • Logical Operations(逻辑运算):
    可能的值:not, and, or.
    否("not")具有最高的优先级。或("or")和与("and")具有相同的优先级,运算时从左至右进行。

使用示例:

  • tcp dst port 3128
    显示目的TCP端口为3128的封包。

  • ip src host 10.1.1.1
    显示来源IP地址为10.1.1.1的封包。

  • host 10.1.2.3
    显示目的或来源IP地址为10.1.2.3的封包。

  • src portrange 2000-2500
    显示来源为UDP或TCP,并且端口号在2000至2500范围内的封包。

  • not imcp
    显示除了icmp以外的所有封包。(icmp通常被ping工具使用)

  • src host 10.7.2.12 and not dst net 10.200.0.0/16
    显示来源IP地址为10.7.2.12,但目的地不是10.200.0.0/16的封包。

  • (src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8
    显示来源IP地址为10.4.1.12或10.6.0.0/16,且目的端口号在200-1000,目的地址是10.0.0.0/8的TCP封包。


5.3 显示过滤器

显示过滤器用来过滤已经捕获的数据包。在数据包列表的上方,有一个显示过滤器输入框,可以直接输入过滤表达式。
点击输入框右侧按钮可以添加显示过滤器

点击输入框左侧按钮可以管理显示过滤器


5.4 显示过滤器的语法

Protocol.String1.String2     Comparison operators     Value     Logical Operations     Other Expression

  • Protocol,协议字段。从OSI7层模型的2到7层协议都支持。
  • String1, String2 (可选项),协议的子类。
  • Comparison operators,比较运算符。

  • Logical Operations,逻辑运算符。

使用示例:

  • ip.src != 10.1.2.3 or ip.dst != 10.4.5.6
    显示来源不为10.1.2.3或者目的不为10.4.5.6的封包。

  • tcp.flags.syn == 0x02
    显示包含TCP SYN标志的封包。


6、数据分析

数据的分析需要对协议的工作原理和过程十分熟悉
下面两篇博客通过对TCP三次握手的过程对数据封包进行了分析:
参考资料:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html#start
http://www.cnblogs.com/xuanhun/p/5714034.html

下面演示用浏览器打开天涯网站时捕获数据包的情况

设置过滤器只显示源IP地址为本机的http协议数据包

从中可以发现天涯网站的IP地址

也可以查看TCP三次握手的过程

wireshark很强大,此部分内容以后有时间会继续补充


posted @ 2017-03-25 15:00  Mars369  阅读(1184)  评论(0编辑  收藏  举报