ก่อนหน้านี้เราเคยทำ certificate pinning bypass กันมาแล้วใน iOS ซึ่งมาคราวนี้ก็เป็น Android บ้าง แต่ถ้าถามว่ามันแตกต่างกันมั้ยก็ตอบได้เลยว่าไม่ครับ lol เอาเป็นว่ามาดูวิธีการทำกันดีกว่าครับ
1. ทำการ root Android Phone ซึ่งก็แล้วแต่ค่ายนะครับ
2. ที่เครื่อง Android, Run frida server บนเครื่อง Android (ติดตั้ง frida ตาม official guide ครับ)
1 2 3 4 |
$ adb devices $ adb root $ adb shell # ./frida-server |
3. กลับมาที่ฝั่ง Attacker Macine ค้นหา Application ว่า Package ชื่อว่าอะไร
1 |
frida-ps -Uai |
4. เขียน script js ชื่อว่า universal-ssl-check-bypass.js เป็น
1 2 3 4 5 6 7 8 9 10 11 12 |
Java.perform(function() { var array_list = Java.use("java.util.ArrayList"); var ApiClient = Java.use('com.android.org.conscrypt.TrustManagerImpl'); ApiClient.checkTrustedRecursive.implementation = function(a1,a2,a3,a4,a5,a6) { // console.log('Bypassing SSL Pinning'); var k = array_list.$new(); return k; } },0); |
5. ทำการ Load application + inject frida script เข้าไปโดยใช้คำสั่ง
1 |
frida -U -f org.package.name -l universal-ssl-check-bypass.js --no-pause |
Source:: mediaservice.net