使用Win11安装Android应用并进行抓包渗透测试

使用Win11安装Android应用并进行抓包渗透测试

随着 Windows 11 的发布,微软宣布了适用于 Android 或 WSA的Windows 子系统。这是在他们之前的版本,适用于 Linux或 WSL 的Windows 子系统之后这些使您能够直接在 Windows 操作系统上运行虚拟 Linux 或 Android 环境,而无需第三方软件提供的必备兼容层。在这篇文章中,我将向您展示如何使用 WSA 进行 Android 移动应用程序渗透测试,这样您就可以仅使用 Windows 执行所有常见步骤,而无需物理 Android 设备或模拟器

经验

WSA 体验很棒;在 WSA 中安装应用程序时,它们会自动对 Windows 主机可用。同样,来自 Windows 主机的所有文件和资源都可以与 Android 子系统交互。过去,Android 仿真是出了名的棘手。第三方应用程序总是要求您将信任放在其他地方,并且总是缓慢且资源繁重。

这让我开始思考如何在不需要 Android 设备的情况下将 WSA 用于 Android 安全测试。为了使这项工作成功,我需要能够安装、修补和运行 Android 应用程序,以及拦截流量……以与在物理 Android 设备上相同的方式。这将有两个目的——第一个是消除对潜在昂贵设备的需求,第二个是创建一个统一且可重复的测试平台。

第 1 步 – 先决条件申请

进行Android应用安全测试经常需要以下应用。并非所有这些对于 WSA 本身都不是必需的,但通常对 Android 测试和连接很有用。

  • Android Studio是任何 Android 测试的必备工具。它提供了一个调试器,以及一种以易于理解的格式查看 APK 组件的方法。
  •  Android Debug Bridge (ADB)需要Android SDK 工具,它将用于从命令行连接到 WSA、传输文件和安装应用程序。
  • 我们将在安装之前使用Objection修补 APK,并对目标应用程序执行一些检测。objection具有Wiki中提到的各种先决条件,也应该安装。
  • Windows 11 – 在 Windows 功能设置中启用虚拟机平台。
  • 最后,我们将需要Python来运行objection。

在我的系统上,我将上述所有工具的路径添加到我的 Windows 环境变量中,以便它们可以从任何目录运行。我推荐这个以获得更流畅的体验。可以通过单击开始,然后键入environmental variables并编辑系统范围的变量来完成。

使用Win11安装Android应用并进行抓包渗透测试
将之前安装的所有工具添加到 PATH 环境变量中

第 2 步 – 安装

Microsoft 在此处提供了有关如何安装“基本”WSA 的详细说明。

在撰写本文时,为了直接从 Microsoft Store 安装 WSA,您需要成为Windows Insider Program 的一部分,并在 Beta 频道上运行。这将在未来的版本中改变。目前也只能从 Amazon Appstore 安装一小部分应用程序,这些应用程序是从这里的 Microsoft Store 安装的——它只是一路向下的商店!

当客户端发送 APK 或 AAB 包时,这些限制对我们没有帮助,因此我们需要一种侧加载应用程序的方法,就像在常规物理设备上一样。值得庆幸的是,按照我下面的第二种安装方法可以做到这一点。

安装方法 1 – 有限的 WSA

出于演示目的,让我们看看如何安装微软通过内幕程序分发的有限WSA。我们不会修改它以允许 Google Play 服务工作或旁加载应用程序,这将在下一部分完成,您必须卸载它。所以这实际上只是为了显示差异。可以使用服务发现您在注册 Insiders Program 文件时将获得的MSIXBundle。此站点是一个链接聚合器,可直接从 Microsoft 商店下载。为此归功于 RG_Adguard

在 URL 字段中,输入以下内容(这是 Amazon Appstore 的 URL):

https://www.microsoft.com/store/productId/9P3395VX91NR

然后选择慢速频道并点击搜索。这应该会显示直接从 Microsoft 下载 WSA 应用程序的 URL。

使用Win11安装Android应用并进行抓包渗透测试
确保选择 SLOW 通道
使用Win11安装Android应用并进行抓包渗透测试
选择 1.2GB MSIXbundle 文件

下载后,以管理员身份打开 Windows 终端并运行以下命令:

Add-AppxPackage -Path "C:\path\to\wsa.msixbundle"

这应该会在您的 Windows 开始菜单中为您提供适用于 Android 的 Windows 子系统。

使用Win11安装Android应用并进行抓包渗透测试
WSA 设置现在应该在您的开始菜单中可用。

应用程序打开后,您将看到几个选项。第一个是选择让子系统资源按需可用,或持续可用。这是个人喜好。我选择让它们连续运行,因为我有多余的资源。

第二种选择不是个人喜好。您必须在 WSA 中启用开发者模式,否则您将无法通过  Android Debug BridgeADB进行连接。

使用Win11安装Android应用并进行抓包渗透测试
确保已启用开发人员模式。

您将看到您当前没有分配 IP,这是意料之中的。即使 WSA 设置已打开,WSA 本身也不一定在运行。

使用Win11安装Android应用并进行抓包渗透测试
IP 地址当前不可用。

为了真正启动 WSA,您需要单击 FILES 选项旁边的打开图标,这将显示一个非常基本的 Android 文件浏览器 GUI。

使用Win11安装Android应用并进行抓包渗透测试
使用Win11安装Android应用并进行抓包渗透测试
使用Win11安装Android应用并进行抓包渗透测试
这是子系统运行后您将看到的屏幕,并且“设备”已启动。

此时,您将启动并运行基本的 WSA 安装。但是,它仅限于亚马逊应用商店,这对于我们想要做的事情不是很有用!

安装方法 2 – 使用 root 启用 Google Play WSA

让我们使用提供更多功能的方法逐步重做安装,例如在 Windows 中直接从 Google Play 安装应用程序的能力、旁加载应用程序的能力以及根除 WSA“设备”的能力。

首先,如果您之前使用过 WSA,或者您遵循了我最初的方法,您将需要从系统中卸载 WSA 的所有痕迹。

接下来,打开 Windows 设置并在 Windows 本身内启用开发人员模式,而不是在 WSA 内(尽管两者都需要)。这将允许您从 Microsoft Store 外部安装第三方应用程序包。

使用Win11安装Android应用并进行抓包渗透测试

接下来,您需要创建并下载打过补丁的 WSA 安装程序和平台工具。这可以通过遵循 Github repo here上的描述来完成。本质上,您将分叉存储库,并根据OpenGApps 的名称指定您想要的开源 Google Play 商店的版本。不同变体描述的一小部分选择如下:

  • Pico:此软件包专为希望获得绝对最小 GApps 安装的用户而设计。
  • Nano:此软件包专为希望尽可能减少 Google 占用空间的用户而设计,同时仍能享受原生的“Okay Google”和 Google 搜索支持。
  • Stock:该软件包包含 Pixel 智能手机标配的所有 Google Apps。
使用Win11安装Android应用并进行抓包渗透测试
我的 gitHub 上的分叉仓库

分叉后,单击操作,然后单击Build WSA工作流,指定您从上面选择的 OpenGApps 版本。总之,工作流程将:

  • 从 Microsoft Store 下载 WSA(通过RD-Adguard
  • 从 Magisk 存储库的Canary 分支下载 Magisk
  • 下载您指定版本的OpenGApps
  • 解压缩 OpenGApps
  • 挂载所有镜像
  • 集成 OpenGApps
  • 卸载所有图像
  • 缩小结果图像
  • 整合ADB
  • 将所有内容打包到最终的 zip 文件中。

您可以在文件中看到此工作流程的运行情况。

使用Win11安装Android应用并进行抓包渗透测试
在右侧的构建选项中选择 GApps 版本
使用Win11安装Android应用并进行抓包渗透测试
WSA 构建完成
使用Win11安装Android应用并进行抓包渗透测试
根据 GApp 的选择,生成的文件大小会有很大差异

您将在构建选项中看到包含特定版本 Magisk 的下载链接,该链接目前 100% 可与 WSA 一起使用。Magisk是一个用于Root android 设备的应用程序。root对于修补或拦截工作不是必需的,但确实提供了可能对您有用的额外功能。

提取生成的 WSA-with-magisk-GApps.zip 内容,并在解压缩的目录中以管理员身份打开终端窗口。然后运行:

Add-AppxPackage -Register .\AppManifest.xml
使用Win11安装Android应用并进行抓包渗透测试

您现在可以从 Windows 开始菜单重新打开适用于 Android 的 Windows 子系统。您需要从 WSA 设置中启用开发人员模式,然后像以前一样单击打开文件按钮。

回到终端,我们现在可以运行 ADB(直接从平台工具目录,或者从任何目录,如果您修改了环境变量)。键入 ADB devices 将给出所有当前可用设备的列表,这些设备最初是空的。我们稍后会解决这个问题。

使用Win11安装Android应用并进行抓包渗透测试

查看 WSA 设置,现在应该配置一个 IP 地址。

使用Win11安装Android应用并进行抓包渗透测试

我们可以使用ADB connect `IP`连接到这个“设备” 。然后我们可以重新列出设备并确认我们有连接。

使用Win11安装Android应用并进行抓包渗透测试

安装应用程序就像ADB install ‘APK Name’一样简单。我们将通过ADB install magisk.apk以这种方式安装 Magisk。安装后,单击开始并搜索 Magisk。由于 WSA 与 Windows 共享资源,Magisk 可以从开始菜单打开,就像直接安装在 Windows 中一样,但它在 WSA 下无缝运行。

使用Win11安装Android应用并进行抓包渗透测试
使用Win11安装Android应用并进行抓包渗透测试

在终端中,键入ADB shell以访问 WSA“设备”。我们可以通过whoami确认当前用户。

使用Win11安装Android应用并进行抓包渗透测试

键入su成为 root 将导致 Magisk 中弹出一个窗口,要求允许root访问。一旦允许,Magisk 中的 SuperUser 选项卡将显示我们已授予rootADB shell 中的访问权限。

使用Win11安装Android应用并进行抓包渗透测试

我们可以确认我们已经用whoami.

使用Win11安装Android应用并进行抓包渗透测试

从这一点来看,我们拥有对 WSA 文件系统的完全读/写访问权限。

第 3 步 – Objection

从这一点来看,Objection的工作方式大致相同。简单地运行objection patchapk -s 'sourceapk' 将允许 ADB 以与通过 USB 的移动设备相同的方式确定设备架构。我将使用“故意不安全且易受攻击的 Android 应用程序”( PIVAA ) 进行演示。

使用Win11安装Android应用并进行抓包渗透测试
Objection 成功确定了 x86_64 架构,并相应地修补了应用程序。

Objection 成功确定了 x86_64 架构,并相应地修补了应用程序。

修补后,使用以下命令安装应用程序

adb install .\pivaa.objection.apk

和以前一样,它现在可以直接在 Windows 中使用。但是,启动应用程序将导致它“暂停”,直到我们使用 Objection explore 连接到Frida服务器。

使用Win11安装Android应用并进行抓包渗透测试
使用Win11安装Android应用并进行抓包渗透测试
Objection 成功挂接到 Frida 服务器

你会看到这个设备显示为“Pixel 5”,这似乎是虚拟设备的原型,并且可能会在未来的更新中改变。重要的是要注意,不涉及 USB 或物理 Pixel 5。

我现在有一个有效的 WSA 安装,一个有根设备,用 Objection 打补丁,并用 Objection 挂接运行打补丁的应用程序。在这个阶段我面临的主要问题是如何做最后一步——用Burp Suite拦截流量。

第 4 步 – Burpsuite拦截

由于无法查看虚拟网络设置或在设备上安装证书颁发机构,我决定尝试安装 Android Launcher。启动器类似于 Linux 发行版上的桌面环境,是您解锁物理 android 设备时看到的内容。一些流行的发射器包括 Niagara、Nova、Lawnchair 和来自谷歌和三星等公司的 Stock 发射器。

在尝试了多个启动器、第三方设置应用程序和 Windows 特定代理应用程序后,我有一个想法,兼容概率最高的启动器是 Microsoft Launcher。您可以使用 OpenGapps 和官方 Play 商店链接将其直接安装到设备上。我选择从这里加载 APK (但是存在多个其他 APK 镜像站点,因此请使用您的首选站点),并使用adb install. 这正是我想要的,一个设置应用程序。

使用Win11安装Android应用并进行抓包渗透测试
其他应用程序可以直接从启动器打开,而不是 Windows 开始菜单
使用Win11安装Android应用并进行抓包渗透测试

在网络和 Internet 设置中,我终于有了一个虚拟 WiFi 适配器,我可以为其设置代理。

使用Win11安装Android应用并进行抓包渗透测试

在 VirtWiFi 设置中,我可以选择高级选项来安装证书。知道这一点后,我从 Burp Suite 生成了一个证书,并使用以下命令将其移动到“设备”:

adb push .\burpwsa.cer /storage/emulated/0/Download

我知道在使用 Magisk 生根后我可以访问所有文件夹,但是下载文件夹在 WSA 本身的文件应用程序中是可见的,所以我选择它作为目标目录。

使用Win11安装Android应用并进行抓包渗透测试

但是,需要通过设置来安装证书。

使用Win11安装Android应用并进行抓包渗透测试
单击高级 – 安装证书。
使用Win11安装Android应用并进行抓包渗透测试
使用Win11安装Android应用并进行抓包渗透测试

安装后,我将 Burp 中的代理侦听器设置为我的主机以太网 IP 的代理侦听器,并像往常一样设置我选择的端口。

使用Win11安装Android应用并进行抓包渗透测试

在 VirtWifi 中,我编辑了代理以具有相同的设置。

使用Win11安装Android应用并进行抓包渗透测试
单击右上角的铅笔以编辑配置。
使用Win11安装Android应用并进行抓包渗透测试
将代理设置与 Burp Suite 匹配

现在在运行 PIVAA 应用程序时,像以前一样使用 Objection 连接它,但是这次指定Android SSLPinning Disable为启动命令,我能够拦截来自 WSA 的流量。

使用Win11安装Android应用并进行抓包渗透测试
TrustManager 抛出异常,表明 SSLpinning 被绕过
使用Win11安装Android应用并进行抓包渗透测试
在应用程序中指定 Sensepost.com。
使用Win11安装Android应用并进行抓包渗透测试

概括

我们可以看到,使用初始方法,我们可以做的事情受到严重限制,但总有解决方法,我们可以做更多!

再深入一点,我们可以在不使用 Microsoft 商店和 Windows 11 Beta 程序的情况下安装 WSA,但这并不是我们需要的地方。

更进一步,我们可以安装任何我们想要的应用程序,并获得 WSA 本身的 root 权限,这是 Android 安全测试方面的关键一步。

从这里开始的最后一步,无疑花费了最长的时间,就是弄清楚如何在 Burpsuite 中拦截来自这个虚拟设备的流量,以便进行动态测试,并修改传输中的数据,但完成后,现在不再有需要一个物理 android 设备对 Android 应用程序执行安全测试。

如果您有任何问题,请随时与我联系。这仍然是一项不断发展的新技术,我希望随着新方法的出现而加入其中。

from

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。