java 仿wireshark_wireshark抓包工具

一、简介

1、什么是wireshark

百度:

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

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

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

2、主要应用

帮助管理员解决网络问题

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

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

用来学习网络协议

等等。

3、特性

跨平台支持windows/unix平台

在接口实时抓包

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

可以打开/保存捕捉的包

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

可以通过多种方式过滤包

多种方式查找包

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

创建多种统计分析。。。

4、多种网络接口

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

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

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

二、使用wireshark

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

13e72b4342bb172a6e88b3b956b3d46a.png

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

31cb1114797a8b09a8f6212c3eec2d58.png

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

71ca21a5511ddd6bceba64008c12e108.png

2、示例2-ip

6a575f3e8381d7b0fd09a75e1aa6b603.png

4、示例4-http

76012b3ec87dcd64ca7817e1ef1fe849.png

2、第一次握手

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

934c90ca036029efee69e6a4d174ca83.png

4、第三次握手

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

51a3644cfcb7ca30040889919cb2b257.png

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

e89e536c3a863cb13bea8069f18469c6.png

4、第二次挥手

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

c209e24a8d663aaf071fc027ac653c06.png

6、第四次挥手

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

c3a3d97a4b259fd1951b590143a978f1.png

转载请注明出处:https://www.cnblogs.com/zhangxingeng/p/11200063.html

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

来源:阿喵看海外

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

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

相关推荐