抓取并过滤dapp流量包
软件:wireshark
环境:Dapp连本地Ganache端口,用Metamask连测试网络Ropsten,根据ip地址 (localhost) 和端口 (7545) 过滤流量
官网无脑安装
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格式保存即可)
参考csdn五个wireshark课程:
wireshark抓包实战
Wireshark抓包入门到精通实战教程
2019版抓包分析-Wireshaek从入门到精通【基础班】
2019版抓包分析-Wireshark从入门到精通【进阶版】
网络技术从零开始学Wireshark抓包-协议分析与故障排除教程【完整版】
ps:
不建议详细看和记录每条指令,跳着看看大概wireshark有什么功能,如捕获方式,如显示过滤和捕获过滤就OK。不要一次性记细节,像哪个选项实现什么功能、哪条命令有什么作用等不需要记。只要有个模糊的印象,随用随查就行。
我有个习惯,遇到新领域会先查所有有关的博客、视频、官方文档等教程,
这些视频是找到所有相关的,不是推荐。
为了快一些,没有记详细笔记。这个软件本身也很好上手。
一些笔记太乱也放在草稿箱里补贴出来了,这些是整理的一部分。
抓取数据包涉及到 计算机网络 这门课,我又回顾了一些这门课的概念:
计算机网络:通过传输线路把终端节点(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(最常用)数据格式:
域名
端口:标识主机多个进程中的某一个进程,将数据包特别地传给它
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
目前流行的抓包软件为 tcpdump OmniPeek Wireshark
其中,tcpdump 为 命令行程序,后二者拥有图形化界面
数据包嗅探器(即抓包)工作原理:
① 收集(收集原始的二进制数)
② 转换(将收集的二进制数转换成可读形式)
③ 分析(对捕获和转换后的数据进行真正的深入分析)
wireshark主要有两种过滤器,
① 捕获过滤器:只抓满足某种条件的包,如port = 80,UDP协议的包【用于明确地知道哪种包有问题时】【语法是libpca/winpca库中tcpdump中的语法 BPF语法】
② 显示过滤器:所有包都抓,之后可以在所有包中搜索符合某种条件的包【用于不知道哪种包有问题时,自己手动再过滤】【常用】【语法在捕获过滤器语法若干年后定义,两套语法不同】
常用命令:
捕获过滤器 | 数据链路层第二层
捕获过滤器 | 网际层第三层
捕获过滤器常用命令
显示过滤器
wireshark命令行抓包:
先查看本地接口,我连的是5
抓包:
分析包时,一般看报头就行(最多80个字节),后面的data数据看了也没用
分析网络故障控制抓数据包的长度在 80B左右 即可
如果抓出来的数据做流量分析,就不要控制长度,全抓出来就行了
wireshark中有一些流量分析、protocol分析、conversion分析工具,甚至graph可视化的statistic工具,太乱了记得,也不详细,就不贴出来了。知道有这些工具,自己按需所搜就行了