用Fiddler抓取iPhone的HTTP流量进行测试


文章的标题起的有点拗口,想表达的意思就是:使用抓包工具Fiddler抓取/分析iPhone上的HTTP流量以进行安全测试。

搜索关键字:

fiddler iphone

参考链接:
参考解答:
1.下载并安装Fiddler(略)

要想使用Fiddler,首先你得安装有Fiddler才行。

2.对Fiddler进行一些设置

打开Fiddler,然后打开菜单『Tools > Fiddler Options…』点开『Connections』选项卡,选中:
Allow remote computers to connect” #必须
“Act as system proxy on startup” #可选
设置Fiddler的监听端口(默认是8888)

在进行上面的设置之后,重启Fiddler。

3.查看Fiddler的监听状态

确保『File > Capture Traffic』处于选中的状态(即,此时Fiddler正在监听/抓取流量)

4.对iPhone进行简单设置

查看本机IP『ipconfig /all | findstr /i ipv』,这里假定为:192.168.1.55

打开iPhone的『设置 > Wi-Fi > 当前Wifi连接 > HTTP 代理』
服务器:192.168.1.55
端口:8888
鉴定:关闭

5.查看监听流量

用iPhone上的Safari浏览器打开网页就可以进行简单的流量抓取测试了。


在Linux或Mac上使用Fiddler

最开始的时候Fiddler是只能用在Windows系统上的,后来因为有了Mono这个开源、跨平台的Windows .NET环境实现,使在Linux和Mac上使用Fiddler成为了可能。

  • 首先,去Fiddler的官网下载Mono版的Fiddler压缩包然后解压到指定目录并切换到该目录;
  • 然后,在Linux上搭建Mono环境『pacman -S mono』;
  • 最后,在Linux上启动Fiddler『mono fiddler.exe』。
参考链接:

=EOF=

, ,

《 “用Fiddler抓取iPhone的HTTP流量进行测试” 》 有 15 条评论

  1. 关于手机 App 的 Https 抓包
    https://paper.tuisec.win/detail/e36d19d5dcf39dc
    https://toutiao.io/posts/lg66i0/preview
    https://blog.huoding.com/2019/05/31/741
    `
    我喜欢用 Mitmproxy 来处理手机 App 抓包之类的工作,本来用它来抓 Https 包是很容易的一件事,只要设置好代理,浏览 mitm.it 按提示安装证书即可,可是当 Android 版本升级到 7 以后,此方法就失效了,为什么呢?因为新版 Android 缺省情况下只信任系统级证书,而不再信任用户级证书,问题详细描述可以参考:听说安卓微信 7.0 不能抓 https?

    普通的解决方法有很多,比如说用低版本的 Android 手机,或者干脆换个苹果手机。不过那些治标不治本的方法并不是本文关注的重点,本文我们主要聊聊如何通过 root 来解决问题,但是 root 本身是有风险的,所以下面有请重量级嘉宾网易 MuMu 闪亮登场!它是一个有 root 权限的全功能 Android 模拟器。

    通过 root 安装系统证书可以解决大部分 Https 抓包问题,为什么不是全部?还有哪些特殊情况不能处理?答案是「SSL Pinning」,它是为了应对中间人攻击而出现的一种技术,简单点说,就是证书被打包到 App 里,每次请求都会验证证书一致性。如此一来,虽然我们可以安装系统级证书,但是当 App 验证证书一致性的时候就失败了,如何突破此限制呢?答案很简单,你不是要验证一致性么,我统统返回 OK 不就行了!

    为了达到 hack 的目的,我们需要安装 Xposed 和 JustTrustMe,其中 Xposed 是一个 hack 框架,JustTrustMe 是一个插件。安装过程并不复杂,唯一需要说明的是,在安装 Xposed 之前,最好在网易 MuMu 中关闭兼容模式,路径「设置 / 应用兼容性 / 兼容模式」。

    BTW:有一个 VirtualXposed 项目,无需 root,使用起来更简单,值得关注。
    `

  2. 天天给 App 抓包,还不懂 HTTP 代理吗? | 实用 HTTP
    https://mp.weixin.qq.com/s/H5H0LixgRY6CoRunBaLBAw
    `
    既然要说到代理,先提两个问题来当主线,从问题出发讲解 HTTP 代理。
    1、抓包工具是如何实现 HTTP 抓包的。
    2、对于 HTTPS 流量,不安装证书的情况下,通过抓包工具,请求和响应依然正常,但是不会显示报文细节。

    这个两种不同的表现,也对应了两种不同的 HTTP 代理:
    1、普通代理。基于修订后的 RFC 2616 在 HTTP/1.1 中被定义。这种代理扮演的是「中间人」的角色。对客户端来说,它是服务端,而对真正的服务端来说,它又是客户端,它就是负责在两端之间传递 HTTP 报文。
    2、隧道代理。这种一种基于 TCP 协议的隧道传输代理,它通过 HTTP 协议的 CONNECT 方法完成通信,以 HTTP 的方式,实现任意基于 TCP 的应用层协议代理。

    隧道代理,又称为 Web 隧道(Web tunnel),这种方式可以通过 HTTP 连接发送非 HTTP 流量,这样可以在 HTTP 上捎带其他协议的数据。

    隧道代理是利用 HTTP 的 CONNECT 方法建立起来的。CONNECT 方法,最初并不是 HTTP/1.1 的核心规范,但却是一种得到广泛使用的扩展,它在 2014 年发布的 HTTP/1.1 修订版中,才对 CONNECT 及隧道代理有了清晰的描述。
    `

  3. 一文帮你解决APP抓包难题
    https://www.sec-in.com/article/1639
    `
    1.前言

    在日常渗透过程中我们经常会遇到瓶颈无处下手,这个时候如果攻击者从公众号或者APP进行突破,往往会有很多惊喜。但是目前市场上的APP都会为防止别人恶意盗取和恶意篡改进行一些保护措施,比如模拟器检测、root检测、APK加固、代码混淆、代码反调试、反脱壳、签名校验等等对抗机制。而测试人员对APP进行渗透的首步操作通常就是上burp或者Charles这类抓包工具进行抓包,查看请求记录里的域名及链接地址是否可以进一步利用,但是如果遇到一些APP出现证书报错或者抓不到包的情况该怎么办,读过本篇文章之后,相信你会拥有一些新的解决方案和思考。

    2.数字证书

    我们都知道http协议传输的是明文信息,是可以直接捕获的,从而造成了数据泄露。为了防止中间人的拦截,出现了HTTPS加密机制。在HTTPS中,使用了证书+数字签名解决了这个问题。

    这部分加密机制的知识可以阅读这篇文章HTTPS整套加密机制是如何实现的?,里面写的非常详细。此篇的重点在于如何应对APP的抓包对抗。

    我总结的HTTPS加密机制如下:

    * 数字签名是发送方的明文经历了两次加密得到的两个东西组成,一个是hash ,一个是经过私钥加密。
    * 数字证书就是明文+数字签名。但是数字证书中的内容远不止这俩,还包括了权威机构的信息,服务器的域名,最重要的是有签名的计算方法,不然用公钥进行解密之后的hash,如何与加密明文进行对比呢,还有证书中还包括公钥,公钥用于发放给请求证书的客户端。
    * HTTPS就是使用SSL/TLS协议进行加密传输,让客户端拿到服务器的公钥,然后客户端随机生成一个对称加密的秘钥,使用公钥加密,传输给服务端,后续的所有信息都通过该对称秘钥进行加密解密,完成整个HTTPS的流程。

    3.https抓包

    4.SSLPinning

    5.开启双向校验

    6.ssl_logger通杀

    7.eBPF hook 免CA证书
    eBPF HOOK uprobe实现的各种用户态进程的数据捕获,无需改动原程序。这个工具也是通过hook了libssl库中SSL_write、SSL_read 这两个关键的SSL加密函数的返回值,拿到明文信息,通过ebpf map传递给用户进程。

    8.总结
    * 在依靠系统或默认浏览器校验证书的情况下,导入burp证书为用户证书是可以抓https包的
    * 当app支持的最小API为24(Android 7.0)或以上时,默认情况下app只信任系统级别的证书,需要把burp变为系统证书
    * 自签名证书作为系统证书时,有效期最长不超过825天,用户证书则没有限制
    * 开启证书校验的APP在使用burp抓包时会报 certtificate_unknown 等错误
    * 使用frida hook绕过双向证书校验时,必须要将客户端的p12文件导入burp中
    * 一些脚本仍绕不过可以使用ssl_logger或者逆向代码进行分析验证逻辑,再有针对性的绕过
    * p12文件的密钥如果在so层,需要会用IDA进行静态分析lib下的so文件获取关键密钥

    看完本篇文章之后,相信你再面对抓不到包的APP或者是https请求也不会手足无措了。
    `

    Android HTTPS认证的N种方式和对抗方法总结
    https://ch3nye.top/Android-HTTPS%E8%AE%A4%E8%AF%81%E7%9A%84N%E7%A7%8D%E6%96%B9%E5%BC%8F%E5%92%8C%E5%AF%B9%E6%8A%97%E6%96%B9%E6%B3%95%E6%80%BB%E7%BB%93/

    https://github.com/dummersoul/SafeHttpsTest

    Android Https抓包实践
    https://mabin004.github.io/2018/03/05/https%E4%B8%AD%E9%97%B4%E4%BA%BA%E6%94%BB%E5%87%BB%E5%8E%9F%E7%90%86/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注