java 仿wireshark_wireshark抓包工具

一、简介

1、什么是wireshark

百度:

Wireshark(前称Ethereal)是一个 络封包分析软件。 络封包分析软件的功能是撷取 络封包,并尽可能显示出最为详细的 络封包资料。Wireshark使用WinPCAP作为接口,直接与 卡进行数据 文交换。

在过去, 络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的 络封包分析软件之一。

开源软件,用GPL协议发行,所以可以免费在任意数量机器上使用

2、主要应用

帮助管理员解决 络问题

帮助安全工程师用来检测安全隐患

开发人员用来测试协议执行情况

用来学习 络协议

等等。

3、特性

跨平台支持windows/unix平台

在接口实时抓包

能详细显示包的详细协议信息

可以打开/保存捕捉的包

可以导入导出其他程序支持的包数据格式

可以通过多种方式过滤包

多种方式查找包

通过过滤以多种彩色显示包

创建多种统计分析。。。

4、多种 络接口

可以捕捉多种 络接口,甚至无线局域 接口

5、哪些事情不能做/p>

不能用作入侵检测系统,不会处理 络事务,仅是监视 络,不会发送 络包或做其他交互的事情,但可以做名称解析

二、使用wireshark

1、打开后看到的第一页面,这里就称为初始页面吧

点击captrue options图标》弹出 卡如多 卡指定抓包 卡》开始抓包

4、过滤条件

通过集中表达式规则进行过滤

1)protocols

比如tcp,ether,fddi,ip,arp,rarp,decnet,lat,sca,moprc,mopdl,tcp and udp

2)direction

src,dst,src and dst,src or dst(不指定就是双向)

3)host(新版,老版本没有host)

net,port,host,portrange

4)logical openrations逻辑运算

and,or,not(下面有官方实例)

5、过滤关系

1)组合表达式

Table 6.6. Display Filter Logical Operations

EnglishC-likeDescription and example

and

&&

Logical AND. ip.src==10.0.0.5 and tcp.flags.fin

or

||

Logical OR. ip.scr==10.0.0.5 or ip.src==192.1.1.1

xor

^^

Logical XOR. tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 0.6.29

not

!

Logical NOT. not llc

[…

See “Slice Operator” below.

in

See “Membership Operator” below.

2)运算符

参考官方https://www.wireshark.org/docs/wsug_html/#DispCompOps

Table 6.5. Display Filter comparison operators

EnglishC-likeDescription and example

eq

==

Equal. ip.src==10.0.0.5

ne

!=

Not equal. ip.src!=10.0.0.5

gt

>

Greater than. frame.len > 10

lt

<

Less than. frame.len < 128

ge

>=

Greater than or equal to. frame.len ge 0x100

le

<=

Less than or equal to. frame.len 0x20

contains

Protocol, field or slice contains a value. sip.To contains “a1762”

matches

~

Protocol or text field match Perl regualar expression. http.host matches “acme.(org|com|net)”

bitwise_and

&

Compare bit field value. tcp.flags & 0x02

6、常见过滤需求

1)、数据链路层

mac地址过滤

eth.addr==00:0c:29:1c:8b:39

eth.src==00:0c:29:1c:8b:39

eth.dst==00:0c:29:1c:8b:39

2)、 络层

ip地址过滤

ip.addr==192.168.216.51

ip.src==192.168.216.51

ip.dst==192.168.216.51

3)、传输层

tcp/udp

tcp.prot==80

tcp.dstport==80

tcp.srcport==80

4)、应用层

http.request.uri contains “.php”

5)、wireshark支持筛选的还有很多协议,这里不一一列举,请查看官方文档

udp、tcp、arp、icmp、smtp、pop、dns、ip、ssl、http、ftp、telnet、ssh、rdp、rip、ospf

6)、协议参数过滤

tcp.flags.syn==0x02 显示包含syn标志位的数据包

frame.len==119  整个数据包长度,从eth开始到最后

http.request.method==”get”  显示http请求中method值为get的包

7)、逻辑条件组合筛选

||

&&

组合条件“与”

ip.src==192.168.216.51&&ip.dst==192.168.216.52

组合条件“或”

ip.src==192.168.216.51||ip.src==192.168.216.52

组合条件“非”

!(ip.src==192.168.216.51)

三、新版本差异

新版和老版本是存在很多差异的如

1、示例1-mac

2、示例2-ip

4、示例4-http

2、第一次握手

客户端请求建立连接,发送请求包,标志位SYN,序 为0

4、第三次握手

客户端收到服务器发来的确认 正确,客户端再次发送确认ACK,SYN标志位为0,ACK标志位是1,确认序 =y+1=0+1,发送序 位x+1=1,服务器收到确认序 值与ack=1连接建立成功,开始传输数据

2、抓包示例挥手协议图示

4、第二次挥手

第二次挥手,服务器收到FIN,发回一个ACK,Seq=29,ack=23

6、第四次挥手

第四次挥手,客户端收到服务器发送的FIN后,发回ACK确认,确认序 加1,就是30,这里就完全断开连接了。

c3a3d97a4b259fd1951b590143a978f1.png

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91318 人正在系统学习中 相关资源:阿P软件之划词复制v1.20绿色版-其它代码类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月13日
下一篇 2021年1月13日

相关推荐