WireShark

分析数据包技巧

  1. 确定WireShark的位置【是否在公网上】
  2. 选择捕获接口,一般都是internet网络接口
  3. 使用捕获过滤器
  4. 使用显示过滤器【捕获后的数据包还是很复杂,用显示过滤器过滤的更加细致】
  5. 使用着色规则【更加突出某个会话】
  6. 构件图表【看一个网络的数据变化,图表方式更直接】
  7. 重组数据【大的文件会将信息分布在很多个数据宝忠】

工作模式

混杂模式

  • 接受所有经过网卡的数据包,包括不是发给本地的数据包【即不验证MAC地址】

混杂模式的开启

普通模式

  • 普通模式下只接收发给本地的数据包(包括广播包)传递给上层程序,其他的包一律丢弃

协议分析

ARP协议

ARP协议介绍

  • 地址解析协议,是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议,它在IPV4中很重要【ARP是通过网络地址来定位MAC地址】

ARP包内容

ARP协议工作流程

看到应答包补全了自己的MAC地址,目的地址和源地址做了替换

192.168.31.155 广播:谁有192.168.31.1的MAC地址?
192.168.31.1 应答:192.168.31.1的MAC地址是xxxxxxxx

ICMP协议

ICMP协议介绍

  • 它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用

ICMP包内容

ICMP协议工作流程

本机发送一个ICMP Request包

接收方返回一个ICMP Reply包,包含了接收到的数据拷贝和一些其他指令

HTTP协议

TCP协议

TCP三次握手

  • 第一次握手

  • 第二次握手

  • 第三次握手

TCP四次挥手

UDP-DNS协议

  • 请求包

  • 响应包

常用指令

运算符

比较运算符 逻辑运算符
运算符 说明 运算符 说明
eq == 等于 and && 逻辑与
ne != 不等于 or || 逻辑或
gt > 大于 xor ^^ 逻辑异或
lt < 小于 not ! 逻辑非
ge >= 大于等于
le <= 小于等于

常见的过滤器

协议过滤器

语法

Protocal String String Comparsion opertor Value LogicalOptions Other expression

协议 值 值 比较运算符 值 逻辑运算符 其他协议

案例
显示POST提交的数据包或者是ICMP包<br>
http.request.method=="POST" or icmp.type<br> 显示IP地址为192.168.31.135的数据包<br>
id.addr==192.168.31.135<br> 显示来自10.20.0.0/16网段数据包<bR>
ip.src=10.20.0.0/16<br> 显示主机为192.168.30.33的相关数据包<br>
ip.host==192.168.30.33<br> 显示http响应状态码为302的相关数据包<br>
http.code==302<br> 显示TCP端口号为80的数据包<br>
tcp.port==80<br> 显示目的TCP端口为80的数据包<br>
tcp.dstport==80

内容过滤器

格式

contains [包含]

案例
显示包含"http"字符串的TCP数据包<br>
tcp contains "http"<br> 显示包含主机192.168.31.5的数据包<br>
http.host contains 192.168.31.5

案例【解决服务器无法上网】

TTL

Linux默认的TTL为64,每经过一个路由节点,TTL减1,TTL为0时,说明目标不可达并返回Time to live exceeded

TTL:数据报文的生存周期

TTL的作用:防止数据包在公网无限制转发

模拟场景

修改主机 TTL 值为 1,下面的方式是我们临时修改内核参数。

echo "1" > /proc/sys/net/ipv4/ip_default_ttl

  1. 单独ping网关【网关:192.168.31.1】

可以ping通

  1. ping一个网络地址

无法ping通,并返回了Time to live exceeded

再次修改一下TTL值

echo "2" > /proc/sys/net/ipv4/ip_default_ttl

  1. 再次ping网络地址

  • 发现虽然返回的是Time to live exceeded,但是返回的IP地址不是网关,这证明了数据包在网络中

    已经到达了下一个网络设备才被丢弃,由此我们还判断出我们的运营商网关地址为 171.120.52.1 但是我们并没有到达目标主机

修改回原来的TTL值

echo "64" > /proc/sys/net/ipv4/ip_default_ttl

MTR

  • 可以检测我们到达目标网络乊间的所有网络设备的网络质量,默认系统是没有安装 MTR 工具的我们手劢安装一下
apt install mtr
  • 检测到达 8.8.8.8 所有节点的通信质量
mtr 8.8.8.8

  • 我们可以看到从我当前主机到目标主机间经过 12 跳

WiresShark的更多相关文章

  1. WiresShark使用说明

    WiresShark是号称全世界最流行的网络分析工具(它的官网自己说的).下载地址:https://www.wireshark.org/#download,目前最新版本是2.6.2.我本地用的是汉化的 ...

  2. WiresShark 一站式学习

    按照国际惯例,从最基本的说起. 抓取报文: 下载和安装好Wireshark之后,启动Wireshark并且在接口列表中选择接口名,然后开始在此接口上抓包.例如,如果想要在无线网络上抓取流量,点击无线接 ...

  3. WiresShark 使用方法

    Wireshark(前称Ethereal)是一款功能强大的网络抓包分析工具,在我的工作中是不可或缺的一部分工具,往往在网络出现异常时,查看网络中的数据包,会豁然开朗.1.菜单栏  主菜单包括以下几个项 ...

  4. WiresShark 图解教程1

    Wireshark是世界上最流行的网络分析工具.这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息.与很多其他网络工具一样,Wireshark也使用pcap network ...

  5. 抓包之网络分析器- Wiresshark

    https://www.wireshark.org/ Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wi ...

  6. 阻碍android程序员发展的几个原因

    1应该少看网上的android开发相关技术帖子,一个是错误很多,表达也不清楚,很多都是拷贝来拷贝去的.二个是技术变迁快,很多都过时了,经常看android技术相关帖子,养成了一种惰性,遇到问题不是去看 ...

  7. Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹

    Nessus漏洞扫描教程之使用Nmap工具扫描识别指纹 Nmap工具的准备工作 当用户对Nessus工具有清晰的认识后,即可使用该工具实施扫描.但是,在扫描之前需要做一些准备工作,如探测网络中活动的主 ...

  8. 原:wireshare使用技巧收集

    /data/local/tcpdump -p -vv -s 0 -w /sdcard/ThinkDrive.pcap     先抓一个pcap的包. 1. 查看所有的链接与流量 统计->对话 这 ...

  9. 转:android root tcpdump抓包强烈推荐

    转:http://www.cnblogs.com/findyou/p/3491035.html 写的相当详细且完整,业界良心. adb push d:\tcpdump /data/local/ adb ...

随机推荐

  1. 使用Python3.7+Tornado5.1配合七牛云存储api来异步切分上传文件

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_123 之前写了几篇关于FastDfs分布式存储的文章:python3.7.3操作FastDfs来进行文件操作,其实市面上关于云存储 ...

  2. MySQL 的prepare使用中的bug解析过程

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 一.问题发现 二.问题调查过程 三.问题解决方案 四.问题总结 一.问题发现 在一次开发中使用 MySQL PREP ...

  3. Apache DolphinScheduler 使用文档(4/8):软件部署

    本文章经授权转载,原文链接: https://blog.csdn.net/MiaoSO/article/details/104770720 目录 4. 软件部署 4.1 为 dolphinschedu ...

  4. Hi3516开发笔记(十):Qt从VPSS中获取通道图像数据存储为jpg文件

    前言   上一篇已经将himpp套入qt的基础上进行开发.那么qt中拿到frame则是很关键的交互,这是qt与海思可能编解码交叉开发的关键步骤.   受限制   因为直接配置sample的vi比较麻烦 ...

  5. java-分支结构(四种基本分支结构的认识)

    分支结构:有条件的执行某语句,并非每句必走 1)if结构:1条路 2)if...else结构:2条路 3)if...else if结构:多条路 4)switch...case结构:多条路 优点:效率高 ...

  6. Python自动化测试之文件操作

    1.读.写.追加文件 读:打开文件  r    读写:r+ 写:w 可写不可读  清空原文件   写读:w+ 清空文件 追加:a+  可以读写,文件不存在自动创建 练习读txt文件类容: #-*- c ...

  7. 十周周末总结 MySQL的介绍与使用

    python 十周周末总结 MySQL的介绍与使用 MySQL字符编码与配置文件 查看数据库的基本信息(用户,字符编码) /s windos下MySQL默认的配置文件 my_default.ini 修 ...

  8. SpringBoot中maven项目Plugins里resources报红

    错误原因:刚开始下载依赖时下载错误导致的 参考:解决idea中maven plugins标红的问题 - 走看看 (zoukankan.com) 如果还不行: 就根据上面提示的地址找到maven的配置包 ...

  9. 开源:Taurus.MVC-Java 版本框架 (支持javax.servlet.*和jakarta.servlet.*双系列,内集成微服务客户端)

    版本说明: 因为之前有了Taurus.MVC-DotNet 版本框架,因此框架标了-Java后缀. .Net  版本: 开源文章:开源:Taurus.MVC-DotNet 版本框架 (支持.NET C ...

  10. 如何将原生微信小程序页面改成原生VUE框架的H5页面

    项目背景: 公司为了实现小程序与H5页面共同覆盖,全面推广.特此想将已有的小程序进行快速改造上线(二周内),研发出H5版本.目前公司前端技术较为薄弱,现有的技术解决方案还停留在JSP. 问题: 如何将 ...