如何将 Android 智能手机变成便携式渗透测试工具
每次外出或办公室里的 Wi-Fi 安全检查都要带着笔记本电脑并不总是那么方便。当需要快速查看本地网络或检查接入点时,手机要好用得多。长期以来,Kali NetHunter 一直是这个领域的标准,但安装它通常会变成一场涉及内核重编译和寻找合适定制固件的冒险。
最近我发现了开发者 zalexdev 的 StrykerOSS 仓库。这是一个免费的 Android 安全审计工具包,将 Nmap、Metasploit 和 Nuclei 等命令行工具整合到统一的图形界面中。
StrykerOSS 的工作原理
作者没有为 Android 重新编写那些众所周知的工具,而是采用了简单且符合逻辑的方法。首次启动时,应用会在 /data/local/stryker/release 处下载并部署一个 Alpine Linux 环境(chroot)。
在这个环境中运行的是完整的 Nmap、Metasploit、Nuclei、Hydra 和 SearchSploit。
顶层是一个用 Java 编写的常规 Android 应用,GUI 采用 Material 3 风格。当你在菜单中按下按钮(例如启动端口扫描)时,Stryker 会构建相应的命令并通过 root 权限发送到 chroot。如果你需要直接访问控制台,侧边菜单中有一个内置的终端模拟器,可以直接将会话切入 Alpine Linux。
主要功能解析
开发者将功能划分为几个逻辑模块。让我们看看这里都有什么。
无线网络和 Wi-Fi
Wi-Fi 模块可以扫描无线信号、捕获握手包、执行取消认证攻击,以及攻击 WPS(包括 Pixie Dust 和 PIN 码暴力破解)。
捕获的握手包会保存在本地,可以导出到 OnlineHashCrack 服务,或者你也可以直接在手机上使用 Hashcat 进行破解。还有一个 GeoMac 模块,可以在 OpenStreetMap 上标出发现的 BSSID,并以 KML 或 CSV 格式导出坐标点。
对于无线攻击,智能手机内置的 Wi-Fi 芯片通常不够用。该应用需要外接一个支持监听模式的 USB Wi-Fi 适配器,通过 OTG 线连接。说明文档推荐使用基于 Atheros AR9271 或 Realtek RTL88XXAU 芯片的适配器。
USB 攻击和设备模拟
如果你的智能手机内核支持 configfs 子系统,Stryker 就会变成一个用于 USB 设备模拟的硬件工具。
- 在 HID 攻击模式下,手机伪装成 USB 键盘,执行 DuckyScript 语言的脚本。该应用包含一个解析器,支持 7 种语言的键盘布局(包括俄语),并附带一组现成的 payload。
- 在 USB Arsenal 模块中,你可以动态更改设备的 VID/PID,模拟网卡(RNDIS/ECM),或将镜像
.iso挂载为普通 U 盘。
网络扫描和漏洞发现
对于 IP 网络操作,Stryker 包含功能完整的 Nmap 界面,支持 NSE 脚本和报告导出。
基于 Nuclei 的 Web 扫描器按严重级别对发现的问题进行分组,并为每个发现显示漏洞证明。RouterScan 模块帮助暴力破解路由器凭证,内置的 Arsenal 数据库允许你创建自己的扫描模板,支持 IP、端口和 MAC 地址参数替换。
一些新鲜有趣的内容:该项目新增了 WhisperPair 模块,用于处理蓝牙低功耗设备。它会检查设备是否存在 Google Fast Pair 协议中的 CVE-2025-36911 漏洞,并可以拦截 HFP 音频流。
对于追求完全自由的用户,该应用甚至可以在 chroot 中启动 XFCE 桌面,并通过 VNC 输出显示。
运行所需条件
你无法在随便一部商店买的手机上运行 StrykerOSS。该项目需要特定的权限和环境:
- Root 访问权限(Magisk 或 KernelSU 都可以)。
- 内部存储约 1 GB 的可用空间,用于解压 Alpine chroot 和工具。
- 用于捕获握手包和攻击无线网络的外置 Wi-Fi 网卡。
- 内核支持 USB Gadget 功能,以便 DuckyScript 和存储模拟正常工作。
源代码内部结构
该项目使用 Java 编写,并使用原生开发工具包(NDK)来构建 C 组件。数据库使用 SQLite 和 SharedPreferences。
文件夹 app/src/main/java/com/zalexdev/stryker/ 中的源代码结构按模块划分。每个工具都有自己的目录:nmap、metasploit、nuclei、hid、wpair 等。系统命令调用通过 Core.java 类和 Core.generateSuProcess() 方法统一处理,这消除了在使用 su 时的代码重复。
构建配置中的一个有趣之处:该项目使用 targetSdk = 28(Android 9.0)。这是有意为之的,以避免遇到更新 Android 版本中对文件系统访问和后台进程的严格限制。
最终印象
StrykerOSS 并不试图将自己定位为一个万能按钮。它更像是一把精致的瑞士军刀,让你不必在小小的手机屏幕上输入冗长的控制台命令。
该项目对安全专业人员和系统管理员很有用,他们更喜欢将一套网络工具保存在一个移动设备中。如果你已经有一部具有 root 访问权限和兼容内核的手机,StrykerOSS 将节省大量设置控制台环境的时间。
相关项目