1、抓包工具概述
http/https
fiddler/burpsuite/charels
socket/tcp
抓网卡
wireshark/sniffer
防止DL
小米wifi+wpe
2、fiddler安装及环境配置
(1)fiddler工具介绍
Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的DL服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带的抓包工具要好用的多。不仅如此,它还可以支持请求重放等一些高级功能。显然它是可以支持对手机应用进行http抓包的。本文就来介绍下如何用fiddler对手机应用来抓包。
fiddler工具安装非常简单,这里就不说了。
fiddler工具抓包环境配置。
(2)启动Fiddler,打开菜单栏中的 Tools > Fiddler Options,打开“Fiddler Options”对话框。
(3)在Fiddler Options”对话框切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选框,然后点击“OK”按钮。
(4)在本机命令行输入:ipconfig,找到本机的ip地址。
(5)打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。
(6)在“DL”后面的输入框选择“手动”,在“DL服务器主机名”后面的输入框输入电脑的ip地址,在“DL服务器端口”后面的输入框输入8888,然后点击“保存”按钮。
(7)然后启动android设备中的浏览器,访问百度的首页,在fiddler中可以看到完成的请求和响应数据。
(8)抓不到包原因
- ①如网游副本,有的就是没有包。
- ②fiddler只能抓HTTP/HTTPS,如果是socket抓不到的。
- ③在动态调试时,没有走到发包的地方。
3、burpsuite
(1)burpsuite工具介绍
BurpSuite是一款基于java开发的抓包工具,能够抓取http/https/websocket协议的数据包。
burpsuite工具安装非常简单,这里就不说了。
burpsuite工具抓包环境配置。
(2)启动burpsuite,简单介绍的来介绍一下burpsuite工具的菜单
栏。
Target(目标):显示目标目录结构的的一个功能
Proxy(DL):是一个拦截HTTP/S的DL服务器(抓包),作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider(爬虫):是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
Scanner(扫描器)[仅限专业版]:是一个高级的工具,执行后,它能自动地发现web 应用程序的安全漏洞。
lntruder(入侵):是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集有用的数据,以及使用fuzzing 技术探测常规漏洞。
Repeater(中继器):是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具。
Sequencer(会话):是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder(解码器):是一个进行手动执行或对应用程序数据者智能解码编码的工具。
Comparer(对比):是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
Extender(扩展):可以让你加载Burp Suite的扩展,使用你自己的或第三方代码来扩展Burp Suit的功能。
(3)Proxy模块
Intercept选项
Forward:用于发送数据。当把所需要的HTTP请求编辑编辑完成后,手 动发送数据。
Drop:将该请求包丢弃。
Intercept is off/on:拦截开关。当处于off状态下时,BurpSuite会 自动转发所拦截的所有请求;当处于on状态下时,BurpSuite会将所有 拦截所有符合规则的请求并将它显示出来等待编辑或其他操作。
Action:功能菜单,与右键菜单内容相同,在这可以将请求包发送到其 他的模块或者对数据包进行其他的操作。
HTTP hisstory选项
(请求索引号)、Host(主机)、Method(请求方式)、URL(请求地址)、
Params(参数)、Edited(编辑)、Status(状态)、
Length(响应字 节长度)、MIME type(响应的MLME类型)、
Extension(地址文件扩展名)、Title(页面标题)、Comment(注释)、
SSL、IP(目标IP地址)、Cookies、Time(发出请求时间)、
Listener port(监听端口)。
WebSockets history选项
这个版块用于记录WebSockets的数据包,是HTML5中最强大的通信功能,定义了一个全双工的通信信道,只需Web上的一个 Socket即可进行通信,能减少不必要的网络流量并降低网络延迟。
Options选项
DL侦听器是侦听从您的浏览器传入的连接本地HTTPDL服务器。它允许您监视和拦截所有的请求和响应,并且位于BurpProxy的工作流的心脏。默认情况下,Burp默认监挺127.0.0.1地址,端口8080。要使用这个监听器,你需要配置你的浏览器使用127.0.0.1:8080作为DL服务器。此默认监听器是必需的测试几乎所有的基于浏览器的所有Web应用程序。
add:添加一个新的DL地址。
binding:新建一个DL,bind to port-绑定端口号,bind to address -绑定ip地址。
request hadning:这些设置包括选项来控制是否BurpSuite重定向通过此侦听器接收到的请求:
- Redirect to host -如果配置了这个选项,Burp会在每次请求转发到指定的主机,而不必受限于览器所请求的目标。需要注意的是,如果你正使用该选项,则可能需要配置匹配/替换规则重写的主机中的请求,如果服务器中,您重定向请求预期,不同于由浏览器发送一个主机头。
-Redirect to port - 如果配置了这个选项,Burp会在每次请求转发到指定的端口,而不必受限于浏览。
-Force use of SSL - 如果配置了这个选项,Burp会使用HTTPS在所有向外的连接,即使传入的请求中使用普通的HTTP。您可以使用此选项,在与SSL相关的响应修改选项结合,开展sslstrip般的攻击使用Burp,其中,强制执行HTTPS的应用程序可以降级为普通的HTTP的受害用户的流量在不知不觉中通过BurpProxyDL。
Certificate:这些设置控制呈现给客户端的SSL服务器的SSL证书。
Generate CA-signed per-host certificate-这是默认选项。安装后,BurpSuite创造了一个独特的自签名的证书颁发机构(CA)证书,并将此计算机上使用,每次BurpSuite运行。当你的浏览器发出SSL连接到指定的主机,Burp产生该主机,通过CA证书签名的SSL证书。您可以安装BurpSuite的CA证书作为在浏览器中受信任的根,从而使每个主机的证书被接受,没有任何警报。您还可以导出其他工具或Burp的其他实例使用CA证书。
Generate a CA-signed certificate with a specific hostname-这类似于前面的选项;然而,Burp会产生一个单一的主机证书与每一个SSL连接使用,使用您指定的主机名。在进行无形的DL时,此选项有时是必要的,因为客户端没有发送连接请求,因此Burp不能确定SSL协议所需的主机名。你也可以安装BurpSuite的CA证书作为受信任的根。
Use a custom certificate-此选项使您可以加载一个特定的证书(在PKCS#12格式)呈现给你的浏览器。如果应用程序使用它需要特定的服务器证书(例如一个给定序列号或证书链)的客户端应该使用这个选项。
edit:编辑选中的DL地址。相关选项类似于add,不再叙述。
remove:删除选中DL地址。
(3)配置burpsuite抓包环境
打开burpsuite,切换到Proxy,然后切换到下面的Options选项,然后点击add,然后配置好端口,ip选择本机的ip地址,然后点击ok添加。
将running框勾选上
4)下载burpsuite证书
在电脑端使用浏览器访问设置的DLip:端口,下载burpsuite证书,比如我上面的ip为192.168.0.119,端口为8080,就访问
http://192.168.0.119:8080/然后去下载证书。
点击CA certificate下载burpsuite的证书,保存证书文件。
(5)安装证书
找到下载的cacert.der证书文件,选中该文件右键选择“安装证书”选项,之后一路点击“下一步”就安装完成了。安装完成后按“win+R”输入“certmgr.msc ”命令打开证书管理器,找到“中间证书颁发机构”下的“证书”选项,点击打开找到“PortSwigger CA”选项右键“所有任务”=>“导出”,将会弹出证书导出向导对话框,直接点击下一步,选择要导出的证书格式为“DER 编码二进制X.509(.CER)(D)”选项,然后一路点击下一步保存证书文件。这样操作的原因是因为手机上面识别不了burpsuite默认导出的证书格式,要转换一下。
导出之后,将证书放到手机的sd卡中,然后进入手机设置,安全,从 sd卡安装,然后选择放到手机的证书文件,如果手机没有设置锁屏密码,这里会要求设置手机锁屏密码。不同的手机导入略微有些不同,但是都是在设置,安全设置里面去导入证书。
点击从sd卡安装就可以选择sd卡中的证书文件,然后安装了。
(6)配置DL服务器
进入手机设置,将手机和wifi连接到同一个路由器上面,然后长按当前连接的wifi,选择修改网络,滑到最下面,勾选显示高级选项,然后选择DL设置为手动DL服务器主机名字填电脑ip,端口填你刚刚设置的端口。然后确定,就设置成功了。具体的操作和fiddler工具是一样的,在这里就不截图了。
设置好之后便可以抓取https的数据包了。
上面讲的都是PC端的抓包工具。
接下来我们来了解一下手机端
常用的两款抓包工具,HttpCanary和packetcapture。
4、HttpCanary
HttpCanary是一款功能强大的HTTP/HTTPS/HTTP2网络包抓取和分析工具,你可以把他看成是移动端的Fiddler或者Charles,但是HttpCanary使用起来更加地简单容易,因为它是专门为移动端设计的!
最重要的是:无需root权限!无需root权限!无需root权限!
(1)支持协议
HTTP1.0, HTTP1.1, HTTP2.0, WebSocket 和 TLS/SSL。
(2)注入功能
HttpCanary支持修改请求和响应数据,然后提交到客户端或服务端,也就是注入功能。HttpCanary提供了两种不同的注入模式:静态注入和动态注入。使用这两种模式,可以实现对请求参数,请求/响应头,请求/响应体,响应行的注入。您还可以创建不同需求的注入器,因为静态注入可以支持多个注入器同时工作。
(3)数据浏览
- HttpCanary具有多种不同的视图浏览功能。
- Raw视图:可以查看原始数据;
- Text视图:以Text的形式查看请求/响应体内容;
- Hex视图:以Hex的形式查看请求/响应体内容;
- Json视图:格式化Json字符串,支持节点的展开、关闭和复制等操作;
- 图片视图:可以预览BPM、PNG、GIF、JPG、WEBP等格式的图片内容;
- 音频视图:可以播放AAC、WAC、 MP3、OGG、MPEG等格式的音频内容;
(4)内容总览
HttpCanary支持浏览一个网络请求的总体概况,包括URL、HTTP协议、HTTP方法、响应码、服务器Host、服务器IP和端口、Content-Type、Keep-Alive、时间信息、数据大小信息等。
(5) 数据筛选和搜索
HttpCanary提供了多维度的数据过滤器和搜索功能,比如通过应用、Host、协议、方法、IP、端口、关键词搜索过滤等。
(6)屏蔽设定
HttpCanary可以对网络请求的数据发送以及服务器响应进行屏蔽操作,这个功能可以非常方便地帮助开发者进行Reset API的调试。
(7)插件
HttpCanary提供了丰富的扩展插件,包括Host屏蔽、Mime-Type屏蔽、图片音频视频下载、请求性能统计、微信定位漂移等。按照设计,开发者还可以开发自己的Plugin集成进HttpCanary中,也可以安装扩展Plugin(功能尚未开放)。
5、Packet Capture
Packet Capture 一款依托安卓系统自身V某N来达到免Root抓取数据包的应用程序。
Packet Capture一个使用SSL网络解密的 捕获数据包/网络嗅探 工具,虽然它的功能并不丰富,但是当你开发一个应用时,却不得不说它是一款强大的工具。
特点:捕获网络数据包,并记录它们使用中间人技术对SSL解密,无须root权限。
小结
1、常用抓包工具的介绍及适用场景。
2、fiddler工具的安装及抓包环境配置。
3、burpsuite工具的安装及使用,抓包环境配置、证书安装。
4、详细介绍了两款常用的手机端抓包工具,HttpCanary和Packet Capture。