Android Pentest: Automated Analysis using MobSF

MobSF là một công cụ mã nguồn mở được phát triển bởi Ajin Abraham được sử dụng để phân tích tự động APK. Đây là tập hợp các công cụ chạy dưới một giao diện, thực hiện các tác vụ riêng lẻ như Jadx, apktool, v.v. và hiển thị kết quả dưới một giao diện chung. Các báo cáo này cũng có thể được tải xuống ở định dạng PDF và phân tích chi tiết cùng với các ảnh chụp màn hình . Bạn có thể tải xuống MobSF tại đây . Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn cài đặt trong Hệ điều hành Ubuntu và hướng dẫn sử dụn các tùy chọn khác nhau mà công cụ này cung cấp.

Mục lục

  • Cài đặt
  • Trang đích
  • Phân tích chứng chỉ người ký
  • Quyền ứng dụng
  • Hoạt động có thể duyệt & Phân tích an ninh mạng
  • Phân tích Tệp kê khai
  • Phân tích mã
  • Phân tích phần mềm độc hại
  • Bí mật được mã hóa cứng
  • Các thành phần hoạt động hiện tại
  • Tệp có trong gói APK
  • Máy phân tích động
  • Luồng Logcat
  • Giám sát API
  • Tải xuống báo cáo

Hãy bắt đầu nào!

Cài đặt

Để cài đặt MobSF, hãy tạo một thư mục và làm theo các lệnh:

1
2
git clone https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
cd Mobile-Security-Framework-MobSF

Các bạn cần cài đặt các phụ thuộc trước khi có thể chạy:

1
2
apt-get install python3-venv
pip3 install -r requirements.txt

Sau khi hoàn tất chạy tệp thiết lập để cài đặt MobSF và tất cả các thành phần tự động

1./setup.sh

Bây giờ, để chạy MobSF hãy thực hiện run.sh  và MobSF sẽ chạy trên một máy chủ cục bộ trên cổng 8000.

Bây giờ hãy mở liên kết trong trình duyệt và xem liệu MobSF đã được cài đặt đúng cách hay chưa.

Trang đích

Ta thấy MobSF đã được thiết lập và chạy, chúng ta có thể kéo một APK giả (trong trường hợp này, tôi sẽ đưa InjuredAndroid của Kyle Benac ( ở đây )) vào giao diện MobSF và xem điều gì sẽ xảy ra. Sau khi đợi một vài phút để tiến trình phân tích tĩnh APK thực hiện.  Trên trang đích, các bạn có thể thấy rằng điểm mức độ nghiêm trọng được đưa ra. Điểm này càng cao thì ứng dụng càng an toàn. Tiếp theo, hàm băm, tên tệp và kích thước của APK cũng được cung cấp. Trong cột thứ ba ở hàng đầu tiên, chúng ta cũng có thể thấy tên gói, hoạt động chính, phiên bản SDK tối thiểu và cả phiên bản ứng dụng. Mô tả của ứng dụng cũng được đưa ra.

Sau khi cuộn xuống một chút, đây là tất cả những gì chúng ta có thể thấy:

  • Trong các thẻ nhỏ, chúng ta thấy các thành phần ứng dụng khác nhau
  • Tùy chọn phân tích động sẽ giúp MobSF tiến hành phân tích thời gian chạy
  • Tùy chọn để xem mã dịch ngược. Đây là mã được tạo bởi apktool. Nhìn chung, tệp tài nguyên cũng được giải mã. Và có thể xem mã smali giúp dễ dàng phân tách và xem mã nguồn trong các lớp java riêng biệt.

Phân tích chứng chỉ người ký

Trong cột chứng chỉ, chúng ta có thể thấy chứng chỉ người ký, nơi người ta có thể tìm thấy thông tin quan trọng về nhà phát triển, quốc gia, tiểu bang, loại bí danh, kích thước bit, v.v.

Quyền ứng dụng

Hơn nữa, ta có thể thấy tất cả các quyền mà một ứng dụng có. Có nhiều quyền khác nhau được phân loại là nguy hiểm hoặc bình thường. Theo quan điểm của nhà phân tích bảo mật, điều quan trọng là phải hiểu quyền nào có thể dẫn đến thiệt hại . Ví dụ: nếu một ứng dụng có quyền truy cập vào phương tiện bên ngoài và lưu trữ thông tin quan trọng trên phương tiện bên ngoài thì có thể bị xem là nguy hiểm vì các tệp được lưu trữ trên phương tiện bên ngoài có thể đọc và ghi được trên toàn cục.

Hoạt động có thể duyệt & Phân tích an ninh mạng

Tiếp theo, trong phần các hoạt động có thể duyệt qua, chúng ta có thể thấy tất cả các hoạt động đã triển khai lược đồ liên kết sâu. Hãy tham khảo bài viết tại đây để hiểu tất cả về liên kết sâu, cách triển khai cũng như khai thác của nó.

Trong phần bảo mật mạng, ta có thể tìm thấy một số chi tiết về các vấn đề an ninh mạng liên quan đến ứng dụng. Những vấn đề này đôi khi có thể dẫn đến các cuộc tấn công nghiêm trọng như MiTM. Ví dụ: trong ảnh chụp màn hình bên dưới, các bạn có thể thấy rằng ứng dụng không sử dụng cơ chế ghim SSL (SSL Pinning).

Phân tích Tệp kê khai

Trong phần tiếp theo MobSF hân tích tệp kê khai. Các bạn có thể tìm thấy nhiều thông tin từ tệp kê khai android như hoạt động nào được xuất, ứng dụng có thể gỡ lỗi hay không, lược đồ dữ liệu, v.v. Để tham khảo, hãy xem ảnh chụp màn hình bên dưới.

Phân tích mã

Một trong những tính năng thú vị nhất của công cụ MobSF là phần phân tích mã. Trong phần này, ta có thể thấy rằng MobSF đã phân tích và so sánh một số hành vi của ứng dụng dựa trên các thông lệ tiêu chuẩn bảo mật của ngành như OWASP MSTG và lập bản đồ các lỗ hổng với OWASP Top 10. Thật thú vị khi thấy CWE được đề cập và điểm CVSS được chỉ định ở đây. có thể giúp phân tích các tình huống khác nhau và tạo báo cáo dễ dàng hơn.

Phân tích phần mềm độc hại

MobSF có tích hợp APKiD là một công cụ mã nguồn mở rất hữu ích để xác định các trình đóng gói, trình biên dịch, obfuscators khác nhau, v.v. trong các tệp android tương tự như PEiD trong APK. Ở đây, ta có thể thấy rằng APKiD đã phát hiện một mã chống vm trong APK.

 Tiếp theo đó là tính năng kiểm tra phần mềm độc hại tên miền. Tại đây, MobSF đang trích xuất tất cả các URL / địa chỉ IP được mã hóa cứng hoặc đang được sử dụng trong ứng dụng và hiển thị trạng thái phần mềm độc hại cũng như sử dụng ip2location để cung cấp vị trí địa lý IP.

Một phân tích chuỗi toàn diện cũng có sẵn trên MobSF. Những người hiểu biết về phân tích phần mềm độc hại có hiểu biết sâu về chuỗi nhưng đối với những người không biết thì chuỗi chỉ là chuỗi ký tự có thể in được như ASCII và Unicode được nhúng trong một tệp. Việc trích xuất chuỗi có thể cung cấp manh mối về chức năng chương trình và các chỉ báo liên quan đến một nhị phân nghi ngờ. Ví dụ: nếu một APK hiển thị thứ gì đó dưới dạng đầu ra thì luồng đó sẽ được gọi và do đó được hiển thị trong chuỗi. Như hình minh họa ta có thể thấy địa chỉ IP của bên thứ ba mà APK đang giao tiếp. Điều này là cần thiết theo quan điểm phân tích phần mềm độc hại.

Các bạn cũng có thể tìm thấy các email được mã hóa cứng trong MobSF. Tất cả điều này được thực hiện bằng cách sử dụng mã nguồn được dịch ngược. Thông thường, một pentester có thể tìm thấy các ID email quan trọng đang được sử dụng làm thông tin đăng nhập trên trang web của bên thứ ba để truy cập cơ sở dữ liệu.

Như email thì các URL cũng thường được mã hóa cứng. Ta có thể tìm thấy các URL hấp dẫn đôi khi được sử dụng. Thông thường, các nhà phân tích nhận thấy các URL độc hại cũng được truy cập hoặc thậm chí là máy chủ C&C.

Bí mật được mã hóa cứng

Thông thường, các nhà phát triển có thói quen lưu trữ các khóa quan trọng như ID AWS và thông tin đăng nhập trong string.xml và sử dụng một đối tượng làm tham chiếu trong hoạt động của java. Nhưng làm điều này không giúp ích gì theo bất kỳ cách nào vì string.xml có thể được giải mã dễ dàng.

Các thành phần hoạt động hiện tại

Danh sách tất cả các hoạt động hiện có cũng có thể xem bằng MobSF. Điều này cung cấp thông tin chi tiết về khung của APK android. Ngoài ra, đôi khi jadx thay thế tên thật của lớp bằng một số chữ cái ngẫu nhiên nếu nhà phát triển đã áp dụng phương pháp xáo trộn, MobSF cũng có thể liên kết tên thật của nó (không phải lúc nào cũng xảy ra hoặc trong trường hợp xáo trộn mạnh).

Tương tự như vậy, một nhà phân tích cũng có thể duyệt qua các dịch vụ, chương trình phát , nhà cung cấp và bộ thu nội dung cùng với tất cả các tệp có trong kho lưu trữ APK để tạo bản đồ của tất cả các tài nguyên có trong ứng dụng.

Phân tích động

Đối với phân tích động, trước tiên chúng ta cần kích hoạt máy ảo Android trong genymotion. Ở đây, tôi đã tạo một máy ảo Android trên phiên bản 7.1

Khi bạn nhấn tùy chọn trình phân tích động hiển thị trên ngăn điều hướng trên cùng, MobSF sẽ tự động gắn vào VM đang chạy nếu MobSF và genymotion đang chạy trên cùng một máy cơ sở. Tuy nhiên, nếu MobSF nằm trong một máy ảo khác, bạn có thể phải đính kèm tác nhân MobSF với IP và cổng từ xa của genymotion. Sau khi nó được gắn vào, chúng ta sẽ thấy màn hình sau đây.

Dưới thanh trạng thái của trình phân tích, chúng ta có thể thấy các tập lệnh frida mặc định khác nhau có sẵn để kiểm tra các lỗ hổng cơ bản như bỏ qua Ghim SSL và kiểm tra phát hiện root. Nếu bạn chưa đọc về frida, vui lòng truy cập hay tham gia lớp MOBISEC 2 . Ngoài ra còn có các tập lệnh phụ trợ khác cho phép nhà phân tích liệt kê các lớp khác nhau và cũng thu thập các so sánh chuỗi trong thời gian thực (một lần nữa hữu ích cho các nhà phân tích phần mềm độc hại). Sau đó, chỉ cần nhấp vào bắt đầu thiết bị đo và các tập lệnh đã chọn sẽ tự động được đính kèm vào ứng dụng. Do đó, nếu ta đã chọn tập lệnh bỏ qua Ghim SSL và lưu lượng truy cập đang được ghi lại (hiển thị trong nhật ký hoặc trình theo dõi API sau này) thì có nghĩa là Ghim SSL đã bị bỏ qua.

Xxa hơn, để phân tích các hoạt động cho các lỗ hổng, các bạn có thể thấy hai nút ở trên cùng cho cả các hoạt động được xuất và không được xuất

Tương tự, nếu các bạn có thể sử dụng các tập lệnh Frida được định cấu hình trước trong hộp văn bản ở bên phải. Ngoài ra còn có một hộp thả xuống sẽ tải các tập lệnh đó. Bạn cũng có thể chỉnh sửa chúng.

Luồng Logcat

Logcat cũng có thể được xem trong môi trường gốc của MobSF. Có một nút ở menu trên cùng cho phép xem luồng này.

Giám sát API

Cũng giống như logcat giám sát nhật ký thiết bị, các API cũng có thể được giám sát. APK sử dụng các API khác nhau trong thời gian thực để thực hiện các chức năng khác nhau, chẳng hạn như thư viện Base64.

Do đó, nếu một hàm đang sử dụng API này và giải mã một giá trị, chúng ta có thể thấy giá trị đó ở đây và giải mã nó. Ví dụ: ở bên dưới, bạn có thể thấy giá trị trả về của một hàm như vậy trong Base64.

Tải xuống báo cáo

Khi bạn đã thực hiện phân tích, có thể tải xuống báo cáo bằng cách trượt thanh trượt của thanh menu ở phía bên trái và nhấp vào tạo báo cáo.

Bạn có thể nhận thấy một số lỗi trong khi tạo báo cáo. Để giải quyết vấn đề này, bạn có thể làm theo lệnh dưới đây và cài đặt mô-đun wkhtmltopdf :

1apt-get install wkhtmltopdf

Một lần nữa nếu bạn nhấp vào thanh quét gần đây, bạn sẽ thấy các tùy chọn tạo báo cáo tĩnh và động.

Báo cáo trông như sau:

Kết luận

MobSF là một công cụ tuyệt vời để thực hiện phân tích tự động trên các APK Android. Công cụ này không bao gồm phân tích tất cả các lỗ hổng và nhiều thử nghiệm chỉ có thể được tiến hành thủ công nhưng là một công cụ tiện lợi giúp các nhà phân tích ở mức độ lớn. 

Security365 – MOBISEC 1 – Hacking Android

Trả lời

Please log in using one of these methods to post your comment:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s