How to test insecure data storage on Non-jailbroken Physical Devices – plist (Objection)

บทนำ (Overview)

“Insecure data Storage” เป็นช่องโหว่ที่จะเกิดขึ้นเนื่องจากข้อมูลที่เป็นความลับหรือสำคัญ อย่างเช่น user account, ข้อมูลทางการเงิน ข้อมูลส่วนตัว ถูกจัดเก็บบนมือถือโดยไม่มีการป้องกันอย่างเหมาะสม เช่น ไม่มีการเข้ารหัส เป็นต้น ซึ่งมักเกิดจากโปรแกรมเขียนจัดเก็บข้อมูลเพื่อจดจำไว้ในไฟล์ หนึ่งในนั้นคือไฟล์ plist (Property List Files) ซึ่งมีโครงสร้างแบบ “xml” ไฟล์ สามารถเปิดอ่านได้ โดยบทความนี้นำเสนอวิธีเข้าถึงไฟล์ดังกล่าวจากเครื่องที่ไม่ได้ Jailbreak Continue reading

How to test insecure data storage on Non-jailbroken Physical Devices – Keychain data (Objection)

บทนำ (Overview)

“Keychain” ในเครื่อง “iOS” เป็นที่จัดเก็บข้อมูลอย่างปลอดภัย ซึ่งสามารถจัดเก็บพวกข้อมูลสำคัญ (Sensitive information) อย่างเช่นพวก “usernames”  “password” หรือ “Tokens” ต่าง ๆ สำหรับการพิสูจน์ตัวตนได้ โดยปกติแล้วเครื่อง “iOS” จะใช้ “keychain” จัดเก็บรหัสผ่านของ “WiFi” และเราสามารถเข้าถึงและเปิดอ่านโดยใช้โปรแกรมจำพวก “SQLite Browser” โดยเข้าไปที่โฟลเดอร์ “/private/var/Keychains” จากนั้นหาไฟล์ที่ชื่อ “keychain-2.db” แต่ข้อมูลส่วนใหญ่ก็เข้ารหัสเสียหมด สามารถดูรายละเอียดเพิ่มเติมจาก How to test insecure data storage – Keychain data (Snoop-it)

Continue reading

How to access iOS application file system on Non-jailbroken Physical Devices Using Objection

บทนำ (Overview)

บทความนี้กล่าวถึงการเข้าถึงระบบไฟล์ของโปรแกรมที่ต้องการทดสอบบนเครื่อง iPad หรือ iPhone ที่ยังไม่ได้ผ่านการ Jailbreak โดยใช้โปรแกรม Objection โปรแกรมดังกล่าวใช้ความสามารถของ Frida ในการทำงานซึ่งสามารถสรุปเป็นขั้นตอนโดยสังเขป ดังนี้

  1. ติดตั้งโปรแกรม xcode สำหรับสร้าง Developer profile provision profile และ Certificate สำหรับ sign application โดยใช้เพียง Apple ID ที่เรามี
  2. ติดตั้ง Frida บนเครื่อง MacOS  เพื่อเชื่อมต่อกับโปรแกรมที่เครื่องทดสอบเพื่อใช้งานคำสั่งต่าง ๆ ของ Frida ได้ ภายหลังทำ Library injection และ ติดตั้งโปรแกรมเรียบร้อยแล้ว
  3. ติดตั้งโปรแกรม Appmon/Objection สำหรับการทำ Library Injection และ Sign Certificate เพื่อให้สามารถลงโปรแกรม .ipa ที่ต้องการทดสอบบนเครื่อง iOS ที่ไม่ได้ Jailbreak ได้
  4. ติดตั้ง โปรแกรม Objection สำหรับเข้าถึงโฟลเดอร์สำหรับการทดสอบ

Continue reading

How to find the sensitive information in memory using Fridump

บทนำ (Overview)

ในบทความนี้เราจะวิเคราะห์ถึงข้อมูลในหน่วยความจำ (Memory)  ของโปรแกรมที่เขียนบน “iOS” กัน ซึ่งบางที่แล้วข้อมูลเช่น “username” “password” “OTP” “pincode” หรือ “session” เมื่อใช้งานเสร็จสิ้นก็ควรลบออกจากหน่วยความจำให้เรียบร้อย โดยบทความนี้จะใช้ Script ที่ชื่อ Fridump ในการดึงข้อมูลบน Memory ออกมาโดยเครื่อง iOS ไม่จำเป็นต้อง Jailbreak สามารติดตามวิธีการค้นหาโดยใช้ Cycript ได้จาก (How to find the sensitive information in memory)Continue reading

How to find the sensitive information in HiddenUI using Frida

บทนำ (Overview)

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

How to convert .app from Xcode to .ipa

บทนำ (Overview)

บทความนี้เป็นวิธีการเปลี่ยนนามสกุลของ .app ที่เกิดจากการ Build จาก xcode มา convert เป็น .ipa เพื่อนำไปติดตั้งในเครื่อง iOS และทดสอบต่อไปContinue reading

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 ที่ต้องการทดสอบ

Continue reading

How to bypass the Jailbreak Detection using Frida

บทนำ (Overviews)

จากบทความที่แล้วเราเสนอวิธีการข้ามการตรวจสอบ “Jailbreak” โดยวิธีต่าง ๆ คือ

  1. วิธีการ “Method Swizzling” (How to bypass the Jailbreak Detection – Method Swizzling)
  2. โปรแกรมที่ชื่อว่า “xCon” (How to bypass the Jailbreak Detection using xCon)
  3. โปรแกรม “tsProtector” คือ (How to bypass the Jailbreak Detection using tsProtector)
  4. โปรแกรม “Flex2” แต่มีความน่าสนใจคือ โปรแกรมสามารถ “Reverse Engineering” เพื่อเห็น “Obj-c class” และ “Obj-c method” แถมยังปรับค่าที่เป็น “Boolean” ได้อีก เหมือนการทำ “Method Swizzling” (How to bypass the Jailbreak Detection using Flex2)

มาในบทความนี้จะใช้โปรแกรมที่เรียกว่า “Frida” ซึ่งมีความง่ายมากในการใช้งานContinue reading