wireshark

WireShark数据包分析数据封装

自闭症网瘾萝莉.ら 提交于 2020-03-09 21:00:54
WireShark数据包分析 数据封装 数据封装( Data Encapsulation )是指将协议数据单元( PDU )封装在一组协议头和尾中的过程。在 OSI 七层参考模型中,每层主要负责与其它机器上的对等层进行通信。该过程是在协议数据单元( PDU )中实现的,其中每层的 PDU 一般由本层的协议头、协议尾和数据封装构成本文选自 WireShark数据包分析实战详解清华大学出版社 。 为了帮助用户更清楚的理解数据封装过程,下面通过一个实例来说明这个过程。假设某个公司局域网使用以太网,当员工从局域网的 FTP 服务器下载一个文件时,该文件从 FTP 服务器到员工主机的传输过程如图 1.17 所示 本文选自 WireShark数据包分析实战详解清华大学出版社 。 图 1.17 TCP/IP 中数据的传输 在图 1.17 中, FTP 服务器作为数据的发送端,员工主机作为数据的接收端。下面分别介绍数据发送和接收处理过程。 1. 数据发送处理过程 数据封装协议数据单元封装WireShark数据包分析 ( 1 )应用层将数据交给传输层,传输层添加上 TCP 的控制信息(称为 TCP 头部),这个数据单元称为段( Segment ),加入控制信息的过程称为封装。然后,将段交给网络层。 ( 2 )网络层接收到段,再添加上 IP 头部,这个数据单元称为包( Packet )。然后

Wireshark的简单使用小结

本秂侑毒 提交于 2020-03-08 05:42:38
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件,Wireshark的出现改变了这一切。在GNU GPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其程式码,并拥有针对其源代码修改及客制化的权利。Wireshark是目前全世界最广泛的网络封包分析软件之一。 Wireshark的主要应用包括:(1)网络管理员使用Wireshark来检测网络问题;(2)网络安全工程师使用Wireshark来检查资讯安全相关问题;(3)开发者使用Wireshark来为新的通讯协定除错;(4)普通使用者使用Wireshark来学习网络协定的相关知识。 我安装了Wireshark 1.6.5(各种版本可至官网下载 http://www.wireshark.org/download.html ),下面是启动后的主窗口界面: (一)开始/结束抓包 首先开始抓包,开始的方法有很多,最快的可以单击 (“List the available capture interfaces...”),出现下图窗口,单击“Start”; 此时抓包工作边开始,Packet List面板将出现大量的包信息了。 默认显示的信息包括: (1)No.:包的编号; (2

tcpdump抓取HTTP包

你说的曾经没有我的故事 提交于 2020-03-06 14:17:25
tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854 0x4745 为"GET"前两个字母"GE" 0x4854 为"HTTP"前两个字母"HT" 说明: 通常情况下:一个正常的TCP连接,都会有三个阶段:1、TCP三次握手;2、数据传送;3、TCP四次挥手 里面的几个概念: SYN: (同步序列编号,Synchronize Sequence Numbers) ACK: (确认编号,Acknowledgement Number) FIN: (结束标志,FINish) TCP三次握手(创建 OPEN) 客户端发起一个和服务创建TCP链接的请求,这里是SYN(J) 服务端接受到客户端的创建请求后,返回两个信息: SYN(K) + ACK(J+1) 客户端在接受到服务端的ACK信息校验成功后(J与J+1),返回一个信息:ACK(K+1) 服务端这时接受到客户端的ACK信息校验成功后(K与K+1), 不再返回信息,后面进入数据通讯阶段 数据通讯 客户端/服务端 read/write数据包 TCP四次握手(关闭 finish) 客户端发起关闭请求,发送一个信息:FIN(M) 服务端接受到信息后,首先返回ACK(M+1),表明自己已经收到消息。 服务端在准备好关闭之前,最后发送给客户端一个 FIN(N)消息

用 Wireshark 图解:TCP 三次握手

那年仲夏 提交于 2020-03-06 14:08:35
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “snow warn throughout the winter” 一、什么是 Wireshark ? 简单地说,Wireshark 是抓包工具。官网说,“Wireshark 是一个网络包分析工具。 网络数据包分析仪将尝试捕获网络数据包并试图尽可能详尽显示该数据包。” 推荐一本书《Wireshark 网络分析就这么简单》,Wireshark 工具下载地址 https://www.wireshark.org/download.html。 Wireshark 不单单能抓包,主要的 Features 是对数据包进行各种的分析。下载打开界面非常简单直观: 最上面是 Packet List 窗口,它列出了所有网络包。 在 Packet List 中选定的网络包会详细地显示在中间的 Packet Details 窗口中。 最底下是 Packet Bytes Details 窗口(16 进制数据),我们一般不会用到它。 二、我们抓什么包呢?如题 TCP TCP 一脸懵逼。记得上次在 《 图解Http协议 》得知,HTTP 是一个客户端和服务器端请求和响应的标准TCP。其实建立在 TCP 之上的。那我们就抓 HTTP,这很简单。 三、实操 Wireshark 选择 Capture –

Wireshark详细介绍和TCP三次握手

半城伤御伤魂 提交于 2020-03-06 14:05:36
一.什么是Wireshark及其发展 Wireshark(前称Ethereal)是一个网络 数据包 分析软件。网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。 在过去,网络数据包分析软件是非常昂贵,或是专门属于营利用的软件,Wireshark的出现改变了这一切。在 GNU GPL 通用许可证的保障范围底下,用户可以以免费的代价取得软件与其代码,并拥有针对其源代码修改及定制化的权利。Wireshark是目前全世界最广泛的网络数据包分析软件之一。 1997年底,Gerald Combs需要一个能够追踪网络流量的工具软件作为其工作上的辅助。因此他开始撰写Ethereal软件。 Ethereal 在经过几次中断开发的事件过后,终于在1998年7月发布其第一个版本 v0.2.0。自此之后,Combs收到了来自全世界的补丁、错误回报与鼓励信件。Ethereal的发展就此开始。不久之后,Gilbert Ramirez 看到了这套软件的开发潜力并开始参予低级程序的开发。1998年10月,来自 Network Appliance 公司的 Guy Harris 在查找一套比 tcpview (另外一套网络数据包截取程序)更好的软件。于是他也开始参与Ethereal的开发工作。 1998年底,一位在教授 TCP/IP 课程的讲师 Richard Sharpe

£可爱£侵袭症+ 提交于 2020-03-06 13:57:11
wireshark进行过滤时,按照过滤的语法可分为协议过滤和内容过滤。 对标准协议,既支持粗粒度的过滤如HTTP,也支持细粒度的、依据协议属性值进行的过滤如tcp.port==53、http.request.method=="GET"。 对内容的过滤,既支持深度的字符串匹配过滤如http contains "Server",也支持特定偏移处值的匹配过滤如tcp[20:3] == 47:45:54。 wireshark有两种过滤器: 捕捉过滤器(CaptureFilters):用于决定将什么样的信息记录在捕捉结果中。 显示过滤器(DisplayFilters):用于在捕捉结果中进行详细查找。 捕捉过滤器在抓抱前进行设置,决定抓取怎样的数据;显示过滤器用于过滤抓包数据,方便stream的追踪和排查。 捕捉过滤器仅支持协议过滤,显示过滤器既支持协议过滤也支持内容过滤。 两种过滤器它们支持的过滤语法并不一样。 捕捉过滤器-- 捕捉前依据协议的相关信息进行过滤设置 语法: Protocol Direction Host(s) Value Logical Operations Other expression 例子: tcp dst 10.1.1.1 80 and tcp dst 10.2.2.2 3128 示例: (host 10.4.1.12 or src net 10.6.0.0/16)

Wireshark运算符!=无法正常工作

假装没事ソ 提交于 2020-03-06 13:41:22
Wireshark运算符!=无法正常工作 在Wireshark中,运算符!=结合一些类似eth.addr、ip.addr、tcp.port和udp.port表达式使用时,通常不能正常工作。使用时,Wireshark将显示警告信息“!=已被弃用或可能有意外结果,请参阅用户指南”,并且过滤器背景色为黄色。例如,显示过滤除IP地址1.2.3.4外的所有主机数据包,写为 ip.addr != 1.2.3.4。 这时,过滤器 ip.addr != 1.2.3.4是不能正常工作。因为 ip.addr != 1.2.3.4表达数据包包含一个名为ip.addr的字段,其值与1.2.3.4不同。由于IP数据报同时包含源地址和目标地址,因此当两个地址中至少有一个不同于1.2.3.4时,表达式的计算结果将为true。 所以,如果想要过滤掉除IP地址1.2.3.4外的数据包,正确的过滤器应该为 !(ip.addr==1.2.3.4)。 来源: oschina 链接: https://my.oschina.net/u/1585857/blog/3189000

用了这么久HTTP, 你是否了解Content-Length?

China☆狼群 提交于 2020-03-05 16:08:12
摘要: 理解HTTP协议... 原文: 用了这么久HTTP, 你是否了解Content-Length和Transfer-Encoding ? 作者: 朴瑞卿的博客 由Content-Length导致的问题引发的一系列思考: 前段时间开发API网关, 使用postman调试时出现了超时的情况, 经排查确定是请求数据被处理后 Content-Length 与实际不一致导致的问题, 故有此文. Content-Length , HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 . 一般情况下, 很多工作都被框架完成, 我们很少去关注这部分内容, 但少数情况下发生了 Content-Length 与实际消息长度不一致, 程序可能会发生比较奇怪的异常, 如: 无响应直到超时. 请求被截断, 而且下一个请求解析出现错乱. Content-Length 是HTTP消息长度, 用 十进制数字 表示的 八位字节的数目 , 是Headers中常见的一个字段. Content-Length 应该是精确的, 否则就会导致异常 (特别地, HTTP1.0中这个字段可有可无). Content-Length 首部指示出报文中实体主体的字节大小. 这个大小是包含了所有内容编码的, 比如, 对文本文件进行了 gzip 压缩的话, Content-Length 首部指的就是压缩后的大小而不是原始大小.

数据安全(反爬虫)之「防重放」策略

心不动则不痛 提交于 2020-03-05 15:29:34
在 大前端时代的安全性 一文中讲了 Web 前端和 Native 客户端如何从数据安全层面做反爬虫策略,本文接着之前的背景,将从 API 数据接口 的层面讲一种技术方案,实现数据安全。 一、 API 接口请求安全性问题 API 接口存在很多常见的安全性问题,常见的有下面几种情况 即使采用 HTTPS,诸如 Charles、Wireshark 之类的专业抓包工具可以扮演证书颁发、校验的角色,因此可以查看到数据 拿到请求信息后原封不动的发起第二个请求,在服务器上生产了部分脏数据(接口是背后的逻辑是对 DB 的数据插入、删除等) 所以针对上述的问题也有一些解决方案: HTTPS 证书的双向认证解决抓包工具问题 假如通过网络层高手截获了 HTTPS 加证书认证后的数据,所以需要对请求参数做签名 「防重放策略」解决请求的多次发起问题 请求参数和返回内容做额外 RSA 加密处理,即使截获,也无法查看到明文。 关于 HTTPS 证书双向认证和 Web 端反爬虫技术方案均在 大前端时代的安全性 一文中有具体讲解。接下来引出本文主角:防重放 二、 请求参数防篡改 在之前的文章也讲过,HTTPS 依旧可以被抓包,造成安全问题。抓包工具下数据依旧是裸奔的,可以查看 Charles 从入门到精通 文中讲的如何获取 HTTPS 数据。 假如通过网络层高手截获了 HTTPS 加证书认证后的数据

wireshark 抓包过滤器使用

帅比萌擦擦* 提交于 2020-03-04 22:55:19
wireshark 抓包过滤器 过滤器分为抓包过滤器和显示过滤器,抓包过滤器会将不满足过滤条件的包丢弃,只保留满足条件的包,而显示过滤器则是对已抓取的包做过滤,过滤出满足条件的包。 显示过滤器可以保留全部的报数据,方便后期做流量分析,而抓包过滤器保留的数据有限,后期分析有局限性。 一、抓包过滤器 wireshark抓包是基于其内部的libpcap/wincap库 打开软件时直接在filter栏输入过滤规则即可,如下以wireshark2.6举例 Capture --> Options 使用的是BFP语法(Berkeley Packet Filter),一共四个元素: 类型(Type) host、net、port 方向(Dir) src、dst 协议(Proto) ether、ip、tcp、udp、http、ftp 逻辑运算符 && 与 || 或 ! 非 示例: 抓取源地址为192.168.1.1,目的端口为80的流量 src host 192.168.1.1 && dst port 80 抓取192.168.1.1和192.168.1.2的流量 host 192.168.1.1 || host 192.168.1.2 不要抓取广播包 ! broadcast 过滤mac地址: ether host 00:88:ca:86:f8:0d ether src host 00:88:ca