Bypass check root cho ứng dụng trên thiết bị Android Hacker mũ trắng kiếm hàng triệu USD tiền thưởng vì tìm ra lỗ hổng phần mềm và báo cáo lỗ hổng với nhà phát triển sản phẩm. Bạn có tò mò quá trình tìm kiếm lỗ hổng của họ như thế nào? Đây sẽ là bước đệm cơ bản để có thể thành hacker mũ trắng (pentest mobile). Khi thực hiện Pentest hoặc khai thác ứng dụng, ta cần cài đặt ứng dụng trên thiết bị Android đã root. Vì vậy trong bài này tôi sẽ hướng dẫn các bạn cách Bypass Bheck Boot của ứng dụng trên thiết bị Android. Sẽ là những kiến thực nhập môn đơn giản. 1. Bypass root là gì? Khi phát triển một ứng dụng, nhà phát triển thực hiện cơ chế check root để ngăn chặn người dùng sử dụng ứng dụng trong thiết bị Android đã root. Khi người dùng cố gắng cài đặt thêm ứng dụng, sẽ có thông báo không cho phép ứng dụng cài đặt trên thiết bị đã root. 2. Các công cụ: - Giả lập thiết bị Android trên máy tính (tôi sử dụng Android Studio IDE) - Ứng dụng WaTF-Bank - Platform-tools của Android - Frida 2.1 Cài đặt giả lập thiết bị Android trên máy tính Tải và cài đặt Android Studio IDE Sau khi cài đặt, click vào ADV Manager trên thanh công cụ Để tạo máy ảo mới, Click vào Create Virtual Device Cài đặt thiết bị và thông số máy mà bạn muốn Sau khi cài xong, khởi động thiết bị sẽ có giao diện như sau: Như vậy là bạn đã có 1 thiết bị Android. 2.2 Cài đặt ứng dụng WaTF-Bank lên thiết bị để thực hành WaTF-Bank là một ứng dụng mô phỏng một dịch vụ ngân hàng tồn tại hơn 30 lỗ hổng bảo mật, là môi trường để thực hành đánh giá bảo mật ứng dụng. Link tải: https://github.com/WaTF-Team/WaTF-Bank Để cài đặt ứng dụng watf-bank.apk trên thiết bị, ta cần cài đặt Platform-tools của Android Link tải: https://developer.android.com/studio/releases/platform-tools Để cài đặt ứng dụng, ta sử dụng tool adb Bash: adb.exe help để tham khảo khả năng hỗ trợ của tool Bash: adb.exe device – xem các thiết bị đang mở Bash: adb.exe install <ứng dụng muốn cài đặt> để cài đặt ứng dụng vào thiết bị Ở đây tôi đã cài đặt thành công ứng dụng WaTF-Bank vào máy Giao diện ứng dụng Cuối cùng cài đặt Frida. Frida là bộ công cụ dùng để đánh giá và kiểm tra các ứng dụng Android. Bash: pip install frida Cần thiết lập Frida trên thiết bị Android, cần phải tải xuống frida server cho nền tảng Android tương ứng từ trang web: https://github.com/frida/frida/releases/ Tôi đã test và cảm thấy phiên bản 14.0.2 là ổn định nhất 3. Các bước thực hiện bypass check root Bước 1: Sao chép frida server vào thư mục tmp của điện thoại, sau khi sao chép thay đổi quyền của tệp frida-server-14.0.2-android-x86 Bash : adb.exe root adb.exe push “<file frida server” /data/local/tmp adb.exe shell cd /data/local/tmp chmod 777 frida-server-14.0.2-android-x86 ./frida-server-14.0.2-android-x86 Bước 2: Cài đặt ứng dụng trong điện thoại, có thể kết nối với frida server bằng cmd và sử dụng lệnh “frida-ps –U” để liệt kê tất cả tiến trình đang chạy. Bước 3: sử dụng frida-scrip để thực hiện bypass check root như trong hình. Như vậy là đã bypass check root thành công, bạn chỉ cần allow các quyền cho ứng dụng để sử dụng. Để sử dụng ứng dụng ta cần khởi chạy server kết nối. Tại folder Backend trong WaTF-Bank vừa tải về ta sử dụng pip để cài đặt thư viện. Bash: pip3 install -r requirements.txt ./StartServer Sau khi mở server, ta sử dụng tài khoản mật khẩu như sau để đăng nhập vào ứng dụng. Sử dụng IP máy tính của bạn cổng 5000 để kết nối đến server Như vậy là ta có thể sử dụng ứng dụng WaTF-Bank. Bạn có thể tìm hiểu các tính năng trong ứng dụng này. Chi tiết các bạn có thể xem Video dưới đây Ở phần sau tôi sẽ demo khai thác các lỗ hổng đang tồn tại trong ứng dụng. Liệu bạn có thể tìm tòi và khai thác được??? Hãy comment bên dưới để trao đổi nhé. Cảm ơn và hẹn gặp lại!