参考:orange cyber defense
https://docs.microsoft.com/en-us/windows/android/wsa/
随着 Windows 11 的发布,微软宣布推出适用于 Android 或 WSA 的 Windows 子系统。这是继他们之前的版本之后,适用于 Linux或 WSL 的 Windows 子系统。这样我们可以在Windows11上原生运行Android子系统。这篇文章将向大家展示如何使用 WSA 进行 Android 移动应用程序渗透测试,这样我们就可以只使用 Windows 平台,而无需物理 Android 设备或安卓安卓模拟器。
Android Studio
ADB
Android SDK 它将用于从命令行连接到 WSA、传输文件和安装应用程序。
我们将在安装之前使用objection来修补 APK,并对目标应用程序执行一些检测。
以下内容为微软官方文档中文Google翻译(较为权威)
可以通过单击开始,然后键入environmental variables并编辑系统范围的变量来完成。
将所有以前安装的工具添加到 PATH 环境变量中
Microsoft在此处提供了有关如何安装“基本”WSA 的详细说明。
设置你的开发环境要在 Windows 桌面环境中测试您的 Android 应用程序,需要进行一些设置。
先决条件
适用于 Android 的 Windows 子系统目前仅在美国通过Windows预览体验计划(Windows 11 Build 22000.xxx 系列)的 Beta 和 Dev Channels预览可用。
您的设备还必须满足特定的 Windows 11 要求。检查页面上“特定于功能的要求”下的“适用于 Android 的 Windows 子系统”部分:查找 Windows 11 规格、功能和计算机要求。
安装亚马逊应用商店
当执行以下两个用户操作之一时,Microsoft Store 将自动在后台静默安装适用于 Android 的 Windows 子系统(运行 Android 11):
从 Microsoft Store 安装 Amazon Appstore。
首次从 Microsoft Store 安装 Android 或 Amazon 应用程序,这也将安装 Amazon Appstore。
然后,亚马逊应用商店将出现在 Windows 11 的“开始”菜单中并可供搜索,提供精选的 Android 应用目录。
选择Get将开始安装应用程序。该应用程序还将出现在 Windows 开始、搜索和 Windows 程序列表中。
要连接到 Android VM 的 Windows 子系统进行调试,您有两种选择:
推荐方法:
使用 localhost 连接到调试。本地主机的 IP 地址是:127.0.0.1:58526. 必须运行适用于 Android 的 Windows 子系统才能连接,启动适用于 Android 的 Windows 子系统的最佳方式是启动随 Amazon Appstore 安装的 Android 应用程序。
要连接到适用于 Android 的 Windows 子系统的 localhost 地址,请输入: adb connect 127.0.0.1:58526
替代方法:使用适用于 Android 设置的 Windows 子系统应用程序获取 IP 地址。
启动设置应用程序。(使用 Windows 搜索选择并启动。)
IP 地址将显示在 IP 地址部分下。如果没有显示 IP 地址,请启动使用 Amazon Appstore 安装的 Android 应用程序,然后在设置应用程序的 IP 地址按钮上选择刷新。
现在您已经有了连接到 Android VM 的 Windows 子系统的 IP 地址,使用 adb connect 进行连接:
adb connect 172.22.137.166
输入URL:
https://www.microsoft.com/store/productId/9P3395VX91NR
然后选择慢速频道并点击搜索。这应该会显示直接从 Microsoft 下载 WSA 应用程序的 URL。
确保选择 SLOW 通道
下载后,以管理员身份打开 Windows 终端并运行以下命令:
Add-AppxPackage -Path "C:\path\to\wsa.msixbundle"
这应该会在你的 Windows 开始菜单中为您提供适用于 Android 的 Windows 子系统。
应用程序打开后,你会看到几个选项。首先是选择让子系统资源按需可用或持续可用。第二个选项不是个人喜好。你必须在 WSA 中启用开发者模式,否则你将无法通过 Android Debug Bridge 或ADB进行连接。
如果出现问题,请确保Windows11已经开启开发人员模式
你会看到当前没有分配 IP,这是预期的。即使 WSA 设置已打开,WSA 本身也不一定正在运行。
为了真正启动 WSA,你需要单击 FILES 选项旁边的打开图标,这是一个非常基本的 Android 文件浏览器 GUI。
此时,你将安装并运行一个基本的 WSA。但是,它仅限于亚马逊应用商店。
为了让我们使用提供更多功能的方法逐步重做安装,例如在 Windows 中直接从 Google Play 安装应用程序的能力、旁加载应用程序的能力以及 Root WSA“设备”的能力。
首先,如果你以前玩过 WSA,或者你按照本文安装方法2进行操作,你将需要从系统中卸载所有 WSA 痕迹。
接下来,打开 Windows 设置并在 Windows 本身中启用开发人员模式,而不是在 WSA 中(尽管两者都是必需的)。这将允许我么从 Microsoft Store 外部安装第三方应用程序包。
接下来,你需要创建并下载一个打补丁的 WSA 安装程序和平台工具。这可以通过遵循 Github repo 上的描述来
Pico:此软件包专为希望安装绝对最低 GApps 可用的用户而设计。
Nano:此软件包专为希望尽可能减少 Google 足迹同时仍享受原生“Okay Google”和 Google 搜索支持的用户而设计。
库存:此软件包包括 Pixel 智能手机标配的所有 Google Apps。
流程步骤:
从 Microsoft Store 下载 WSA(通过RD-Adguard)
从 Magisk 仓库的Canary 分支下载 Magisk
下载指定的OpenGApps版本
解压 OpenGApp
挂载所有图像
集成 OpenGApp
卸载所有镜像
缩小结果图像
整合
将所有内容打包到最终的 zip 文件中。
工作流程原码参考
下载生成的 WSA-with-magisk-GApps.zip 内容,并在解压缩的目录中以管理员身份打开终端运行:
Add-AppxPackage -Register .\AppManifest.xml
现在我们呢可以从 Windows 开始菜单重新打开适用于 Android 的 Windows 子系统。你需要在 WSA 设置中启用开发人员模式,然后像以前一样单击打开文件按钮
回到终端,我们现在可以运行 ADB(直接从平台工具目录,或者如果您修改了环境变量,则从任何目录)。
输入命令 adb devices 将给出所有当前可用设备的列表,这些设备最初将为空。我们稍后会解决这个问题。
查看 WSA 设置,现在应该配置 IP 地址。
我们可以使用命令adb connect ip连接到这个“设备” 。然后我们可以重新列出设备并确认我们有连接。
安装应用程序就像adb install 'APK Name’一样简单。我们将使用adb install magisk.apk以这种方式安装 Magisk 。安装后,单击开始并搜索 Magisk。由于 WSA 与 Windows 共享资源,Magisk 可以从开始菜单打开,就像它直接安装在 Windows 中一样,但是它在 WSA 下无缝运行。
在终端中输入adb shell以访问 WSA“设备”。我们可以用whoami来确认当前用户。
输入su成为 root 将导致 Magisk 中弹出一个窗口,要求允许root访问。一旦允许,Magisk 中的 SuperUser 选项卡将显示我们已root在 adb shell 中授予访问权限。
运行objection patchapk -s 'sourceapk'
将允许 ADB 以与通过 USB 从移动设备相同的方式确定设备架构。我将使用“Purposefully Insecure and Vulnerable Android Application” ( PIVAA ) 进行演示。
Objection 成功确定了 x86_64 架构,并相应地修补了应用程序。
修补后,安装应用程序
adb install .\pivaa.objection.apk
和以前一样,它现在可以直接在 Windows 中使用。但是,启动应用程序会导致它“暂停”,直到我们使用 Objection explore 连接到Frida服务器。
你会看到此设备显示为“Pixel 5”,这似乎是虚拟设备的原型,并且可能会在未来的更新中发生变化。重要的是要注意不涉及 USB,也不涉及物理 Pixel 5。
我们现在有一个工作的 WSA 安装,一个root设备,使用 Objection 打补丁,并使用 Objection 连接到运行打补丁的应用程序。在这个阶段我面临的主要问题是如何做最后一步——用Burp Suite拦截流量。
由于无法查看虚拟网络设置或在设备上安装证书颁发机构,我决定尝试安装 Android 启动器。启动器类似于 Linux 发行版上的桌面环境,是你在解锁物理 android 设备时看到的。一些流行的包括 Niagara、Nova、Lawnchair 和来自 Google 和三星等公司的 Stock 发射器。
在尝试了多个启动器、第三方设置应用程序和 Windows 特定代理应用程序后,我认为最有可能兼容的启动器是 Microsoft Launcher。你可以使用 OpenGapps 并使用官方 Play 商店链接将其直接安装到设备上。
此时选择从右侧加载的 APK并使用adb install.
其他应用程序可以直接从启动器打开,而不是 Windows 开始菜单
在网络和 Internet 设置中,终于有了一个虚拟 WiFi 适配器,我们可以为其设置代理。
在 VirtWiFi 设置中,我们可以选择高级选项来安装证书。 明白了这一点,我们从 Burp Suite 生成了一个证书,并使用以下命令将其移动到“Device”:
adb push .\burpwsa.cer /storage/emulated/0/Download
此时选择root根目录
安装证书需要通过设置来完成
点击Advanced – Install certificates.
安装后,我们将 Burp 中的代理侦听器设置为我的主机以太网 IP 的代理侦听器,选择常用端口。
在 VirtWifi 中,编辑了相同代理设置。
单击右上角的铅笔以编辑配置。
将代理设置与 Burp Suite 匹配。现在当我们运行 PIVAA 应用程序时,像以前一样使用 Objection 连接它,但是这次将 Android SSLPinning Disable 指定为启动命令,我能够拦截来自 WSA 的流量。
TrustManager 抛出异常,表明 SSLpinning 被绕过