【ユーゴンシリーズ】2023年5月 攻撃と防御の世界 - MOBILE (Flag_system)


序文

1.ab ファイル

Android 携帯電話でフォレンジックを実行する場合、携帯電話のアプリケーション データをバックアップする必要があることが多く、バックアップ後に取得されるデータ ファイルは ab 形式です。ほとんどのフォレンジック ソフトウェアは ab ファイルを分析できますが、ab ファイルのファイル システムを解析し、アプリケーション データを手動で分析する必要がある場合があります。一般に ab ファイルには 2 種類あり、1 つは暗号化されていない、このファイルの前に 24 バイトのファイル ヘッダーがある、ファイル ヘッダーに none フラグが含まれている、データがファイル ヘッダーの後にある、もう 1 つは暗号化されたバックアップです。ファイルであり、そのファイル ヘッダーはさらに複雑で、ファイル ヘッダーには AES-256 フラグが含まれています。

2.Android バックアップ エクストラクタ

Androidbackup extractor はオープン ソース プロジェクトです.sourceforge と github から最新のソース コードをダウンロードできます.Java で記述されているため、実行するには Java 環境が必要です. Android バックアップ エクストラクターは、ab 形式を使い慣れた tar 形式に変換できます。最も重要なことは、暗号化なしの adb バックアップとデータ暗号化の両方をサポートしていることです。変換用のコマンド形式は次のとおりです。

暗号化されていない ab ファイルの場合、コマンド形式は java -jar abe.jar unpack <backup.ab> <backup.tar> です。実行が成功した場合、情報プロンプトは表示されませんが、エラー プロンプトが表示された場合は、ab ファイルが破損している可能性があり、バックアップを再度作成する必要があります。

暗号化された ab ファイルの場合、変換はさらに面倒です. Java Cryptography Extension をインストールする必要があります. java の公式 Web サイトから local_policy.jar と US_export_policy.jar ファイルをダウンロードして、java の対応するディレクトリにコピーします。詳細については、Android backup extractor.readme.txt ファイルを参照してください。暗号化された ab バックアップを変換するための特定のコマンド形式は次のとおりです。 java -jar abe.jar unpack <backup.ab> <backup.tar> [password]. 実行に成功した場合、情報プロンプトは表示されず、エラー メッセージが表示された場合は、ab ファイルが破損しているか、パスワードが間違っている可能性があります。

ab を tar に変換するだけでなく、Androidbackup エクストラクタは tar を ab に変換することもできます。たとえば、一部のアプリケーション データを変更する必要がありますが、電話をルート化することはできないため、最初に電話データを ab ファイルとしてバックアップし、ab バックアップを tar に変換してデータを変更してから、変更した tar を ab に変換できます。バックアップ、最後に復元 変更された ab がデバイスにバックアップされます

3. 関連ツール

3 つの逆コンパイル ツールを次に示します。

  • jadx は、Android APK ファイルの逆コンパイル、静的逆コンパイル、強力な検索インデックスのためのオープン ソース ツールです。
  • Jeb は IDA と非常によく似ており、動的デバッグに属し、Java アセンブリを監視して疑似コードを生成し、ターゲットに動的にアタッチしてデバッグすることもできます。
  • Dex2jar: Dex2jar は、逆コンパイルと分析を容易にするために、Android .dex ファイルを Java .class ファイルに変換するツールです。

so ファイルの反転ツール選択

  • IDA リバース ツールは、ソフトウェア リバース エンジニアリングの分野で広く使用されている逆アセンブラーで、さまざまなプラットフォームのバイナリ プログラム コードを逆アセンブルし、読み取り可能なアセンブリ コードに復元できます。

Objection は、Frida を利用したモバイル デバイス ランタイム エクスプロイト ツールであり、研究者がモバイル アプリケーションにアクセスし、ジェイルブレイクやルート化を行わずにモバイル アプリケーションのセキュリティを評価するのに役立ちます。

インストールコマンド

pip3 install objection 

Frida は、JavaScript および Python コードを記述して frida_server と対話できる、移植可能な無料のプラットフォーム全体のフック フレームワークです。

frida のインストールについては、https: //www.jianshu.com/p/60cfd3f6afdeを参照してください。

1.フラグシステム

1.トピック

ここに画像の説明を挿入

2. 質問に答える

この質問は、変更された backup.ab を提供し、ab のヘッダー、バージョン、および圧縮をわずかに変更します。abe を直接使用して抽出する場合は、コードに従って ab ヘッダーを修復するだけです。抽出した後、2 つのバックアップ apk ファイルがあることがわかりました。

com.example.mybackup
com.example.zi

その中で、mybackup は sqlcipher によって暗号化された BOOKS.db を提供します. フラグはデータベースに格納されており、データベースを復号化した後にフラグを取得できます.

パスワードは、逆コンパイルによって直接見ることができます

public BooksDB(Context context) {
    
    
    super(context, "BOOKS.db", null, 1);
    this.k = Test.getSign(context);
    this.db = this.getWritableDatabase(this.k);
    this.dbr = this.getReadableDatabase(this.k);
}

getSign は自分で書いたものの署名を取得し、「SHA1」を計算し、jeb の逆コンパイル結果を直接使用してキーを取得するコードを記述し、正しい sqlcipher バージョンを試して復号化することを選択します。

sqlite> PRAGMA KEY = 'KEY';
sqlite> .schema
CREATE TABLE android_metadata (locale TEXT);
CREATE TABLE books_table (book_id INTEGER primary key autoincrement, book_name t
ext, book_author text);
sqlite> select * from books_table

または、バックアップ apk で提供される sqlcipher ライブラリを使用して、データベースを書き換えて読み取り、BOOKS.db コンテンツを取得します。

おすすめ

転載: blog.csdn.net/aa2528877987/article/details/130473475