使用 APKLeaks 发现 API 秘密和端点

图片[1]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

如果我告诉您有一种简单的方法可以找到更多 API 服务器、秘密和端点,而您目前在侦察中可能没有这样做,该怎么办?你想了解一下吗?

你当然会的。谁不会呢?

您是否听过这样一句话:“有一个应用程序可以做到这一点”?对于 API 黑客攻击,从来没有比这更准确的说法了。

让我解释。

“有一个应用程序可以做到这一点。”

我们生活在一个移动计算远远超过过去传统桌面计算的世界。移动应用程序的开发范围涵盖从约会到数据收集等各种领域。游戏归赌博。您的手机是访问几乎所有内容的宝库。

你知道吗?许多移动应用程序都依赖API 来运行。

我们可以利用这一点来发挥我们的优势。

基于 Android 等移动操作系统构建的移动应用程序使我们可以轻松地将其二进制打包格式逆向工程为我们可以审查和审计的代码。更好的是,有一些工具可以为我们做到这一点。

让我向您介绍一款名为apkleaks的工具。

apkleaks 简介

当开发人员想要将移动应用程序分发并安装到 Android 操作系统时,他们必须生成已编译的 Android Package Kit (APK)。

此 APK 文件包含应用程序在 Android 设备上安装和运行所需的所有组件。它包括应用程序的已编译源代码(转换为 Dalvik 字节码)、资产、资源以及概述应用程序权限、功能和组件的清单文件。

APK 文件可以使用Jadx等工具轻松逆向,它基本上是一个 Dex-to-Java 反编译器。对我们来说更有趣的是像apkleaks这样的工具,它们获取反编译的输出,然后扫描它以查找有趣的 URI、端点和秘密。

使用 apkleaks

安装 apkleaks 很简单。大多数包管理器,例如 apt、yum 和 brew,已经对其进行了索引并使其可用。您还可以使用 pip 和命令“ pip3 install apkleaks”来安装它。

安装后,使用起来同样简单。

图片[2]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

使用-f选项指向要扫描的 APK 文件,然后使用-o选项设置将保存结果的输出文件的名称。

但首先如何获取 APK 文件呢?这是一个很好的问题。

让我们使用一个现实世界的示例,即采购和扫描 Android 应用程序以提取关键侦察数据以用于 API 黑客攻击。

现实世界示例:逆向医疗保健应用程序

让我们继续搭建舞台。在加拿大,我们提供了很多虚拟医疗保健。 Telus Health 是提供这些服务的供应商之一。去年,暗网上有传言称,他们的源代码可能被盗,而且 Telus 依赖的一些 API 被用来抓取与员工和客户相关的大量内部信息。

有趣的。

我对 Telus Health 应用程序的攻击面很好奇,因为我依靠它来进行医疗保健。因此,让我们用它来展示如何使用 apkleaks 等工具来改进我们的侦察。

第 1 步:获取 APK 源

在我们做任何事情之前,我们需要获取实际的 Telus Health 移动应用程序。虽然可以将其直接下载到 Android 手机,但我想向您展示一种无需使用手机即可完成此操作的技术。

这有几个原因。

原因#1:使用旧端点访问旧版本

不正确的库存管理作为 OWASP API 安全 Top 10 中的一个漏洞类别存在,因为开发人员很难在端点的不同版本上进行迭代。端点在不同版本之间很快被弃用的情况并不罕见。

这对我们来说是一个机会。

您可能想要扫描旧版本的应用程序。这对于查找不再显示在最新应用程序中但可能仍存在于 API 服务器上的已弃用端点非常有用。

原因#2:选择性和条件阻止

某些移动应用程序仅在某些国家或地区、某些语言或某些版本的 Android 设备上可用。因此,您可能需要找到一种方法来显示来自不同地区或为不同设备下载。

原因#3:匿名

当您从 Google Play 商店下载应用程序时,您必须使用 Google 帐户登录。这将成为跟踪您正在下载和使用哪些应用程序的元数据。在订婚期间,您可能不希望这样。

虽然我们在这里并不是邪恶的,但这并不意味着我们仍然不想在订婚期间保持匿名。

无论您的原因是什么,让我向您展示如何获取和下载您想要的 APK。

使用 TOR 访问 Google Play 商店

使用您最喜欢的 TOR 浏览器打开一个新的私人窗口。在本示例中我将使用Brave ,但您可以使用任何您想要的浏览器。只需确保它已成功连接到 TOR,并且在您想要显示的区域中有一个输出节点即可。

现在前往 Google Play 商店https://play.google.com/store/apps

搜索您想要的应用程序

进入 Play 商店后,使用搜索功能查找您的应用。单击它即可转到其详细信息页面。

图片[3]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

您需要密切关注 URL 中的 id 参数。这就是 APK 的独特定义。就我而言,它是com.babylon.telushealth.

使用 APK 下载器

一旦您知道 APK 标识符 (ID),您就可以请求下载它。有很多不同的工具可以实现此目的,因此我将让您使用您最喜欢的 Google dorks 来找到适合您需求的工具。我将使用一个在线下载器,它可以直接从apkpure.net提取不同版本,apkpure.net 是一个 Android 应用商店,可以收集当前的软件包并存档旧的软件包。

图片[4]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

使用apps.evozi.com,它会向我提供一个包含任何 APK 的 zip 文件(甚至通过支持多种配置和语言的拆分打包)以及清单。只需解压缩它,我就可以访问我需要的 APK。

图片[5]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

第 2 步:运行 apkleaks

访问 APK 后,现在让我们尝试使用 apkleaks 提取有趣的元数据。

apkleaks -f com.babylon.telushealth -o telushealth.txt

您将立即开始看到它扫描应用程序并尝试查找正在使用的秘密和服务:

图片[6]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

不久之后,您将开始看到链接被提取,指向潜在的 API 端点:

图片[7]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站
图片[8]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

您还可能会看到它提取移动应用程序所依赖的外部服务器的完全限定路径。就我而言,我可以看到 Google 地图和 PayPal 等外部服务,以及内部服务的一些测试和暂存实例。

侧面提示:如果您热衷于惩罚,请直接针对 APK运行jadx并转储整个源代码树。从那里,您可以在 VS Studio 或 JD GUI 中探索代码。就我而言,我发现了一些特殊功能标志,这些标志使移动应用程序以不同的方式工作以访问不同的 API,这让我对通过 apkleaks 看到的一些端点路径有了一些清晰的了解。

步骤 3:验证密钥、端点和服务器是否有效

一旦您从 apkleaks 中获得转储,您应该验证提取的数据是否确实有效。我将把它作为练习留给你。对于链接,您可以使用像curl 这样简单的东西。对于秘密,您可以使用类似 nuclei 的东西并利用其令牌喷射模板。

举个例子,在我的例子中,我可以看到几个 Google API 密钥。让我们用原子核来测试它们。

nuclei -t http/tokenspray -var token=AIzaSyCI0wS69-6XAxCVDKBozccalLz6fRIaCfc
图片[9]-使用 APKLeaks 发现 API 秘密和端点-IT熊技术站

果然……这些是在应用程序中硬编码的有效 Google 静态地图 API 密钥。

© 版权声明
THE END
喜欢就支持一下吧
点赞1153赞赏 分享
评论 共2条

请登录后发表评论