Trong kiểm thử bảo mật ứng dụng di động (Mobile Pentest), Flutter là một trong những nền tảng đặc thù nhất bởi ứng dụng không sử dụng Proxy của hệ điều hành Android và không tin cậy kho chứng chỉ hệ thống (System CA Store). Bài viết này sẽ hướng dẫn chi tiết phương pháp hook vào engine BoringSSL của Flutter bằng Frida để bắt gói tin qua Burp Suite.

1. Chuẩn bị môi trường thử nghiệm

  • Android Emulator (khuyến nghị kiến trúc x86_64, Android 9 hoặc 10 không có Google Play Services để dễ ghi vào /system).
  • Công cụ Burp Suite đã cấu hình Proxy lắng nghe trên tất cả các interface mạng.
  • Môi trường Python đã cài đặt fridafrida-tools.

2. Các bước thực hiện chi tiết

Bước 1: Liệt kê danh sách máy ảo Android (AVD)

emulator -list-avds

Liệt kê danh sách AVD

Bước 2: Khởi động Emulator với quyền ghi hệ thống (-writable-system)

emulator -avd <Ten_AVD> -writable-system -no-snapshot-load

Khởi động máy ảo ghi hệ thống

Bước 3: Cài đặt chứng chỉ Burp Suite vào System Trust Store

Để máy ảo tin tưởng chứng chỉ CA của Burp Suite, chạy script hỗ trợ cài đặt quyền root và đẩy cert vào /system/etc/security/cacerts/:

adb root
adb remount
# Đẩy file chứng chỉ CA dạng hash .0 vào thư mục bảo mật hệ thống

Setup certificate

Bước 4: Khởi chạy Frida Server trên thiết bị

Tải frida-server phiên bản tương ứng với kiến trúc máy ảo, đẩy vào thư mục /data/local/tmp/ và cấp quyền thực thi:

adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"

Chạy Frida Server

Bước 5: Hook BoringSSL để Bypass SSL Pinning và điều hướng Proxy

Sử dụng Frida script chuyên dụng để tìm hàm ssl_crypto_x509_session_verify_cert_chain trong thư viện libflutter.so và ghi đè kết quả trả về luôn là thành công (True):

frida -U -f com.example.flutterapp -l disable-flutter-tls.js --no-pause

Bắt gói tin thành công trên Burp Suite

💡 Tham Khảo Khóa Học Pentest Mobile Tại VietCyber:

Khóa học Mobile Security & Pentest tại VietCyber hướng dẫn bài bản kỹ thuật dịch ngược, bypass bảo vệ, phân tích API và vá lỗi cho cả hai nền tảng Android & iOS.