SAO LƯU BẤT KỲ THIẾT BỊ ANDROID NÀO MÀ KHÔNG ROOT!

Ngày nay, chúng tôi thấy nhiều hướng dẫn kiểm tra thâm nhập Android đề cập đến việc sử dụng thiết bị đã root như một yêu cầu quan trọng.

Bạn đang xem: Sao lưu mọi thiết bị Android mà không cần root!

Sử dụng thiết bị Android đã root thực sự cho phép bạn làm được nhiều việc hơn so với việc sử dụng thiết bị chưa root.

Tuy nhiên, có một số phương pháp bị bỏ qua khi lấy các ứng dụng Android không yêu cầu quyền truy cập root. Lần này chúng ta sẽ đi sâu vào một thứ rất thú vị, có vẻ như không được nhiều người biết đến – Android Backup.

Tại sao phương pháp này?

Tôi chọn tập trung vào phương pháp sao lưu Android này vì rất khó để truy cập thư mục dữ liệu được bảo vệ của ứng dụng bằng thiết bị chưa được root – AKA data / data / APP_PACKAGE_NAME.

Nhiều nhà phát triển có thể lưu trữ dữ liệu nhạy cảm của họ ở đó tuyên bố rằng bạn phải có quyền truy cập root để đọc / ghi các tệp đó.

Trong bài viết này, chúng tôi sẽ giải thích lý do tại sao, trong một số trường hợp, tuyên bố trên là sai.

Cái này cho ai?

Nhà phát triển Android

· Đam mê bảo mật

Pentesters / Người tìm kiếm

Một số phương pháp yêu cầu hiểu biết về các nguyên tắc cơ bản của Android. Đề xuất của tôi là hãy google bất kỳ thuật ngữ nào bạn không chắc chắn, tìm ra nó và quay lại bài viết này. Tôi đã cung cấp các liên kết đến các điều khoản cụ thể có thể hữu ích cho việc này.

Làm sao?

Để chứng minh điều đó theo cách tốt nhất – tôi đã xây dựng một ứng dụng khả thi bằng Java.

Đây là mã đầy đủ cho ứng dụng – hãy thoải mái chơi với nó. Ngoài ra, tôi đã cung cấp apk tôi đã tạo ở đó để bạn có thể thử nghiệm tính năng sao lưu mà không cần tạo ứng dụng.

Ứng dụng này đại diện cho một ứng dụng ngân hàng có một số vấn đề mà chúng ta sẽ thảo luận sau.

Tên gói của ứng dụng là com.app.dontbackup . Nhớ lại; Chúng tôi sẽ sử dụng nó sau.

Cài đặt ứng dụng và chạy nó.

*

Màn hình chính ứng dụng Android

Như bạn thấy, màn hình này hiển thị tên đầy đủ và số dư của một tài khoản có tên Ciri.

Tôi đang ghi lại thông tin nhạy cảm về người dùng này bằng một thành phần Android có tên là Sở thích được chia sẻ . Sử dụng thành phần này – dữ liệu được lưu vào một tệp /data/data/com.app.dontbackup/shared_prefs /com.app.dontbackup.xml trong thiết bị.

Mặc dù số điện thoại và địa chỉ không hiển thị trên màn hình, tôi vẫn lưu chúng bằng cách sử dụng thành phần SharedPreferences.

Xem thêm: Cách kiểm tra ngày sản xuất iPhone 6S, Cách tìm và xem năm sản xuất iPhone

Đoạn mã sau trong ứng dụng lưu các chi tiết nhạy cảm vào thư mục tùy chọn chia sẻ:

private void writeSharedPrefs (SharedPreferences prefs) {prefs.edit (). putString (“name”, name) .apply (); prefs.edit (). putInt (“số dư”, số dư) .apply (); prefs.edit (). putString (“địa chỉ”, địa chỉ) .apply (); prefs.edit (). putString (“phoneNumber”, phoneNumber) .apply (); prefs.edit (). putString (“email”, email) .apply (); Hiện đang sử dụng trình giả lập Genymotion gốc – tôi muốn cho bạn thấy cách dữ liệu thực sự được lưu. Đừng lo lắng – khi tôi chỉ cho bạn phương pháp khai thác, tôi sẽ sử dụng một thiết bị chưa được root.

Để xem tệp trên thiết bị đã root, chúng tôi chạy lệnh sau bằng ADB:

dữ liệu trò chuyện adb shell / data / com.app.dontbackup / shared_prefs / com.app.dontbackup.xml

*

Như vậy, tôi có thể xem tất cả dữ liệu nhạy cảm mà tôi đã lưu trong thiết bị.
Hãy làm nó.

Chuyển sang thiết bị Android chưa root.

*

Tuyệt vời, thiết bị này chưa được root.

Chúng tôi đã biết có dữ liệu nhạy cảm trong thư mục /data/data/com.app.dontbackup/shared_prefs . Chúng tôi muốn có được nó. Để làm điều này, chúng tôi sẽ sử dụng tính năng cho phép tiết kiệm Android.

Đây là một tính năng cho phép bạn thực hiện sao lưu ứng dụng qua ADB. Nó được bật theo mặc định trong AndroidManifest.xml. Đây là ảnh chụp màn hình ứng dụng của chúng tôi:

*

allowBackup được bật theo mặc định

Tim hiểu thêm ở đây.

Sử dụng ADB, hãy chạy lệnh sau để tạo tệp sao lưu dữ liệu ứng dụng của bạn:

adb backup -f backup.ab -f com.app.dontbackup

*

*

Lời nhắc thiết bị lưu dữ liệu
Bây giờ – chúng tôi có một tệp sao lưu có tên backup.ab. Hãy trích xuất dữ liệu từ nó.

Chúng tôi sẽ sử dụng một công cụ mã nguồn mở có tên là android-backup-extractor

Sử dụng công cụ này – Chúng tôi sẽ sử dụng tệp abe.jar và biến tệp sao lưu thành tệp lưu trữ tar.

*

Bạn sẽ nhận được một tệp có tên được giải nén, nó là một kho lưu trữ tar.

*

Giải nén nó và nhận tệp tùy chọn được chia sẻ

*

*

dữ liệu được truy xuất từ ​​/ data / data mà không cần root

Ứng dụng này chỉ ghi lại dữ liệu cụ thể này. Các ứng dụng khác có thể tiết kiệm nhiều dữ liệu hơn theo một số cách, bao gồm cơ sở dữ liệu SQLite, hình ảnh, tệp cấu hình ứng dụng và mã thông báo bảo mật.

Đọc dữ liệu đó thật tuyệt vời – còn việc chỉnh sửa dữ liệu đó trong thư mục ứng dụng bằng thiết bị chưa được root thì sao?

Tôi để bạn làm nghiên cứu của riêng bạn.

Gợi ý một chút: “adb restore”.

Chúc may mắn.

Nhưng những nguy hiểm có thật không?

Một số bạn có thể nói rằng phương pháp giải nén và khôi phục dữ liệu nhạy cảm trong ứng dụng này không hề đơn giản. Rằng nó yêu cầu một thiết bị có bật cài đặt gỡ lỗi và ai thực hiện điều đó?

Câu trả lời là rất nhiều. Nhiều người trong chúng ta bật các cài đặt này để thực hiện các hành động khác nhau: cài đặt ROM tùy chỉnh, phát triển và thử nghiệm các ứng dụng Android hoặc đơn giản là khám phá hệ thống Android.

Giảm thiểu bảo mật

Như tôi đã trình bày trước đây, việc bật sao lưu ứng dụng Android sẽ khiến dữ liệu được lưu trữ trong thư mục được bảo vệ tốt nhất của nó gặp rủi ro. Ngoại trừ việc tiết lộ SharedPreferences, điều này có thể làm lộ cơ sở dữ liệu SQLite nhạy cảm lưu trữ thông tin nhạy cảm về người dùng khác, bao gồm tên đầy đủ, địa chỉ, email, số điện thoại cá nhân, quyền riêng tư của hình ảnh riêng tư và bất kỳ dữ liệu nhạy cảm nào khác mà bạn có thể nghĩ đến.

Hãy nghĩ về nó như thế này – Ứng dụng có thể bao gồm bất kỳ dữ liệu nào mà các nhà phát triển tin rằng sẽ được giữ bí mật với tất cả những người không thuộc quy trình ứng dụng. .

Nếu bạn nhấn mạnh vào việc bật sao lưu ứng dụng, hãy đảm bảo thực hiện những việc sau:

· Mã hóa dữ liệu bằng các thuật toán mã hóa mạnh và đã biết.

Đảm bảo khóa mã hóa là duy nhất và không được mã hóa cứng trong ứng dụng – nếu không kẻ tấn công có thể đọc / dự đoán nó

· Áp dụng giải mã thích hợp cho dữ liệu được phục hồi. Chỉ cho phép khôi phục dữ liệu được giải mã thành công.