Extremely Vulnerable Android Labs¶
Estimated time to read: 4 minutes
May 16, 2023
Tổng quan¶
Extremely Vulnerable Android Labs (EVABS)123 là một ứng dụng Android mã nguồn mở có lỗ hổng và ứng dụng này hoạt động như một nền tảng học tập cho những người mới bắt đầu bảo mật ứng dụng Android. Bằng cách làm quen với các challenge trong ứng dụng này nhằm giúp cho những người mới bắt đầu có kiến thức rất hạn chế hoặc không có kiến thức về một số lỗ hổng ứng dụng Android có thể biết được và nắm được những lỗ hổng này. EVABS tuân theo cách tiếp cận độ khó theo cấp độ và ở mỗi cấp độ, người chơi sẽ học được một khái niệm mới.
Tiếp theo, với 12 challenge trong app này, ta có thể chia ra cụ thể theo từng cấp độ khác nhau:
- Với challenge từ 1 tới 7:
- Ta sẽ làm quen với câu chuyện là xem những thứ cơ bản, dò những thứ cơ bản đã được leak ra trong sourcecode từ application.
- Hiểu được cơ bản nơi lưu trữ cơ sở dữ liệu trong app, hiểu được cơ bản nơi những activity trong app và qua đó truy xuất được các activity đó.
- Với challenge 8:
- Đòi hỏi người giải quyết challenge phải đọc hiểu code, và thực thi code đó để tìm ra được một số thứ cần tìm: Ví dụ như đọc code login, đọc phần mã hóa password để từ đó dịch ngược tìm được raw password.
- Với challenge 9, 11, 12:
- Bản chất của 3 challenge đòi hỏi người giải quyết challenge đọc code, sửa source code để đạt được một vài mục đích nào đó.
- Với challenge 10:
- Người giải quyết challenge sẽ được làm quen với call API từ 1 app android đến 1 API nào đó, nhưng vì tại thời điểm blog này được viết, API server bị sập từ lâu nên không thể tìm kiếm được flag.
Ngoài ra, chúng ta đang thực hành pentesting trên app Android thì việc trang bị cho mình một vài công cụ pentest là điều cần thiết:
- Genymotion4: Ứng dụng giúp tạo ra một điện thoại ảo Android (có thể xem như môi trường sandbox để pentest app).
-
Android Debug Bridge[^5]: Android Debug Bridge là một công cụ lập trình sử dụng cho việc gỡ lỗi các thiết bị dựa trên nền tảng Android. Phương thức trình nền trên thiết bị Android kết nối với máy chủ trên PC chủ qua USB hoặc TCP kết nối với máy khách được người dùng cuối sử dụng qua TCP. Để cài đặt ADB, ta dùng các phương pháp sau:
- Ubuntu/Kali (Linux): sudo apt install android-tools-adb
- MacOS: brew install android-platform-tools
- Windows: Xem hướng dẫn tại đây
-
ByteCode Viewer: Một câu cụ dùng để phân tích tĩnh sourcecode của application
- Apktool: Một công cụ dùng để reverse sourcecode, dump, đóng gói ứng dụng.
Cuối cùng, danh sách các challenge và flag tương ứng nằm trong bảng dưới đây.
Challenge Name | Flag |
---|---|
Debug me | EVABS{loggin_info_never_safel} |
File Access | EVABS{fil3s_!n_ass3ts_ar3_eas!ly_hackabl3} |
Strings | EVABS{saf3ly_st0red_in_Strings?} |
Resources | EVABS{th!s_plac3_is_n0t_as_s3cur3_as_it_l00ks} |
Shares and Prefs | EVABS{shar3d_pr3fs_c0uld_be_c0mpromiz3ds} |
DB Leak | EVABS{sqlite_is_not_safe} |
Decode | EVABS{nev3r_st0re_s3ns!tiv3_data_1n_7h3_s0urcec0de} |
Smali Injection | EVABS{smali_inj_is_l3thals} |
Interception | nan |
Custom Access | nan |
Instrument | EVABS{a_dynam1c_h00k} |
Giải quyết các challenge¶
Kịch bản giải quyết challeng 1 đến 7¶
Đầu tiên, ta cứ có file sourcecode của app, ta dùng ByteCode-Viewer để phân tích code trước đã.
Như chúng ta có thể thấy, hình trên chính là một phần sourcecode của app. Sourcecode của app sẽ nằm trong /com/revo/evabs
Chanllenge 1¶
Ở challenge này,
Chanllenge 2¶
Chanllenge 3¶
Chanllenge 4¶
-
Bạn có thể đọc thêm tại https://www.hawkspawn.com/EVABS/ ↩
-
Bạn đọc cài đặt ứng dụng tại: https://www.hawkspawn.com/blog/getting-started-with-evabs/ ↩
-
Blog này tôi viết nhằm mục đích ghi lại writeup 12 challenge trong ứng dụng EVABS của tác giả abhi-r3v0 ↩
-
Download tại https://www.genymotion.com/download/ ↩