How to setup AppMon on MacOS for non-jailbroken device

บทนำ (Overview)

ในการใช้งาน Frida เพื่อทดสอบบนเครื่องไม่ Jailbreak นั้นจะต้องมีการ Setup อุปกรณ์และโปรแกรมให้เป็นที่เรียบร้อยเสียก่อน ซึ่งแตกต่างจากเล็กเครื่อง Jailbreak แล้วที่สามารถใช้งานกับ Frida ที่อยู่บนเครื่อง Mac ได้ทันที เพียงแค่เราลง Frida บน iOS (ติดตามได้จากบทความ How to bypass the Jailbreak Detection using Frida)โดยหลักการเบื้องต้นคือจะต้อง Modify โปรแกรมที่จะต้องการทดสอบเล็กน้อย โดยการเพิ่ม Library ที่ชื่อว่า FridaGadget.dylib เข้าไปในโปรแกรม .ipa จากตัวอย่างข้างล่างจะเป็นวิธีการใช้งาน โปรแกรม AppMon สำหรับช่วยในการ Inject Library ตามที่กล่าวเอาไว้แล้ว

  1. ติดตั้ง Host ที่เครื่อง MacOS
  2. ติดตั้งโปรแกรมที่จำเป็นบนเครื่อง Mac  (Homebrew,  Node js, ideviceinstallerlibimobiledeviceios-deploy)
  3. สร้าง Apple Developer profile
  4. ติดตั้งโปรแกรม AppMon
  5. ติดตั้ง IPA ที่ต้องการทดสอบ

ขั้นตอน (Steps)

ติดตั้งโปรแกรมบนเครื่อง MacOS (Host setup)

  1. ให้ติดตั้ง Host จากบทความ How to setup AppMon on MacOS for jailbroken device
  2. สามารถสรุปคำสั่งได้ดังนี้
    //ตรวจสอบ python จะต้องPython 2 หรือมากกว่าเวอร์ชัน 2.7.9 หรือ Python 3 มากกว่าเวอร์ชัน 3.4
    python --version
    
    //ติดตั้ง pip
    sudo easy_install pip
    which pip
    pip --version
    
    //ติดตั้งโปรแกรมที่จำเป็น โดยใช้โปรแกรม pip
    sudo -H pip install argparse frida flask termcolor dataset --upgrade --ignore-installed six
    
    //ตรวจสอบว่าโปรแกรม Frida ติดตั้งแล้ว
    frida-ps --version
    

ติดตั้งโปรแกรมที่จำเป็นบนเครื่อง Mac  (Setup for a non jailbroken iOS Device)

  1. ติดตั้ง Homebrew สามารถติดตามได้จากบทความ How to install Homebrew on MacOS
  2. ติดตั้ง wget โดยใช้คำสั่งดังนี้
    brew install wget
    

  3. ติดตั้ง Node js โดยใช้คำสั่งดังนี้
    brew install node
    
  4. ติดตั้ง ideviceinstaller โดยใช้คำสั่งดังนี้
    brew install ideviceinstaller
    
  5. ติดตั้ง libimobiledevice โดยใช้คำสั่งดังนี้
    brew install libimobiledevice
    
  6. ติดตั้ง ios-deploy โดยใช้คำสั่งดังนี้
    npm install -g ios-deploy
    
    1. ถ้าเกิดปัญหาดังรูป 
    2. ให้แก้ตามข้างล่างและใช้คำสั่งลง iOS-deploy อีกครั้ง
      sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
      

 


สร้าง Apple Developer profile (Create a Apple Developer Profile)

  1. ติดตั้ง Host และ Xcode เวอร์ชันที่ใช้ทดสอบ (8.3.3) บนเครื่อง Mac ดาวน์โหลดและติดตั้งโปรแกรม xcode สำหรับ (https://developer.apple.com/download/more/)
  2. สร้าง Apple ID ตาม https://github.com/dpnishant/appmon/wiki/4.c.i-Creating-a-iOS-Developer-Profile
    1. เสียบสาย Data เข้าเครื่อง iOS
    2. สร้าง Project ขึ้นมา
    3. สร้าง สร้าง iOS Developer Profile โดยใช้ Apple ID (สามารถดูรายละเอียดได้ที่ https://github.com/dpnishant/appmon/wiki/4.c.i-Creating-a-iOS-Developer-Profile)
    4. จากนั้นกำหนดชื่อโปรเจคของเรา และใช้ Apple Id มา login เพื่อ sign โปรแกรม และเลือกเครื่อง iOS ของเราที่เสียบสายเข้าไป และ กด Run

      • เลือก iOS ตรงกับเครื่อง iOS ใช้งานได้ 
      • เลือกเครื่อง iOS  ที่เราเสียบเข้าสายสัญญาณ
      • จากนั้นทดสอบ Run โปรแกรม 
    5. ถ้าเกิดปัญหาดังรูป 
    6. ให้ Clean โปรเจคแล้วทดลอง Run อีกครั้ง
    7. ในครั้งแรกที่ติดตั้งเครื่อง iOS จะต้องเชื่อมกับ Internet และจะพบข้อความดังนี้ 
    8. ให้ไปที่เครื่อง iOS และไปที่เมนู Settings | General | Profile & Device Management | DEVELOPER APP | และกดปุ่ม Trust

 


ติดตั้งโปรแกรม AppMon

  1. ดาวน์โหลด AppMon ไว้ที่หน้า Desktop
    git clone https://github.com/dpnishant/appmon
    
  2. เข้าไปที่โฟลเดอร์ ipa_installer
  3. ทำสำเนาโปรแกรมที่ต้องการทดสอบไว้ในโฟลเดอร์ดังกล่าว 
  4. และโหลด library เข้าไปยังโฟลเดอร์ดังกล่าวด้วย โดยใช้คำสั่งดังนี้
    curl -O https://build.frida.re/frida/ios/lib/FridaGadget.dylib
    

 


ติดตั้ง IPA ที่ต้องการทดสอบ

  1. ใช้คำสั่งที่เครื่อง Mac ดังนี้
    sh build.sh
    python ipa_installer.py -ipa DVIA.ipa 
    
  2. แก้ปัญหาเรื่อง Ambitous Keychain ถ้าเกิดปัญหาดังรูป
  3.  ที่โปรแกรม keychain
  4. ให้ไปลบ Keychain ที่ซ้ำซ้อนกันและ Expire จากนั้นทดลองใช้คำสั่งใหม่อีกครั้ง
  5. จะพบว่าสามารถเรียกใช้งานโปรแกรมได้สำเร็จ 
  6. ให้เปิดหน้าจอใหม่แล้วลองตรวจสอบว่าเจอ Process id ของโปรแกรมที่เราจะทดสอบหรือไม่โดยใช้คำสั่ง
    frida-ps -U
    

อ้างอิง

ใส่ความเห็น