บทนำ (Overview)
บทความนี้กล่าวถึงการตรวจสอบ UI ของโปรแกรมบน iOS เพื่อตรวจสอบว่ามี Hidden UI ใดบางที่อาจจะเก็บข้อมูลสำคัญเอาไว้บาง โดยจะใช้โปรแกรม Frida เป็นเครื่องมือช่วยในการตรวจสอบในขณะใช้งาน (Run-time analysis)
ขั้นตอน (Steps)
- ติดตั้ง Frida ดังบทความต่อไปนี้
- สำหรับเครื่อง Jailbreak How to install Appmon on MACOS
- สำหรับเครื่องไม่ Jailbreak How to setup AppMon for a non jailbroken iOS device
- ติดตั้งโปรแกรมที่ต้องการทดสอบ สำหรับเครื่องไม่ Jailbreak จะต้องได้ไฟล์ ipa มาเสียก่อน (สามารถติดตามได้จากบทความ How to convert .app from Xcode to .ipa)
python ipa_installer.py -ipa iVulnerApp.ipa
- จากนั้นเข้าใช้งาน Frida โดยใช้คำสั่งดังนี้
//ตรวจสอบชื่อ Application ที่ Run อยู่บนเครื่อง iOS frida-ps -U //ใช้ Frida เชื่อมต่อ Process ของ Application ที่เราต้องทดสอบ frida -U Gadget
- จากปรากฏหน้า Application ที่เราจะทดสอบดังนี้
- จะพบโปรแกรมต้องการ Username และ Password สำหรับการ login ดังนั้นเราจามาค้นหา UI ที่ซ่อน (Hidden UI) ว่ามีอยู่หรือไม่ โดยใช้คำสั่งดังนี้
//หา Address ของหน้า Windows ปัจจุบัน current_window = ObjC.classes.UIWindow.keyWindow()
- แสดง UI ทั้งหมดของหน้าดังกล่าวโดยใช้คำสั่ง
current_window.recursiveDescription().toString()
- จะพบ 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;
- ทดลองนำไป Login