iPhone 应用程序的流量不可嗅探

Posted

技术标签:

【中文标题】iPhone 应用程序的流量不可嗅探【英文标题】:iPhone app's traffic not sniffable 【发布时间】:2014-09-25 08:36:48 【问题描述】:

我在使用Charles 嗅探我的 iPhone 上发送的流量方面有相当多的经验。我选择进行逆向工程的几乎每个应用程序在很大程度上都可以用于cURLCharles。但是,出于某种原因,这个名为Link 的应用程序似乎与他们的服务器有不同的通信方式。我查看了整个 Chalres 会话,没有看到从这个应用程序到 API 端点的任何相关流量。我没有太多实际制作移动应用程序的经验,所以也许还有其他方法可以处理使用该应用程序时必须生成的所有请求。但是,如果没有请求从应用程序发送到某处的外部服务器,如何存储所有用户的数据?

【问题讨论】:

【参考方案1】:

Charles 是一个 HTTP 代理,可能正在使用另一个协议。可能直接使用 TCP/IP 连接。

Wireshark 将详细显示所有数据包,但您可能无法看到没有密钥解密的加密数据。

Wireshark 用户界面值得一看。 ;-)

【讨论】:

如果他们使用不同的协议,那么可以用cURL成功复制吗? 对不起,我只使用 curl 和 http 进行测试,对此知之甚少。文档说明了这些协议:“DICT、FILE、FTP、FTPS、GOPHER、HTTP、HTTPS、IMAP、IMAPS、LDAP、LDAPS、POP3、POP3S、RTMP、RTSP、SCP、SFTP、SMTP、SMTPS、TELNET 和 TFTP”都是高级别的,至少在TCP/IP之上。除了了解它的成本之外,Wireshark 是免费的,至少您将能够看到实际发送的数据包,可能比您预期的要多。【参考方案2】:

如果应用在 SSL 上运行,您将无法以任何方式嗅探任何流量。我至少是这样设计我的应用程序的。会是这样吗?它是使用 443 端口而不是 80 端口吗?

【讨论】:

我安装了 Charle 的 SSL 证书来绕过整个问题。我可以看到我的手机正在为许多其他应用发送 SSL 流量。 如果你过滤了手机IP的所有传出流量,那么肯定有什么地方。 如果一个应用程序正在检查证书,那么如果可以检测到 charles 证书并取消请求。大多数银行应用程序都会这样做,如果不这样做,您可能不应该在这家银行拥有账户;) 是的,但如果它取消请求,我就无法使用它,对吧?即使所有流量都通过我的 MacBook 上的 Charles 发送,我仍然可以正常使用这个应用程序 您如何准确地配置您的证书?登录页面后,我无法检测某些应用程序中的流量。可以检测嗅探器的可能配置是什么?还有你是如何用 charles 设置代理的?【参考方案3】:

好的。看看这个帖子: http://www.doubleencore.com/2013/03/ssl-pinning-for-increased-app-security/

SSL 固定可能是答案。

【讨论】:

但是,这并不能解释为什么您仍然可以使用该应用程序。 想的完全一样。 正如 Zaph 所说,这可能表明它没有使用 HTTP。如果您只是从 iPhone 捕获所有流量,您会获得哪些目标端口?

以上是关于iPhone 应用程序的流量不可嗅探的主要内容,如果未能解决你的问题,请参考以下文章

围绕 iPhone 应用程序的 SSL Wrapper

linux 下如何抓取HTTP流量包(httpry)

嗅探C中的所有网络流量

如何嗅探在 swf 中处理的 wss (websocket) 流量?

一个 App 可以拦截另一个 App 的网络流量吗?

网络嗅探是啥?