Androidスマートフォンをポータブルなペネストレーションツールに変える方法
フィールドワークやオフィスでのWi-Fiセキュリティチェックに毎回ノートPCを持ち歩くのは、必ずしも便利ではありません。ローカルネットワークの様子をさっと確認したり、アクセスポイントをチェックしたい場合は、手机の方がずっと便利です。長い間 Kali NetHunter がこの分野の標準でしたが、インストールするにはカーネルの再コンパイルや適切なカスタムファームウェアを探す必要があり、大仕事になるのが常でした。
最近、开发者 zalexdev が公開している StrykerOSS リポジトリを見つけました。Android 向けの無料セキュリティ監査ツールキットで、Nmap、Metasploit、Nuclei などのコマンドラインツールを1つのGUIに統合しています。
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 モジュールもあり、発見した BSSID を OpenStreetMap にプロットし、KML や CSV 形式でポイントをエクスポートできます。
ワイヤレス攻撃には、スマホの内蔵Wi-Fiチップでは通常不十分です。アプリにはモニタモード対応の外部USB Wi-Fi アダプタが必要で、OTGケーブルで接続します。説明では Atheros AR9271 または Realtek RTL88XXAU チップベースのアダプタを推奨しています。
USB攻撃とデバイスエミュレーション
スマホのカーネルが configfs サブシステムをサポートしている場合、Stryker は USB デバイスエミュレーションのハードウェアツールに変身します。
- HID 攻撃モードでは、スマホが USB キーボードになりきって DuckyScript 言語のスクリプトを実行します。アプリにはロシア語を含む7言語のキーボードレイアウトをサポートするパーサーと、 готовый ペイロードのセットが含まれています。
- USB Arsenal モジュールでは、VID/PID をその場で変更したり、ネットワークカード(RNDIS/ECM)をエミュレートしたり、イメージ
.isoを通常のフラッシュドライブとしてマウントしたりできます。
ネットワークスキャンと脆弱性発見
IP ネットワークの作業向けに、Stryker には NSE スクリプトサポートとレポートエクスポート機能を備えたフル機能の Nmap インターフェースが含まれています。
Nuclei ベースのウェブスキャナーは、発見した問題を重大度レベルでグループ化し、各発見事項の脆弱性の証拠を表示します。RouterScan モジュールはルーターの認証情報ブルートフォースを支援し、組み込みの Arsenal データベースにより、IP、ポート、MAC アドレスのパラメータ置換が可能な独自のスキャンテンプレートを作成できます。
新鮮で興味深い点として、プロジェクトには Bluetooth Low Energy 用の WhisperPair モジュールが追加されました。Google Fast Pair プロトコルの CVE-2025-36911 脆弱性をデバイスに対してチェックし、HFP オーディオストリームを傍受できます。
完全な自由を求める人のために、アプリで chroot 内に XFCE デスクトップを起動し、VNC で出力することもできます。
実行に必要なもの
StrykerOSS は市販のどんなスマホでも動作するわけではありません。このプロジェクトには特定の権限と環境が必要です:
- Root アクセス(Magisk または KernelSU が動作すること)。
- Alpine chroot とユーティリティを展開するために、内部ストレージに約1GBの空き容量。
- ハンドシェイクのキャプチャとワイヤレスネットワーク攻撃用の外部 Wi-Fi カード。
- DuckyScript とストレージエミュレーションを動作させるためのカーネル内 USB Gadget サポート。
ソースコードの中身
プロジェクトは C コンポーネントのビルドに Native Development Kit(NDK)を使用して Java で書かれています。データベースには 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 は魔法のボタンを装おうとはしていません。的手机的小さな画面で長いコンソールコマンドを打つ必要から解放してくれる、整齐な瑞士軍刀的ツールという位置づけです。
このプロジェクトは、ネットワークユーティリティのセットを1つのモバイルデバイスにまとめておきたいセキュリティ専門家やシステム管理者にとって便利です。すでに root アクセスと互換性のあるカーネルを持つスマホを持っているなら、StrykerOSS はコンソール環境のセットアップに много времениを節約してくれるでしょう。
関連プロジェクト