使用Proxyman抓取Android的https请求
拦截网络请求
有时,您可能需要测试您的移动应用程序并检查与其关联的所有网络请求。
在网络上,此任务非常简单,只需按Ctrl + Shift + I打开开发人员工具即可。
从那里,您可以导航到网络选项卡并检查与网页相关的所有 HTTP 请求,如下所示:
浏览器中的网络请求
然而,在移动开发方面,过程并不那么简单。与网络不同,没有内置机制可以通过打开开发人员工具轻松检查 HTTP 请求。
在这篇博文中,我们将探索通过使用代理来拦截网络请求的迷人世界。我们将指导您逐步设置和配置代理服务器,该服务器将充当您的设备和网络之间的中介。
通过利用代理服务器的功能,我们能够拦截、检查和分析所有传入的网络请求。这为应用程序的调试、性能优化和安全分析开辟了无限可能。
为了更容易理解,我将这个过程分为五个步骤。这些都是:
1.设置 Android 模拟器
2.代理设置
3.准备证书
4.部署证书
5.在 Android 模拟器上设置代理 让我们详细探讨每个步骤。
1. 设置Android模拟器
要开始此过程,您需要安装 Android Studio。 成功安装后,启动 Android studio。在窗口顶部的工具栏上,找到并单击菜单Tools。之后Device Manager从下拉菜单创建所需要的设备并运行设备。
avd
首先,使用该命令emulator -list-avds显示系统上所有已安装模拟器的列表。此命令将为您提供可用设备的名称。从列表中确定您要运行的设备的名称。
一旦确定了要启动的设备,就可以使用该emulator -avd deviceName命令。deviceName将命令中的名称替换为所需设备的实际名称。该命令将使用指定的设备启动模拟器。
确保您已设置模拟器命令正常工作所需的所有环境变量非常重要。这将确保命令被识别并成功执行。
列出设备
设置 Android 模拟器后,您可以选择从APKMirror下载并安装所需应用程序的 APK 文件。APKMirror 是一个信誉良好的网站,您可以在其中找到各种 Android 应用程序的各种 APK 文件。
下载 APK 文件后,您可以继续将其安装在 Android 模拟器上。您可以将下载的 APK 文件拖放到模拟器窗口中,也可以使用模拟器的文件传输机制导入 APK 文件。
2. 代理设置
在继续安装代理之前,必须确保 OpenSSL 和 Android 调试桥 (ADB) 已正确设置。以下是您应该遵循的步骤:
如果您尚未安装OpenSSL ,请先在您的系统上安装OpenSSL 。有关安装过程,请参阅特定于您的操作系统的文档。openssl version安装后,您可以通过在终端或命令提示符中运行命令来验证安装。如果安装正确,这将显示 OpenSSL 版本。
检查 OpenSSL 版本
接下来,确认您可以从终端或命令提示符访问 Android 调试桥 (ADB),这一点很重要。使用该命令adb version检查 ADB 是否可访问且配置正确。如果命令返回ADB版本,则表示设置正确。
成功设置 OpenSSL 并确认对 ADB 的访问权限后,您可以继续安装代理。在本教程中,我们将下载并使用Proxyman作为示例工具。但是,您可以将相同的原则应用于其他类似的工具,例如Charles Proxy或mitmProxy。
3. 准备证书
为了解密应用程序请求,Proxyman 生成自定义 SSL 证书。要获取此证书并将其配置为与 Android 操作系统一起使用,请执行以下步骤:
打开您的网络浏览器并访问以下链接。您可以通过此链接下载 Proxyman SSL 证书。下载证书后,找到保存证书的文件夹:
http://proxy.man/ssl
找到下载文件的文件夹
•为了确保证书文件具有 Android 操作系统所需的正确格式,您需要对其进行重命名。打开命令提示符并导航到证书所在的文件夹。之后运行此命令:
hashed_name=`opensslx509-informPEM-subject_hash_old-inproxyman-ca.pem|head-1`&&cpproxyman-ca.pem$hashed_name.0ThiscommandusesOpenSSLtogenerateahashednameforthecertificateandthenrenamesthefileaccordingly.Byfollowingthesesteps,youobtainthecustomSSLcertificatefromProxymanandrenameittotheformatexpectedbyAndroidOS.ThiscertificateisessentialfordecryptingapprequestsandenablingProxymantointerceptandanalyzethenetworktraffic.
此命令使用 OpenSSL生成证书的哈希名称, 然后相应地重命名文件。通过执行以下步骤,您可以从Proxyman获取自定义SSL 证书,并将其重命名为Android 操作系统所需的格式。
此证书对于解密应用程序请求并使Proxyman能够拦截和分析网络流量至关重要。
此命令在 Windows Power shell 上不起作用,因此我在 Git Bash 终端上运行了此命令:
在 Git bash 上运行命令
命令执行成功,并.0在同一文件夹中生成了一个扩展名的文件:
获取Android证书
4. 部署证书
我们在上一步中生成的文件.0是将要添加到 Android 模拟器中的证书。为此,我们首先打开终端并列出可用的 AVD:
emulator-list-avds
从可用的 AVD 中,我们将使用以下命令运行所需的 AVD:
emulator-avd-writable-system
请注意,我们使用-writable-system标志来启动具有可写系统权限的 AVD,从而允许修改。之后我们需要打开另一个终端并运行以下命令:
adbroot
此命令以 root 权限重新启动 ADB 守护进程。之后,我们运行此命令以禁用设备上的安全启动验证:
adbshellavbctldisable-verification
接下来我们使用以下命令重新启动设备:
adbreboot
设备重新启动后,运行以下命令以 root 身份重新启动 ADB:
adbroot
通过执行以下命令将分区重新挂载为读写:
adbremount
如果 ADB 提示您重新启动设备,请adb reboot再次运行,然后运行adb root和adb remount。现在我们准备.0使用以下命令将重命名的 SSL 证书文件(我们之前生成的文件)推送到设备,并替换
adbpush/system/etc/security/cacerts
此命令将证书文件复制到设备上的相应目录。现在我们将通过运行以下命令为证书文件设置正确的权限:
adbshellchmod664/system/etc/security/cacerts/
现在我们需要使用以下命令最后一次重新启动设备:
adbreboot
设备将重新启动,并将部署 SSL 证书。我们已成功将 SSL 证书部署到您的 Android 模拟器中。这将允许模拟器识别并信任该证书,从而使 Proxyman 能够拦截和分析来自设备的网络流量。
现在要验证 Android 设备上的证书,您可以导航到Android 设备设置Trusted Credentials中的System部分,您可以找到选项卡下列出的证书。这确认证书已成功安装并被您的 Android 设备识别:Encryption & CredentialsProxymanLLCSystem
验证证书
5. 在Android模拟器上设置代理
最后一步涉及我们配置 Android 模拟器以使用我们设置的 Proxyman 代理。为此,请在您的计算机上启动 Proxyman。在 Proxyman 中,导航至Certificate菜单。Install Certificate on Android从下拉列表中选择。Physical Devices从子菜单中选择。请注意,您无需担心该术语Physical Devices,因为我们不会遵循该特定指南。我们只需要此菜单中的一些基本细节:
Proxyman 上的物理设备
在Android setup guide中,确保复制 IP 地址和端口号。该过程的后续步骤将需要这些详细信息:
复制 IP 和端口号
接下来是转到 Android 模拟器并单击菜单图标,如屏幕截图所示:
菜单按钮
单击Settings侧栏中的选项。单击后,Settings,您可以继续导航到该Proxy选项卡:
导航至设置
在代理选项卡中,选中该Manual proxy configuration选项。之后粘贴我们从ProxymanAndroid setup guide步骤复制的 IP 地址和端口并点击apply按钮:
配置IP和端口号
我们已经成功完成了拦截来自 Android 设备的 HTTP 请求的所有必要设置步骤。现在,我们可以启动Proxyman并在 Android 模拟器上运行应用程序。当我们使用应用程序时,Proxyman将捕获并显示与网络请求相关的所有相关详细信息和数据,为我们提供有关应用程序通信的宝贵见解和可见性。
使用Proxyman拦截网络请求
审核编辑:刘清
-
Android系统
+关注
关注
0文章
56浏览量
13481 -
模拟器
+关注
关注
2文章
873浏览量
43180 -
OpenSSL
+关注
关注
0文章
20浏览量
8668 -
ADB驱动
+关注
关注
0文章
13浏览量
6259 -
HTTP接口
+关注
关注
0文章
21浏览量
1778
原文标题:使用Proxyman抓取Android的https请求
文章出处:【微信号:哆啦安全,微信公众号:哆啦安全】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论