网络协议分析工具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 主要分为这几个界面:
-
Display Filter(显示过滤器), 用于过滤
-
Packet List Pane(封包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表
-
Packet Details Pane(封包详细信息), 显示封包中的字段
-
Dissector Pane(16进制数据)
-
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很强大,此部分内容以后有时间会继续补充