アプリおよびミニプログラムツールの概要


序文

侵入作業中、私は数多くのアプリやアプレットに遭遇しました。単純なものもあれば、強化されたものもありますが、バイパス、ブラスタブル、ストレージ漏洩、機密情報漏洩など、危険性の高いものも数多く掘り出しました。 . ただし、これらの侵入プロセスでは強力なツールが必要です。したがって、次回コンピュータや環境を変更するときにさまざまなマテリアルから構成を検索する必要がないよう、アプリ、アプレット、その他のモバイル デバイスに侵入するときに一般的に使用されるツールを以下にまとめます。

Burpsuite キャプチャの問題

現在のアプリケーションは Android アプリケーションのバージョンを徐々に向上させているため、一部のアプリケーションは Android 9 のみに対応しており、Android 7 には対応していません。そのため、最初は、エミュレータがブラウザ パッケージをキャプチャできるように見えるかもしれませんが、アプリパッケージをキャッチできません。これは、Android 7 以降ではデフォルトでユーザーがインストールした証明書を信頼しないため、インストールのために adb を使用して証明書をシステムにインポートする必要があるためです。Yeshen エミュレータ Android 9 を例に挙げます。

  1. まず、burpsuite から証明書を生成し、保存します。

ファイル

  1. エクスポートされた証明書は DER 形式であり、PEM 形式の証明書に変換する必要があります。Kali に付属の openssl を使用して直接変換し、証明書の MD5 値を計算し、証明書に MD5 値として名前を付けることができます。
openssl x509 -inform DER -in cacert.der -out cacert.pem
openssl x509 -inform PEM -subject_hash_old -in cacert.pem

ファイル

  1. Yeshen シミュレーターの bin ディレクトリを見つけ、adb.exe を使用して次のコマンドを入力して証明書をアップロードします。
adb.exe devices  查看运行中的设备
adb.exe push 9a5ba575.0 /sdcard/   将证书推入到sdcard中
adb.exe shell  进入shell交互模式
mount -o remount,rw /system  重新挂载写入system
cp /sdcard/9a5ba575.0 /system/etc/security/cacerts/  将证书复制到系统安全目录
chmod 644 /system/etc/security/cacerts/9a5ba575.0  赋予证书读写权限
reboot	重启

ファイル

  1. Burpsuite は監視を開始し、プロキシ サーバーをセットアップします。このマシンの IP アドレスは 192.168.1.101 です。

ファイル

ファイル

  1. パケットは正常にキャプチャされました

ここに画像の説明を挿入

LPosed+JustTrustMe SSL ピニングをバイパスする

上記の方法は、パケットをキャプチャする最も簡単な方法です。相手のサーバーが SSL ピンニング メカニズムを有効にしている場合でも、パケット キャプチャ ツールを使用してパケットをキャプチャすると、パケット キャプチャ ツールがパケットをインターセプトするため、パケットをキャプチャできない可能性があります。サーバーから返された応答。コンテンツがクライアントに再送信されるとき、使用される証明書はサーバーの元の証明書ではなく、パケット キャプチャ ツール自体です。パケット キャプチャ ツールの元の証明書はサーバーの元の証明書ではありません。アプリ開発者が設定するため、仲介者となる 攻撃によりSSL Pinningメカニズムがトリガーされ、接続が中断されるため、パッケージを直接キャプチャすることができない Android未満のバージョンの携帯電話を使用する場合は問題ない場合がありますここでは 7 を使用していますが、アプリに互換性がない可能性があるため、他の解決策が必要です。基本的なフレームワークをバイパスするには、Lowned または Xused を使用できます。詳細な手順は次のとおりです。

  1. Magisk をインストールします。ここでは Magisk-delta 25.2 バージョンをインストールしました。ダウンロード アドレスは次のとおりです。

魔法の

ダウンロード後、Magisk を Yeshen シミュレータに直接ドラッグし、クリックしてローカルにインストールします。オンラインでインストールするには壁を越える必要があります。

ファイル

ファイル

ファイル

「インストール」をクリックします。インストールが完了すると、再起動が必要であることが表示されます。ここで再起動するのではなく、まず Yeshen エミュレータで設定した root 権限をオフにし、電源をオフにして再起動すると、Magisk のインストールが完了します。

ファイル

インストールが完了したら、Magisk を開き、右上隅の [設定] をクリックして、Zygisk の実行を許可します。

ファイル

  1. Lowned フレームワークをインストールします。私は zygisk バージョンをダウンロードしました。ダウンロード アドレスは次のとおりです。

失われた

ダウンロードした zip パッケージを Yeshen エミュレータに直接ドラッグし、Magisk を開き、モジュールを選択してローカルにインストールし、Lowned インストール パッケージを選択します。ロードが完了したら、再起動します。

ファイル

  1. 再起動後、/data/adb/lspd ディレクトリに入ると、manager.apk パッケージが表示されるので、それをクリックしてインストールを選択します。

ファイル

  1. パッケージの解析中にエラーが発生した場合は、Lowned フレームワークから manager.apk を解凍し、エミュレータに直接ドラッグするだけで成功します。

ファイル

  1. 開くことができれば、インストールは成功です。
    ファイル

  2. JustTrustMe モジュールをダウンロードし、Yeshen エミュレータにドラッグし、Lowned モジュールで有効にして、パケット キャプチャの SSL ピンニングを正常にバイパスします。

ここに画像の説明を挿入

アプレットの逆コンパイル

小規模なプログラムに侵入する場合、小規模なプログラムのファンクション ポイントをテストすることに加えて、小規模なプログラムを逆コンパイルしてソース コードをチェックすることが最善の方法です。特に、小規模なプログラムの各データ パケットが小規模なプログラムをいつ最後にデータに署名して一緒に送信する場合、データを偽造するための署名アルゴリズムを見つけるためにアプレットを逆コンパイルする必要があります。これはフロントエンド JS を暗号化するのと同じです。

  1. まず、アプレットを実行して各アプレットの機能を使用すると、実際にはアプレットのパッケージ ファイルが携帯電話のストレージに保存されます ファイルの拡張子は wxapkg ですが、メイン パッケージとサブパッケージが存在します。たとえば、Night God エミュレータのストレージ ディレクトリは /data/data/com.tencent.mm/MicroMsg/e594472a09487567540796a08a51a24f/appbrand/pkg にあり、真ん中の長いセクション e594472a09487567540796a08a51a24f は変更される可能性があります。

ファイル

  1. これらの生成されたパッケージをすべて削除し、小さなプログラムに再度アクセスし、そのすべてのページを確認すると、いくつかの新しい wxapkg パッケージが見つかります。これらのパッケージは小さなプログラム パッケージです。解凍するだけです。解凍するには wxappUnpacker を使用して解凍し、node.js 環境が必要です。
npm install
npm install esprima
npm install css-tree
npm install cssbeautify
npm install vm2
npm install uglify-es
npm install js-beautify

  1. まず、UnpackMiniApp (小さなプログラム パッケージの復号化).exe を使用して、ミニ プログラムが暗号化されているかどうかを確認します。

ファイル

  1. 次に、wuWxapkg.js を使用してアプレットのメイン パッケージを解凍します。解凍時にエラーが発生した場合、パッケージの原因はメイン パッケージにあるわけではない可能性があります。もちろん、多くの場合エラーが報告されますが、アプレットのコードはも出てきて、それが見つかったかどうかを判断できます。

ファイル

  1. ここでもエラーを報告しましたが、逆コンパイルされた小さなプログラムはまだ完成しています。

ファイル

APP シェル、リフレクション マスター、フリーダ

アプリについても同様です。アプリの Java コードが逆になっている場合は、それについては話しません。これはオンラインで検索するか、以前の記事を読んでください。重要なのは、市場に出ているアプリがSecurity や Ali Security などのシェルは、多くのコード情報を隠し、ユーザーの通常の表示に影響を与えます。そのため、シェルを追加する前に、アプリの通常の Java コードを表示するには、このシェルを削除する必要があります。

ここでのアプリのスキャンと逆コンパイルについては、直接使用できる優れたプラットフォームもあり、私はそれを逆コンパイルによく使用します. 脆弱性スキャンに関しては、あまり効果はありませんが、アクティビティ、サービス、提供しており、あらゆる種類のコードが一覧表示され、パーミッションの設定やXMLの設定などをチェックして危険度を一覧表示してくれるのもなかなか良いです。

アドレスは次のとおりです。

アプリのスキャン

ファイル

リフレクションマスター

  1. まず、AppMessage やその他のツールなど、シェルを検出するツールを使用して、シェルがパックされているかどうかを検出できます。

ファイル

  1. 直接解凍するには次の 2 つの方法が提供されています。1 つ目は Reflection Master です。Reflection Master は Android 9 ではサポートされなくなりました。Android 7 は、XPosed フレームワークと Reflection Master をインストールした後でも使用できます。

まず、ゲーム センターで Xused を直接検索してインストールし、ダウンロードします。インストール後、再起動して成功します。クリックして開始します。これ以上の更新がないため、Xused の作者はメンテナンスに参加していません。

ファイル

ファイル

次に、インターネットにアクセスして、どこにでもある Reflection Master の APK ファイルを見つけます。公式 Web サイトについては、わかりません。バックドアがないように注意してください。APK にドラッグして、Reflection Master を開き、モジュールがアクティベートされていないことを示すプロンプトが表示されます。「Xused」と入力して起動するだけです。アクティベートするだけです。

ファイル

次に、Reflect Master を開き、アプリケーションを選択し、[開く] を選択すると、五芒星が表示され、各ページを 1 回実行します。多くのコード アクティビティが発生します。選択して保存するだけです。

ファイル

五芒星をクリックすると、上部にある対応するアクティビティ ランチャーを選択し、現在のアクティビティをクリックして Dex を書き出し、通常の逆コンパイル ツールを使用して jar パッケージに逆コンパイルし、jd-gui を使用します。それを開くために。

ファイル

フリーダ

Reflection Master は Android 9 をサポートしていません。つまり、アプリケーションが Android 7 と互換性がない場合は動作しませんが、frida は良い解決策です。

  1. まず、frida-server ツールと frida-dexdump ツールをダウンロードする必要があります。

Frida-dexdump は、Python を使用して直接ダウンロードすることも、github にアクセスしてダウンロードすることもできます。

pip3 install frida-dexdump
pip install frida-tools
pip install frida

次に、インストールされている frida バージョンを確認します (ここでは 16.1.4)。次に、対応する Android エミュレータのプロセッサ バージョンを確認し、github に移動して対応する Android サーバーをダウンロードします。

ファイル

ファイル

フリーダサーバー

ファイル

次に、adbshel​​l を使用して、ダウンロードした frida を Yeshen シミュレータにドラッグすると、エラーが報告されずに正常に実行されます。

adb.exe push frida-portal-16.1.4-android-x86_64.xz  /data/local/tmp
adb.exe shell
cd /data/local/tmp
chmod 755 frida-portal-16.1.4-android-x86_64.xz
./frida-portal-16.1.4-android-x86_64.xz


ファイル

次に、Windows で frida-hexdump コマンドを実行して、Android エミュレータの実行中のプログラムを表示します。

ファイル

次のコマンドを使用して、ダンプされた実行中のアプリケーションを直接逆コンパイルすることも、コマンドを通じて特定のパッケージを指定することもできます。

frida-dexdump -FU
frida-dexdump -U -f com.app.pkgname

ファイル

要約する

もちろん、携帯端末に関してはそれだけではないはずなので、後で遭遇した時に学んで補いますが、やはりバージョン変更による話題は永遠のテーマです。

おすすめ

転載: blog.csdn.net/weixin_53090346/article/details/132592235