Sử Dụng Frida & Objection Không Cần Jailbreak

Sử Dụng Frida & Objection Không Cần Jailbreak

Table of contents

No heading

No headings in the article.

  1. Vấn đề:

    Trong quá trình triển khai dự án pentest iOS, team mình có gặp phải một vấn đề liên quan tới việc setup môi trường test. Bên khách hàng cung cấp file cài đặt của ứng dụng nhưng chỉ hỗ trợ thiết bị có iOS 15.1 trở nên trong khi đó tại đơn vị không có thiết bị jailbreak nào version cao hơn 15.1 và team mình cũng cố gắng jailbreak nhưng không thành công. Rất may có giải pháp giải quyết vấn đề này - Library Injection Method, bằng cách inject frida-gadget vào file ipa.

  2. Thực hiện:

    Note: trong bài mình thực hiện trên ipad mini6 iOS 15.2

    Trước tiên để thực hiện được, chúng ta cần:

    - Macbook hoặc máy ảo Mac

    - Provisioning profile (Apple Developer Account): có thể tạo account tại https://developer.apple.com/

    - XCode.

    Step 1: Tạo code signing files.

    Chúng ta sẽ cần 2 files để ký lại app: Code Signing Certificate và Provisioning Profiles.

    Tạo Code Signing Certificate sử dụng XCode

    Đầu tiên mình cần thêm Apple ID vào XCode:

    1. Start XCode và chọn Preferences

    2. Đi đến Accounts để thêm Apple ID (click vào dấu + để thêm apple id)

    Tạo Provisioning Profile sử dụng XCode

    1. Tạo một project XCode bất kỳ

    2. Đi tới Signing & Capabilities và chọn Team là cái apple ID mình vừa add ở trên

    tick vào box “Automatically manage signing”

    Để xác nhận Identity đã được setup, chạy câu lệnh sau:

    
     security find-identity -p codesigning -v
    

    câu lệnh sẽ trả về tất cả các valid identity mà mình sẽ cần dùng ở bước tiếp theo.

    Step 2: Patch và Inject Frida Server vào file IPA sử dụng objection

     objection patchipa --source <file IPA> --codesign-signature <identity>
    

    Chúng ta sẽ có được một file IPA mới với tên là …frida-codesigned.ipa

    Step 3: Unzip file IPA được tạo tại bước trên, chúng ta sẽ có một folder mới là Payload

     unzip …frida-codesigned.ipa
    

    Step 4: Nếu ios-deploy chưa được cài đặt, chạy câu lệnh sau:

     sudo npm install -g ios-deploy --unsafe-perm=true --allow-root
    

    Cài đặt app đã được patched vào thiết bị test (thiết bị cần được kết nối với Mac).

     ios-deploy --bundle Payload/SomeAppName.app -W -d
    

    Cài đặt app thành công ta sẽ thấy app đó trên thiết bị test. Mở thêm 1 terminal mới để chạy objection.

     objection explore
    

    Kiểm tra một số câu lệnh objection

    Kiểm tra liệu frida gadget có thực sự hoạt động trên thiết bị

     frida-ps -Uai
    

    Kết nối tới Gadget:

     frida -U Gadget
    

  3. Kết luận:

    Như vậy nhờ phương pháp này, chúng ta đã có thể chạy frida và objection trên thiết bị non-jailbreak, trong quá trình pentest mobile sẽ không còn bị phụ thuộc vào thiết bị jailbreak.

    Ref:

    https://infosecwriteups.com/frida-objection-without-jailbreak-27a66501bf38