客户端与服务器端

CydiaSubstrate框架

Frida Native层HOOK

Frida hook Java层

需要相关资料的朋友,可以【加入此处即可打包获取】

一:抓包工具概述

http/https
fiddler/burpsuite/charels

socket/tcp
抓网卡
wireshark/sniffer
防止DL
小米wifi+wpe

二: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抓不到的。
  • ③在动态调试时,没有走到发包的地方。

三: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。

四: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(功能尚未开放)。

五:Packet Capture

Packet Capture 一款依托安卓系统自身V某N来达到免Root抓取数据包的应用程序。

Packet Capture一个使用SSL网络解密的 捕获数据包/网络嗅探 工具,虽然它的功能并不丰富,但是当你开发一个应用时,却不得不说它是一款强大的工具。

特点:捕获网络数据包,并记录它们使用中间人技术对SSL解密,无须root权限。

小结

1、常用抓包工具的介绍及适用场景。
2、fiddler工具的安装及抓包环境配置。
3、burpsuite工具的安装及使用,抓包环境配置、证书安装。
4、详细介绍了两款常用的手机端抓包工具,HttpCanary和Packet Capture。

如果你也对安卓逆向感兴趣。可以加入下方的群,大家一起讨论问题,或者扫描下方二维码关注公众号,关注回复 “安卓逆向” 获取免费教程

安卓逆向交流学习 Q群:876526335
vx:yijin_LX

pc端和移动端抓包工具相关推荐

  1. 推荐WebSocket、Https移动端(iOS)抓包工具mitmproxy

    1.mitmproxy下载地址:mitmproxy - an interactive HTTPS proxyhttps://mitmproxy.org/ mitmproxy-8.0.0-windows ...

  2. java pc端软件抓包,如何通过抓包工具fiddler获取java程序的http请求

    抓包工具fidder是一个很轻巧的可以获取浏览器,程序的http,https请求的软件. 百科地址:http://baike.baidu.com/view/868685.htm 官网地址:http:/ ...

  3. 原生的高性能macOS端的抓包工具-Proxyman

    " 可以说现在的抓包工具可谓是五花八门,比如Fiddler,Charles,LightProxy等,各有各的优缺点,最近又看到一个新的抓包工具,像我这样一个有强烈好奇心的人,怎么能错过,我们 ...

  4. 安卓端一键自动设置WiFi代理的APP,配合Fiddler、Burp、Charles等抓包工具使用,懒人必备!

    本文为原创文章,转载请注明出处!!! 前言 在安卓逆向.软件测试等工作过程中,使用Fiddler.Burp.Charles等抓包工具,需要经常设置和取消手机的WiFi代理. 因为一个字"懒& ...

  5. 抓包工具Charles(二)-移动端APP抓包(设置手机代理、安装证书)

    安装好Charles之后,还只能捕获电脑的接口请求 想要抓取移动设备的APP还需要设置代理.安装证书. 文章目录 一.抓包原理 二.手机设置网络代理 1. 查看电脑的IP地址(local IP add ...

  6. Fiddler抓包工具总结(转)

    序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的 ...

  7. charles 安装 ssl_前端开发如何使用抓包工具 charles

    抓包工具 https://www.charlesproxy.com/latest-release/download.do charles 官网 一. 安装 1. 下载 (自行根据系统下载对应软件) 打 ...

  8. fiddler+android抓包工具配置使用

    今天临时增加一个工作,手机需要抓包,查看了不同的抓包工具,最后确定使用fiddler抓包工具进行操作,这里以android为例记录一下工具的配置和使用操作. fiddler的安装 网上有很多fiddl ...

  9. charles抓包工具使用指南

    前言 移动APP抓包 PC端抓包 查看模式 其他功能 问题汇总 1. 前言: Charles是一款抓包修改工具,相比起burp,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓 ...

  10. Python3网络爬虫开发实战,抓包工具 Charles 的使用

    11.1 Charles 的使用 Charles 是一个网络抓包工具,我们可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求和响应内容,这就和 Web 端浏览器的开发者工具 ...

最新文章

  1. ThreadLocal的使用场景
  2. python批量读取根目录下文件内容并保存
  3. 【修订】为什么OO方法是有本质缺陷的?
  4. 多层陶瓷电容器用处_【科普】片状多层陶瓷电容器的封装方法,你了解吗?
  5. 20165105第三周学习总结
  6. Ubuntu安装Samba文件共享服务器(NAS)
  7. 在Ant的javac中指定源文件编码方式,以避免警告: 编码 GBK 的不可映射字符的错误...
  8. 处理一些常见的跨浏览器封装的函数
  9. 中南大学毕业设计(论文)LaTeX模板
  10. 设置边框大小html,css border-width属性设置边框宽度
  11. android rxbus github,RxBus for Android
  12. python字符串重复元素的删除_python删除列表重复元素
  13. 计算机桌面的任务栏,屏幕任务栏消失怎么办_电脑屏幕上任务栏不见了的解决方法...
  14. linux怎么停止ping命令
  15. linux 彻底删除oracle,Linux下完美卸载Oracle
  16. ecshop 添加php标签,ECSHOP模板制作修改自定义标签,ECSHOP标签大全,ECSHOP模板标
  17. 一键修改Windows密码批处理
  18. 软件测试中的“保险项目”讲解
  19. 记录:关于Win10系统中Microsoft Edge上的网页如何滚动截屏?
  20. NLP: 0基础应用T5模型进行文本翻译代码实例~

热门文章

  1. python判断字符串为空,Python判断字符串是否为空和null方法实例
  2. Python快速实现一个域名、IP信息聚合网站
  3. idea使用maven命令
  4. 解决资源监视器不显示的问题。
  5. 仿牛客网讨论社区项目—项目总结及项目常见面试题
  6. VueUse中文文档Vue官方工具库
  7. OpenCV反色处理
  8. 论大数据仓库的事务处理之法
  9. 手游中控台多开脚本实战
  10. 计算机ppt实验报告总结怎么写,ppt实验报告总结.doc