บทความนี้อธิบายเกี่ยวกับวิธีการติดตั้ง Burp Certificate ในระบบ Android โดยใช้คำสั่งใน Window และ Kali Linux ในขั้นตอนรวดเดียวเพื่อลดขั้นตอนในการติดตั้ง รวมถึงอธิบายแต่ละคำสั่ง เพื่อเตรียม Cert และทำการติดตั้ง Cert ในอุปกรณ์ Android โดยใช้ ADB (Android Debug Bridge) ซึ่งเป็นเครื่องมือในการเชื่อมต่อและจัดการกับอุปกรณ์ Android ผ่านทางคอมพิวเตอร์
Warunyou Sunpachit และ Boonperm Mark
Cybersecurity consultant
คำสั่งรวดเดียว
Windows
curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert & openssl x509 -inform DER -in cacert.der -out cacert.pem & for /f %A in ('openssl x509 -inform PEM -subject_hash_old -in cacert.pem ^| head -1') do @ren cacert.pem %A.0 & adb shell su -c "mount -o rw,remount /" && adb push %A.0 /sdcard/Download/ && adb shell su -c "cp /sdcard/Download/%A.0 /system/etc/security/cacerts/%A.0" && adb shell su -c "chmod 644 /system/etc/security/cacerts/%A.0" && adb reboot
Kali
curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert && openssl x509 -inform DER -in cacert.der -out cacert.pem && A=$(openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1) && mv cacert.pem $A.0 && adb shell su -c "mount -o rw,remount /" && adb push $A.0 /sdcard/Download/ && adb shell su -c "cp /sdcard/Download/$A.0 /system/etc/security/cacerts/$A.0" && adb shell su -c "chmod 644 /system/etc/security/cacerts/$A.0" && adb reboot
เตรียมอุปกรณ์
- เปิด Burp
- เอาสายเสียบ Android (เครื่องต้อง Root เรียบร้อย)
- เปิด USB debuging
- ตั้งค่า Burp Suite
- แก้ไข IP ของ Script ข้างต้น เป็น IP ของ Burp (http://192.168.0.101:8080)
- ใช้งาน Script

สำหรับ Windows
สำหรับผู้ใช้งานบน Windows จำเป็นต้อง ลงส่วนประกอบเพิ่มเติมที่สำคัญดังนี้
- ลง cmder https://cmder.app/
- ลง openssl
ตรวจสอบอุปกรณ์
- ตรวจสอบว่าเครื่อง Root หรือไม่
adb shell su -c "echo 'Device is rooted.'"
- ตรวจสอบเปิด USB debugging หรือไม่ คำสั่ง
"adb shell settings get global adb_enabled"
0: หมายถึง USB debugging ปิดอยู่บนอุปกรณ์ 1: หมายถึง USB debugging เปิดอยู่บนอุปกรณ์ - ให้ตรวจสอบ IP และ Port ของ Burp เพื่อเอาไปใส่ใน Script เพื่อติดตั้ง Certificate ลนใน System

อธิบายแต่ละคำสั่ง
ชุดคำสั่งเตรียม Cert
1. ดาวโหลด Cert Burp ลงเครื่องโดยใช้ IP ข้างต้น
curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert
ใช้สำหรับดาวน์โหลดไฟล์ cacert.der
จาก URL http://burp/cert
โดยใช้พร็อกซีที่อยู่ที่ 192.168.0.101:8080
เพื่อเชื่อมต่อเครือข่าย
การอธิบายคำสั่ง:
curl
: เป็นเครื่องมือที่ใช้ส่งคำขอ HTTP หรือ HTTPS ไปยังเซิร์ฟเวอร์และรับข้อมูลตอบกลับ--proxy http://192.168.0.101:8080
: กำหนดพร็อกซีที่ใช้ในการเชื่อมต่อเครือข่าย ในที่นี้ใช้พร็อกซีที่อยู่ที่192.168.0.101
และพอร์ต8080
-o cacert.der
: กำหนดชื่อไฟล์ที่จะถูกบันทึกลงโฟลเดอร์ที่กำหนดหลังจากดาวน์โหลด ในที่นี้คือcacert.der
http://burp/cert
: URL ของไฟล์ที่ต้องการดาวน์โหลด
λ curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1527 100 1527 0 0 52830 0 --:--:-- --:--:-- --:--:-- 54535
2. แปลงไฟล์ Cert จาก Der เป็น Pem
openssl x509 -inform DER -in cacert.der -out cacert.pem
ใช้สำหรับแปลงไฟล์ cacert.der
จากรูปแบบ DER (Distinguished Encoding Rules) เป็นรูปแบบ PEM (Privacy-Enhanced Mail) และบันทึกไฟล์ผลลัพธ์เป็น cacert.pem
การอธิบายคำสั่ง:
openssl x509
: เป็นคำสั่งใน OpenSSL ที่ใช้ในการจัดการกับ Certificate (ใบรับรองความปลอดภัย)-inform DER
: กำหนดรูปแบบของไฟล์นำเข้าเป็น DER-in cacert.der
: ระบุชื่อไฟล์ของ Certificate DER ที่จะถูกแปลง-out cacert.pem
: ระบุชื่อไฟล์ผลลัพธ์ที่จะถูกบันทึกเป็น Certificate PEM

3. ดึงค่า Hash
openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1
ใช้สำหรับประมวลผล Certificate PEM จากไฟล์ cacert.pem
เพื่อคืนค่า subject hash และใช้คำสั่ง head -1
เพื่อเลือกเฉพาะบรรทัดแรกของผลลัพธ์ที่คืนค่ากลับมา
การอธิบายคำสั่ง:
-inform PEM
: กำหนดรูปแบบของไฟล์นำเข้าเป็น PEM-subject_hash_old
: ให้คำสั่งคืนค่า subject hash ที่ใช้กับการตรวจสอบใบรับรองเก่า-in cacert.pem
: ระบุชื่อไฟล์ของ Certificate PEM ที่จะถูกประมวลผล|head -1
: ใช้ส่งผลลัพธ์จากคำสั่งก่อนหน้าไปยังคำสั่งhead -1
เพื่อเลือกเฉพาะบรรทัดแรกจากผลลัพธ์ที่คืนค่ากลับมา
λ openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1 9a5ba575
4. ตั้งชื่อไฟล์ดังนี้จากค่า hash ที่ได้
mv cacert.pem 9a5ba575.0
ใช้ในการเปลี่ยนชื่อไฟล์ cacert.pem
เป็น 9a5ba575.0
ในพาธปัจจุบันของไฟล์ หากไฟล์ cacert.pem
อยู่ในตำแหน่งเดียวกับเครื่องหมายคำสั่งที่กำลังรัน โปรแกรมจะเปลี่ยนชื่อไฟล์ให้เป็น 9a5ba575.0
.
5. รวมคำสั่งชุดแรกในการเตรียม Cert
curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert openssl x509 -inform DER -in cacert.der -out cacert.pem openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1 cp cacert.pem [hash].0
curl --proxy http://192.168.0.101:8080 -o cacert.der http://burp/cert & openssl x509 -inform DER -in cacert.der -out cacert.pem & for /f %A in ('openssl x509 -inform PEM -subject_hash_old -in cacert.pem ^| head -1') do @ren cacert.pem %A.0
ชุดคำสั่งติดตั้ง Cert
6. คัดลอกไฟล์ที่สร้างไปยังเครื่อง Android
adb push 9a5ba575.0 /sdcard/Download/
คำสั่ง adb push 9a5ba575.0 /sdcard/Download/
ใช้สำหรับคัดลอกไฟล์ 9a5ba575.0
จากเครื่องคอมพิวเตอร์ของไปยังโฟลเดอร์ /sdcard/Download/
บนอุปกรณ์ Android ที่เชื่อมต่อผ่าน adb
(Android Debug Bridge).
7. ทำให้สามารถเข้าถึง System folder
สำหรับเครื่องโทรศัพท์หรือ Tablet ของจริงที่ไม่ใช่ Emulator ให้ใช้คำสั่งดั่งนี้
adb shell su mount -o rw,remount /
หรือ
adb shell su -c mount -o rw,remount /
มีวัตถุประสงค์ในแก้ไขระบบไฟล์ของอุปกรณ์ Android ผ่าน ADB (Android Debug Bridge) โดยใช้สิทธิ์ root (superuser) ในกรณีที่อุปกรณ์ของได้รับการรูท (root) แล้ว คำสั่งนี้สามารถทำให้ได้สิทธิ์การเขียนแก้ไขไฟล์ระบบของอุปกรณ์ Android ที่เป็นแบบอ่านอย่างเดียว (read-only) เป็นแบบอ่านเขียน (read-write)
8. ย้าย Cert จาก Download ไปยัง System
cp /sdcard/Download/d2fb4683.0 /system/etc/security/cacerts/9a5ba575.0 adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0
การคัดลอกไฟล์ “d2fb4683.0” ที่อยู่ใน “/sdcard/Download/” ไปยัง “/system/etc/security/cacerts/9a5ba575.0” ในระบบไฟล์ของอุปกรณ์ Android แล้วเปลี่ยนการอนุญาต (permission) ของการเข้าถึงไฟล์ เป็น 644 ซึ่งเป็นค่าสิทธิ์ที่ให้การอ่านเขียนได้สำหรับเจ้าของไฟล์
9. Reboot เครื่อง
adb reboot
10. รวมคำสั่งชุดสองในการติดตั้ง Cert
adb shell su -c mount -o rw,remount / adb push d2fb4683.0 /sdcard/Download/ cp /sdcard/Download/d2fb4683.0 /system/etc/security/cacerts/9a5ba575.0 adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0 adb reboot
เมื่อทุกอย่างเสร็จสิ้นสมบูรณ์ CA certificate ของ Burp จะอยู่ใน System โดยเมนูการเข้าถึงแต่ Android Device ให้ศึกษาในแต่ละรุ่นดังตัวอย่างต่อไปนี้
