DApp区块链 | wireshark抓包

需求

抓取并过滤DApp流量包

方法

软件:wireshark
环境:Dapp连本地Ganache端口,用Metamask连测试网络Ropsten
过滤:本文根据ip地址 (localhost) 和端口 (7545) 过滤流量。
其实这样只能捕捉部分包,升级版抓包方式可见 DApp区块链 | wireshark抓包2 这篇文章

步骤

安装wireshark

官网无脑安装

安装npcap

wireshark不能监听本地回环127.0.0.1,安装npcap 可以解决这个问题
在这里插入图片描述
或者使用 RawCap 也OK

双击"Adapter for loopback traffic capture"即可抓 127.0.0.1 的包

我想显示port列
在这里插入图片描述
使用显示过滤:ip.addr == 127.0.0.1 and tcp.srcport == 7545
在这里插入图片描述
文件 -> 到处特定分组(以默认格式pcapng格式保存即可)

后来发现,其实根据IP过滤仅能捕获一部分流量包,详见 DApp区块链 | wireshark抓包2 这篇文章

参考csdn五个wireshark课程:
wireshark抓包实战
Wireshark抓包入门到精通实战教程
2019版抓包分析-Wireshaek从入门到精通【基础班】
2019版抓包分析-Wireshark从入门到精通【进阶版】
网络技术从零开始学Wireshark抓包-协议分析与故障排除教程【完整版】

ps:

不建议详细看和记录每条指令,跳着看看大概wireshark有什么功能,如捕获方式,如显示过滤和捕获过滤就OK。不要一次性记细节,像哪个选项实现什么功能、哪条命令有什么作用等不需要记。只要有个模糊的印象,随用随查就行。

我有个习惯,遇到新领域会先查所有有关的博客、视频、官方文档等教程,
这些视频是找到所有相关的,不是推荐。

现象 | 无法DApp抓包

问题

Wireshark抓包,可以抓到本地自己(localhost)建在测试网络上的DApp的包,但是捕获不了公网部署的DApp流量包(通过ip筛选过滤),我考虑了以下几个原因:

思路

DApp是否产生流量 -> 可否需进程抓包 -> 网卡选择 -> 流量加密 -> 过滤器设置

经过实验,排除了很多可能,其中我注意到一个现象:
在这里插入图片描述

即普通的web网址,有些也是抓不到包的(有些ping成功,有些ping不成功)
而无法抓包的网址有一个特点,都需要科学上网,需要经过代理
而代理可能进行了流量加密,使我抓不到流量包

解决

基于这个猜想,我关闭了代理,然后就可以正常抓取DApp的流量包了
所以,虽然DApp这些网址在国内是可以正常访问的,但当代理开启后,它们也默认走了代理(虽然我也不知道为什么),而导致被流量加密

笔记

为了快一些,没有记详细笔记。这个软件本身也很好上手。
一些笔记太乱也放在草稿箱里补贴出来了,这些是整理的一部分。

计算机网络

抓取数据包涉及到 计算机网络 这门课,我又回顾了一些这门课的概念:

  • 计算机网络:通过传输线路把终端节点(PC)和网络节点(路由器、交换机)连接起来,实现资源共享

  • 协议:不同层通讯的语言 (RFC规范),对网络故障分析就是分析协议是否正常

  • 数据:物理层叫比特流,数据链路层叫帧,网络层叫报

  • 不同层协议:
    在这里插入图片描述

  • 一个讲计算机网络挺好的专栏

  • MAC地址和IP地址的区别
    MAC地址又被称为物理地址、硬件地址;网络层加IP首部,数据链路层加MAC首部

  • 数据链路层

  • 网络适配器(网卡)

  • 抓取的是网卡上的流量,wireshark的作用是将 网卡上的 机器语言0/1 组装成我们能看懂的样子
    请添加图片描述

  • 交换机/路由器等无法安装wireshark的器件抓包:
    请添加图片描述
    嗅探器抓包方法:
    ① PC中网卡混杂模式
    ② 利用集线器进行嗅探抓取
    ③ 交换机sw moniter技术
    ④ 路由器 Netflow技术、高端自带wireshark

  • 关于IP数据报:
    计算机网络第24讲-IPv4数据报的首部(计算机网络简明教程及仿真实验)
    这个视频讲得很好
    在这里插入图片描述
    全世界最常使用的网络是互联网,互联网采用TCP/IP协议发送数据
    在这里插入图片描述
    TCP/IP协议将 网络层 -> 网际层 因为IP协议又被称为网际协议
    网际层中加入的数据首部即为IP首部
    为了仅在网际层就可以互联各种不同种类的网络,将下两层的数据链路层和物理层封装为网络接口层
    用户的数据都被封装进IP数据报,

  • IPv4(最常用)数据格式:f

  • 域名

  • 端口:标识主机多个进程中的某一个进程,将数据包特别地传给它

  • URL ip地址 域名 域名解析DNS hosts

  • FTP:文件传输协议

  • Telnet:远程登录协议

  • https就相当于对http协议(应用层)进行了加密保护,更安全

  • 关于私网和公网:
    公网IP全世界唯一,一个网络设备一个
    私网IP是由路由器分配给内部使用的IP地址,私网内的所有用户都通过一个公网IP上网
    私网的IP地址每个人都不一样,Internet上的用户无法直接访问私网和私网用户
    例子,公网IP显示了我在整个互联网上的地址,相当于小区地址;
    私网IP显示了我在局域网中的地址,相当于小区内的几栋几楼几号房子

  • cmd命令
    ncpa.cpl :查看当前网卡配置
    netstat -ab :查看监听端口及监听它的程序
    在这里插入图片描述
    如第一行,135端口在被svchost.exe这个端口监听
    所以关于135端口,可以找svchost.exe程序解析

  • OSI协议 vs TCP/IP协议
    在这里插入图片描述

  • 数据层的封装与解封装伴随在数据传输的整个过程

  • 包头封装方式:Ethernet IEEE802-3

wireshark

  • 目前流行的抓包软件为 tcpdump OmniPeek Wireshark
    其中,tcpdump 为 命令行程序,后二者拥有图形化界面

  • 数据包嗅探器(即抓包)工作原理:
    ① 收集(收集原始的二进制数)
    ② 转换(将收集的二进制数转换成可读形式)
    ③ 分析(对捕获和转换后的数据进行真正的深入分析)

  • wireshark主要有两种过滤器,
    ① 捕获过滤器:只抓满足某种条件的包,如port = 80,UDP协议的包【用于明确地知道哪种包有问题时】【语法是libpca/winpca库中tcpdump中的语法 BPF语法】
    在这里插入图片描述

    ② 显示过滤器:所有包都抓,之后可以在所有包中搜索符合某种条件的包【用于不知道哪种包有问题时,自己手动再过滤】【常用】【语法在捕获过滤器语法若干年后定义,两套语法不同】
    在这里插入图片描述

    常用命令
    捕获过滤器 | 数据链路层第二层
    在这里插入图片描述
    捕获过滤器 | 网际层第三层
    捕获过滤器常用命令
    在这里插入图片描述
    在这里插入图片描述

    显示过滤器
    在这里插入图片描述
    在这里插入图片描述

  • wireshark命令行抓包:
    在这里插入图片描述
    先查看本地接口,我连的是5
    在这里插入图片描述
    抓包:
    在这里插入图片描述

  • 分析包时,一般看报头就行(最多80个字节),后面的data数据看了也没用
    分析网络故障控制抓数据包的长度在 80B左右 即可
    如果抓出来的数据做流量分析,就不要控制长度,全抓出来就行了

  • wireshark中有一些流量分析、protocol分析、conversion分析工具,甚至graph可视化的statistic工具,太乱了记得,也不详细,就不贴出来了。知道有这些工具,自己按需所搜就行了

猜你喜欢

转载自blog.csdn.net/qq_45832958/article/details/121111597