How to find the sensitive information in HiddenUI using Frida

บทนำ (Overview)

บทความนี้กล่าวถึงการตรวจสอบ UI ของโปรแกรมบน iOS เพื่อตรวจสอบว่ามี Hidden UI ใดบางที่อาจจะเก็บข้อมูลสำคัญเอาไว้บาง โดยจะใช้โปรแกรม Frida เป็นเครื่องมือช่วยในการตรวจสอบในขณะใช้งาน (Run-time analysis) 

ขั้นตอน (Steps)

  1. ติดตั้ง Frida ดังบทความต่อไปนี้
    1. สำหรับเครื่อง Jailbreak How to install Appmon on MACOS
    2. สำหรับเครื่องไม่ Jailbreak How to setup AppMon for a non jailbroken iOS device
  2. ติดตั้งโปรแกรมที่ต้องการทดสอบ สำหรับเครื่องไม่ Jailbreak จะต้องได้ไฟล์ ipa มาเสียก่อน (สามารถติดตามได้จากบทความ How to convert .app from Xcode to .ipa)
    python ipa_installer.py -ipa iVulnerApp.ipa 
    
  3. จากนั้นเข้าใช้งาน Frida โดยใช้คำสั่งดังนี้
    //ตรวจสอบชื่อ Application ที่ Run อยู่บนเครื่อง iOS
    frida-ps -U
    
    //ใช้ Frida เชื่อมต่อ Process ของ Application ที่เราต้องทดสอบ
    frida -U Gadget
    

  4. จากปรากฏหน้า Application ที่เราจะทดสอบดังนี้ 
  5. จะพบโปรแกรมต้องการ Username และ Password สำหรับการ login ดังนั้นเราจามาค้นหา UI ที่ซ่อน (Hidden UI) ว่ามีอยู่หรือไม่ โดยใช้คำสั่งดังนี้
    //หา Address ของหน้า Windows ปัจจุบัน
    current_window = ObjC.classes.UIWindow.keyWindow()
    

  6. แสดง UI ทั้งหมดของหน้าดังกล่าวโดยใช้คำสั่ง
    current_window.recursiveDescription().toString()
    

  7. จะพบ Username และ Password ดังนี้
    | <UILabel: 0x119f0d140; frame = (187 656; 178 21); text = 'admin'; hidden = YES; opaque = NO; autoresize = RM+BM; 
    | <UILabel: 0x119f0d700; frame = (187 685; 178 21); text = 'p@ssw0rd'; hidden = YES; opaque = NO; autoresize = RM+BM; 
    
  8. ทดลองนำไป Login

ใส่ความเห็น