前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web基础配置篇(九): 抓包工具的介绍、安装及基本使用

Web基础配置篇(九): 抓包工具的介绍、安装及基本使用

作者头像
品茗IT
发布2019-09-12 11:17:59
2.9K0
发布2019-09-12 11:17:59
举报
文章被收录于专栏:品茗IT品茗IT

Web基础配置篇(九): 抓包工具的介绍、安装及基本使用

一、概述

抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。

抓包工具有很多,到网上一搜一大堆,但是本篇不准备介绍那些偏门的工具。本篇主要介绍下windows和linux上的主流几个抓包工具如何一步步使用的,以及在web开发中的应用。

本篇要介绍的工具包含:

windows:

  • Wireshark: 功能强大丰富,毋庸置疑。抓包工具首选。可以打开其他工具的抓包数据,配合RawCap,可以抓回路包。
  • Fiddler: http请求抓包工具,可以设置代理抓手机上的http请求。
  • SRSniffer: 指定进程的抓包工具,有点弱且卡,点到为止。
  • 浏览器自带的http抓包。

Linux:

  • tcpdump够用了。

重大说明:

  • 工具虽然很多,但是还是想多说一嘴,抓包工具虽然强大,但是都有自己的适用场景。如果你想抓windows上的http请求,那用浏览器自带的http抓包工具最好。
  • 如果想抓windows上的tcp包,还是用Wireshark吧
  • 如果想抓手机上上的http包,还是用Fiddler吧

**如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以<a

href="https://jq.qq.com/?_wv=1027&k=52sgH1J"

target="_blank">

加入我们的java学习圈,点击即可加入

</a>

,共同学习,节约学习时间,减少很多在学习中遇到的难题。**

二、windows的抓包工具

2.1 Wireshark
2.1.1 下载安装

首先,到官网:https://www.wireshark.org/#download下载wireshark。

然后,根据提示一路下一步就可以了。

2.1.2 启动

注意,一定要:右键--管理员启动,不然打开之后看不到接口,当然你要是有就更好了,反正我这儿不用管理员启动是用不了的。

在这里插入图片描述

打开之后是这样的,接口虽然多,但是可以一下子找到自己要找的接口,有波浪线的接口就是可以抓包的接口。

2.1.3 抓包

选择网络接口之后,就会看到数据包刷刷地滚动。最新的记录,都是在最底下的。

我们想肉眼找到某一条记录就太难了。可以使用左上角的过滤器做简单的筛选。

在这里插入图片描述

当然,我们开发过程中,往往是查找指定的目的IP的数据包。可以使用ip.src == 10.247.62.91 && ip.dst == 192.168.0.49这种语法来查找发起ip是10.247.62.91,目的ip是192.168.0.49这种数据包:

在这里插入图片描述

或语法:ip.src == 10.247.62.91 || ip.src == 127.0.0.1,查找发起ip是10.247.62.91或127.0.0.1的数据包。

我觉得够用了,最多再加上端口号:tcp.port == 20806这种语法。左上角的筛选器可以帮助你写筛选语句的。

2.1.4 本地回路数据抓包

有时候我们需要对本机的接口进行抓包测试,Wireshark暂时做不到,网上有说卸掉Wireshark的WinPcap,我觉得还是不要这样做,因为有更好的方案:RawCap。

下载RawCap:https://www.netresec.com/?page=RawCap

打开页面后,页面上显示有使用方法,可以不必看。

下载后,文件只有23k,这么小巧实用。我立即存到网盘,防止它丢失。

双击打开,根据提示选择127.0.0.1 Loopback Pseudo-Interface 1 Loopback

然后提示Output path or filename [default 'dumpfile.pcap']:输入文件路径或者文件名,默认是当前目录下的dumpfile.pcap。我默认走下去,然后它就一直抓包了。

界面如下:

在这里插入图片描述

然后目录下多了个dumpfile.pcap文件。你不关掉上面的界面,它就一直抓包下去。

用Wireshark打开dumpfile.pcap文件:

在这里插入图片描述

然后使用方式就同上了。

2.2 Fiddler
2.2.1 下载安装

官网下载:https://www.telerik.com/fiddler,随便填个信息,然后下载就行了。

然后一路走下去。不多说了。另外windows的http抓包也不说了,实用性不大。

2.2.2 手机端http抓包

1. 允许远程连接

在这里插入图片描述

2. 设置手机流量经过

设置代理,打开你的手机,找到你所连接的WIFI,长按选择修改网络,输入密码后往下拖动,然后勾选显示高级选项,然后在代理一栏选择手动,再将你电脑的IP地址和端口号输入进去,然后保存。

在这里插入图片描述

手机端浏览器打开fiddler的8888端口:http://ip地址:8888,提示下载证书。下载证书安装就可以了。

证书的作用是对https进行解析,等于是手机和fiddler之间建立了ssl通道,fiddler和目的网址之间也做了个ssl通道。

然后就可以用了:

在这里插入图片描述

2.3 SRSniffer

官方网址真难找,不过百度一下就很多下载地址。

我再在百度网盘放了一份:

链接:https://pan.baidu.com/s/1dKyoEB-qotQKsPEVLWCQ-w

提取码:h75r

打开之后,是真的卡。进程刷新,你可能会看花眼。而且名称看起来并不是你想要的。比如你想找java进程,它显示javaw.exe,不过也情有可原,毕竟eclipse的java进程就是javaw启动的。。

在这里插入图片描述

2.4 浏览器自带的抓包

按f12打开控制台,如果f12被禁掉了,可以在右键--> 检查(IE或者micresoft edge是审查元素)打开。如果右键也被禁掉了,随便找个没有禁掉的网页,先打开控制台,然后复制个连接到地址栏打开即可。

在这里插入图片描述

一般网站喜欢在控制台放个彩蛋,屁用没有。

点击network,就能看到网络请求的过程,以及请求响应这些。

在这里插入图片描述

三、Linux的抓包工具tcpdump

3.1 下载安装

这里还是只说centos的安装:yum -y install tcpdump.

命令行输入:tcpdump -help,显示:

代码语言:javascript
复制
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips  26 Jan 2017
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
                [ -Q|-P in|out|inout ]
                [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
                [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
                [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
                [ -Z user ] [ expression ]
3.2 常用选项
代码语言:javascript
复制
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。
3.3 抓包并生成文件,由wireshark打开

抓取所有经过eth0,目的或源地址是192.168.0.49的网络数据:

tcpdump -i eth0 host 192.168.0.49

在这里插入图片描述

将上面的命令结果保存到文件:tcpdump -i eth0 host 192.168.0.49 -w test.cap

生成的test.cap文件拿到windows上,可以由wireshark直接打开:

在这里插入图片描述

3.4 其他示例

1、默认启动

tcpdump -vv普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。2、过滤主机抓取所有经过eth0,目的或源地址是192.168.0.49的网络数据:tcpdump -i eth0 host 192.168.0.49指定源地址,192.168.0.49:tcpdump -i eth0 src host 192.168.0.49指定目的地址,192.168.0.49:tcpdump -i eth0 dst host 192.168.0.493、过滤端口抓取所有经过eth0,目的或源端口是25的网络数据:tcpdump -i eth0 port 25指定源端口:tcpdump -i eth0 src port 25指定目的端口:tcpdump -i eth0 dst port 254、网络过滤抓取ip段为192.168:tcpdump -i eth0 net 192.168抓取源ip段为192.168:tcpdump -i eth0 src net 192.168抓取目的ip段为192.168:tcpdump -i eth0 dst net 192.1685、协议过滤arp协议:tcpdump -i eth0 arpip协议:tcpdump -i eth0 iptcp协议:tcpdump -i eth0 tcpudp协议:tcpdump -i eth0 udpicmp协议:tcpdump -i eth0 icmp6、常用表达式非 : ! or "not" (去掉双引号) 且 : && or "and" 或 : || or "or"抓取所有经过eth0,目的地址是192.168.1.254或192.168.1.200端口是80的TCP数: tcpdump -i eth0 '((tcp) and (port 80) and ((dst host 192.168.1.254) or (dst host 192.168.1.200)))'

抓取所有经过eth0,目标MAC地址是00:01:02:03:04:05的ICMP数据:

tcpdump -i eth0 '((icmp) and ((ether dst host 00:01:02:03:04:05)))'抓取所有经过eth0,目的网络是192.168,但目的主机不是192.168.1.200的TCP数据: tcpdump -i eth0 '((tcp) and ((dst net 192.168) and (not dst host 192.168.1.200)))'

以上我觉得对于开发人员来说足够了,这篇文章有更详细的用法:https://www.cnblogs.com/chenpingzhao/p/9108570.html

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Web基础配置篇(九): 抓包工具的介绍、安装及基本使用
    • 一、概述
      • 二、windows的抓包工具
        • 2.1 Wireshark
        • 2.2 Fiddler
        • 2.3 SRSniffer
        • 2.4 浏览器自带的抓包
      • 三、Linux的抓包工具tcpdump
        • 3.1 下载安装
        • 3.2 常用选项
        • 3.3 抓包并生成文件,由wireshark打开
        • 3.4 其他示例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档