Logo
Overview

FridaをLAN経由で使いたい

January 4, 2025
1 min read

背景

Fridaは基本的にUSB経由で実行することを前提とされているのですが、macOSでDev Containerを使うとホストマシンのUSBデバイスを上手くコンテナ内に繋げることができません。

多分、何らかのセキュリティ上の問題だと思うのですがそれでは困るのでLAN経由で繋げられるようにします。

環境

  • Jailbreak済みのiOS/iPadOSデバイス
    • Sileoでのみ検証

必要なものは脱獄されたデバイスだけです。

まず最初に、

  • Fridaを追加
  • Frida, openssh, NewTerm 3 Beta, gettext-localizationsをインストール

ルートパスワードを忘れてしまっている場合などはNewTerm 3 Betaを使って修正しましょう。

Terminal window
sudo passwd root

とやればルートパスワードを変更できます。

SSH接続

Terminal window
var/
└── jb/
├── Library/
└── LaunchDaemons/
└── re.frida.server.plist
└── usr/
└── lib/
├── frida/
└── frida-agent.dylib
└── sbin/
└── frida-serer

ルートパスワードが変更できたらssh root@192.168.XXX.YYYでデバイスに繋げることができるので繋ぎます

ディレクトリの構成は上のようになっているので、vi /var/jb/Library/LaunchDaemons/re.frida.server.plistとしてファイルを編集します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>re.frida.server</string>
<key>Program</key>
<string>/var/jb/usr/sbin/frida-server</string>
<key>ProgramArguments</key>
<array>
<string>/var/jb/usr/sbin/frida-server</string>
</array>
<key>UserName</key>
<string>root</string>
<key>POSIXSpawnType</key>
<string>Interactive</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ThrottleInterval</key>
<integer>5</integer>
<key>ExecuteAllowed</key>
<true/>
</dict>
</plist>

このうちProgramArgumentsを以下のように変更します。

<key>ProgramArguments</key>
<array>
<string>/var/jb/usr/sbin/frida-server</string>
<string>-l</string>
<string>0.0.0.0</string>
</array>

保存したら以下のコマンドで設定ファイルを読み込ませます。

Terminal window
$ launchctl unload re.frida.server.plist
$ launchctl load re.frida.server.plist

これでps aux | grep fridaとすれば/var/jb/usr/sbin/frida-server -l 0.0.0.0のように起動するようになっています。

まとめ

LAN経由で繋がると便利です、Fridaについてもっと詳しくなりたいですね。

新年あけましておめでとうございます、かしこ。