Wireshark的简单使用

1.写在前面

前面的博客已经介绍完了HTTP的协议,但是HTTP协议我们经常需要使用Wireshare工具进行抓包,我们先看下网络爬虫。

2.网络爬虫Web crawler

  • 网络爬虫模拟人类使用浏览器浏览、操作页面的行为,对互联网的站点进行操作

  • 网络爬虫获取到一个页面后,会分析出页面里所有的URI,沿着这些URI路径递归的遍历所有页面,因此被称为爬虫(Web crawler)、蜘蛛(Spider)、网络机器人(spiderbot)

    在这里插入图片描述

    对待网络爬虫的2种态度:欢迎常光临

    • SEO(Searche Engine Optimization),搜索引擎优化
      • 合法的优化:sitemap、title、keywords、https等
      • 非法的优化:利用PageRank算法漏洞

    对待网络爬虫的2种态度:拒绝访问

    • 为了对抗网络爬虫而生的图形验证码
    • 为了对抗图形验证码而生的"打码平台"
    • 升级图形验证码

网络爬虫如何抓取数据

  • 模拟浏览器渲染引擎,需要对JavaScript文件分析执行、发起Ajax请求等
  • 爬虫爬取数据的速度VS互联网生成信息的速度
    • 爬虫执行速度快,许多爬虫可以并行执行
    • 互联网生成信息的速度大于爬取速度
  • 优先爬取更重要的页面

爬虫常见的请求头部

  • User-Agent:识别是哪类爬虫
  • From:提供爬虫机器人管理者的邮箱地址
  • Accept:告知服务器爬虫对那些资源类型感兴趣
  • Referer:相当于包含了当前请求的页面URI

robots.txt:告知爬虫那些内容不应爬取

  • Robots.txt文件内容

    • User-agent:允许那些机器人

    • Disallow:禁止访问特定目录

    • Crawl-delay:访问间隔秒数

    • Allow:抵消Disallow指令

    • Sitemap:指定站点地图的URI

      在这里插入图片描述

3.HTTP协议的基本认证

HTTP基本认证

  • RFC7235,一种基本的验证框架,被绝大部分浏览器所支持

  • 明文传输,如果不使用TLS/SSL传输则由安全问题

    在这里插入图片描述

认证请求

在这里插入图片描述

认证响应

在这里插入图片描述

4.Wireshark的基本用法

如何捕获报文

  • 点击捕获->选项,打开捕获窗口

    • 网卡设备/流量/捕获过滤器,点击"开始"按钮开始抓包
    • 输出(指定缓存文件)/选项(显示、名称解析、自动停止抓包条件)面板
  • 点击捕获->停止,停止抓包

    在这里插入图片描述

Wireshare面板

在这里插入图片描述

快捷方式工具栏

在这里插入图片描述

数据包的颜色(视图->着色规则)

在这里插入图片描述

设定时间显示格式

在这里插入图片描述

数据包列表面板的标记符号

在这里插入图片描述

四种流跟踪

  • TCP
  • UDP
  • SSL
  • HTTP

文件操作

  • 标记报文Ctrl+M
  • 导出标记报文(文件->导出特定分组)亦可按过滤器导出报文
  • 合并读入多个报文(文件->合并)

如何快速抓取移动设备的报文

  1. 在操作系统上打开WiFi热点
  2. 手机连接WiFi热点
  3. 用Wireshark打开捕获->选项面板,选择WiFi热点对应的接口设备抓包

5.如何通过DNS协议解析域名?

什么是DNS

  • 一个用于将人类可读的域名与服务器的IP地址进行映射的数据库

  • 递归查询

    • 根域名服务器
    • 权威服务器

    在这里插入图片描述

DNS域名结构

在这里插入图片描述

递归查询

在这里插入图片描述

DNS报文:查询与响应

  • query:查询域名

  • response:返回IP地址

    在这里插入图片描述

DNS报文

在这里插入图片描述

Questions格式

  • QNAME编码规则

    • 以.分隔为多段,每段以字节数打头
      • 单字节,前2比特必须为00,只能表示2^6-1=63字节
    • 以ASCII编码每段字符
    • 以0结尾
  • QTYPE常用类型

    类型意义
    1AIPv4地址
    2NS权威域名服务器
    5CNAME别名
    15MX邮件交换
    16TXT文本字符串
    28AAAAIPv6地址
  • QCLASS:IN表示Internet

    在这里插入图片描述

Answer格式

  • NAME:前2位为11,接引用QNAME偏移
    • 在DNS头部的字符偏移数
  • TTL:Time To Live
  • RDLENGTH:指明RDATA的长度
  • RDATA:查询值,如IP地址,或者别名
    • 别名遵循QNAME编码规则

在这里插入图片描述

6.Wireshark过滤器

  • 捕获过滤器
    • 用于减少抓取的报文体积
    • 使用BPF语法,功能相对有限
  • 显示过滤器
    • 对已经抓取到的报文过滤显示
    • 功能强大

BPF过滤器:Wireshark捕获过滤器

  • Berkeley Packet Filter,在设备驱动级别提供抓包过滤接口,多数抓包工具都支持此语法
  • expression表达式:由多个原语组成

Expression表达式

  • primitives原语:由名称或数字,以及描述它的多个限定词组成
    • qualifiers限定词
      • Type:设置数字或者名称所指示类型,例如host www.baidu.com
      • Dir: 设置网络出入方向,例如dst port 80
      • Proto:指定协议类型,例如udp
      • 其他
  • 原语运算符
    • 与:&&或者and
    • 或:|| 或者or
    • 非:! 或者not
  • 例如:src or dst portrange 6000-8000 && tcp or ip6

限定词

Type:设置数字或者名称所指示类型

  • host、port
  • net、设定子网、net 192.168.0.0 mask 255.255.255.0 等价于 net 192.168.0.0/24
  • portrange,设置端口范围,例如 portrange 6000-8000

Dir:设置网络注入方向

  • src、dst、src or dst、src and dst
  • ra、ta、addr1、addr2、addr3、addr4(仅对IEEE 802.11 Wireless LAN 有效)

Proto:指定协议类型

  • ether、fddi、tr、wlan、ip、ip6、arp、rarp、decnet、tcp、udp、icmp、igmp、igrp、pim、ah、esp、vrrp

其他

  • gateway:指明网关IP地址,等价于ether host ehost and not host host
  • broadcast:广播报文,例如 enther broadcast 或者 ip broadcast
  • multicast: 多播报文,例如 ip multicast或者ip6 multicast
  • less、greater:小于或者大于

基于协议域过滤

  • 捕获所有TCP中的RST报文

    • tcp[13]&4==4
  • 抓取HTTP GET报文

    • Port 80 and tcp[((tcp[12:1]&0xf0)>>2):4]=0x47455420

    • 注意:47455420是ASCII码的16进制,表示"GET"

    • TCP报头可能不止20个字节,data offset提示承载数据的偏移,但它以4字节为单位

    在这里插入图片描述

7.Wireshark的显示过滤器

显示过滤器的过滤属性

  • 任何在报文细节面板中解析出的字段名,都可以作为过滤属性

    • 在视图->内部->支持的协议面板里,可以看到各字段名对应的属性名

      • 例如,在报文细节面板中TCP协议头中的Source Port,对应着过滤属性为tcp.srcport

        在这里插入图片描述

过滤值比较符号

在这里插入图片描述

过滤值类型

  • Unsigned integer:无符号整型,例如ip.len le 1500
  • Signed integer:有符号整型
  • Boolean:布尔值,例如tcp.flags.syn
  • Ethernet address:以:、-或者.分隔的6字节地址,例如eth.dst == ff:ff:ff:ff:ff:ff
  • IPv4 address:例如ip.addr == 92.169.0.1
  • IPv6 address:例如 ipv6.addr == ::1
  • Text string:例如http.request.uri = = “https://www.wireshark.org/”

多个表达式间的组合

在这里插入图片描述

其他常用操作符

在这里插入图片描述

可用函数

在这里插入图片描述

显示过滤器的可视化对话框

在这里插入图片描述

8.写在最后

本篇博客主要介绍了Wireshark的简单的使用,以及我们如何通过DNS协议解析域名?后面的博客我们会继续介绍WebSocket的相关的协议,还有就是HTTP2协议,以及TLS/SSL协议,TCP协议,IP协议。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值