How to setup Frida for Android Studio Emulator (AVD)

บทนำ (Overview)

สำหรับการใช้งาน Android Virtual Device (AVD) ในงาน Penetration Test นอกจากการ Root AVD แล้วยังมีการติดตั้ง Frida Server บน AVD อีกด้วย ในบทความนี้จะกล่าวถึงขั้นตอนการการติดตั้ง Frida Server บน AVD ที่ได้ทำการ Root เป็นที่เรียบร้อยแล้ว How to root Android Studio Emulator (AVD) with Magisk รวมถึงการติดตั้ง Frida Client ที่เครื่อง Host ที่เป็น Windows

บทความโดย
Warut Yantarattanawan และ Warunyou Sunpachit
Cybersecurity Consultant

ขั้นตอน (Steps)

1. ดาวน์โหลด Frida Server

เลือกดาวน์โหลด Frida Server version ที่เข้ากันได้กับ Android Image ที่เราเลือกไว้

ต่อเนื่องจากบทความที่แล้ว เราได้เลือก Android Image เป็นแบบ x86 ไว้ ดังนั้นในขั้นตอนนี้เราต้องเลือกดาวน์โหลด Frida Server สำหรับ Android x86 เช่นกัน

Note: Frida Server ต้องใช้สิทธิ์ Root ในการ Run นั่นหมายความว่า Frida Server สามารถ Run ได้เฉพาะบน Root Device เท่านั้น ส่วนการใช้ Frida กับ Non-Root Android สามารถทำได้เช่นกัน แต่จะมีขั้นตอนมากกว่าในบทความนี้ Using Frida on Android without root

2. แตกไฟล์ Frida Server

เมื่อแตกไฟล์ จะเจอกับไฟล์ Binary ของ Frida Server

3. Push ไฟล์ Binary ของ Frida Sever ไปยัง AVD

ก่อน Run คำสั่งต่อไปนี้ ต้องตรวจสอบว่า AVD เปิดอยู่และ Path ของไฟล์ Frida Sever Binary นั้นถูกต้อง

adb push F:\Tool\Mobile\frida-server-15.1.17-android-x86 /data/local/tmp/frida-server-15.1.17-android-x86
4. เข้าใช้งาน Shell ของเครื่อง AVD

โดย Run คำสั่งต่อไปนี้

adb shell

จากรูปจะเห็นว่า Shell ที่เราได้นั้นเป็นเพียง Normal User

Note: ในกรณีที่ผู้อ่านมีการเปิด AVD พร้อมกันหลายตัวให้ใช้คำสั่งดังต่อไปนี้ เพื่อ List AVD ที่เปิดอยู่ และเลือก Shell ของ AVD ที่ต้องการใช้

adb devices -l
adb -s emulator-5554 shell
5. สลับจาก Normal Userเป็น Root User ใน AVD Shell

โดย Run คำสั่งต่อไปนี้

su

จากรูปจะเห็นว่า Shell ของเราได้กลายเป็น Root User แล้ว

ในการ Run คำสั่ง su ครั้งแรก จะมีหน้าต่าง Superuser Request ขึ้นมาใน AVD ตามรูปด้านล่าง ให้เรากด Grant

ในกรณีที่ผู้อ่านกด Grant ไม่ทัน

ให้เปิด Magisk > Superuser > Shell > Enable Button
6. ตรวจสอบไฟล์ Frida Server Binary บน ADV ที่ Push เข้ามา

เมื่อตรวจสอบไฟล์ Frida Server Binary ด้วยคำสั่งตอไปนี้ จะเห็นว่าไฟล์ยังไม่มี Execute Permission จึงยังทำให้ Run Frida Server Binary ไม่ได้

cd /data/local/tmp/
ls -al
7. เพิ่ม Execute Permission ให้กับไฟล์ Frida Server Binary

เมื่อ Run คำสั่งต่อไปนี้ จะเห็นว่าไฟล์ Frida Server Binary มี Execute Permission แล้ว

chmod +x frida-server-15.1.17-android-x86
ls -al
8. Run Frida Server บน AVD

ใช้คำสั่งต่อไปนี้ เพื่อ Run Frida Server แบบ Background Mode

./frida-server-15.1.17-android-x86 &
9. ติดตั้ง Frida Client ที่เครื่อง Host

ก่อนที่จะติดตั้ง Frida Client ได้นั้น ในเครื่องของเราต้องมี Python และมีการเพิ่ม Path ของ pip ใน Environment Variable ให้เรียบร้อยก่อน How To Fix ‘Pip‘ Is Not Recognized As An Internal Or External Command จากนั้นจึงจะ Run คำสั่งต่อไปนี้ เพื่อติดตั้ง Frida Client ได้

pip install frida
pip install frida-tools
10. ทดสอบเชื่อมต่อ Frida Client ไปยัง Frida Server

Run คำสั่งต่อไปนี้ เพื่อโชว์ Process บน AVD

frida-ps -U

Option -U จะเป็นการเชื่อมต่อไปยัง Frida Server บนอุปกรณ์ที่เชื่อมต่อกับ Host ผ่าน USB ซึ่งในกรณีของ ADV ก็ถือว่าเป็นการเชื่อมต่อผ่าน USB เช่นกัน จึงสามารถใช้ Option -U ได้

Note: ในกรณีที่ผู้อ่านมี Frida Server หลายตัวเชื่อมต่อมาที่เครื่อง Host ให้ใช้คำสั่งต่อไปนี้ เพื่อ List และเลือก Frida Server ที่ผู้อ่านต้องการเชื่อมต่อ

frida-ls-devices
frida-ps -D emulator-5554

อ้างอิง