Dạo gần đây Netflix đã công chiếu bộ phim Unlocked, kể về quá trình một tên sát nhân hàng loạt điều tra về các nạn nhân và cài phần mềm mã độc gián điệp vào điện thoại của họ. Với phần mềm đó, tên sát nhân theo dõi được nạn nhân sát sao hơn, dần dần huỷ hoại cuộc sống của họ trước khi ra tay sát hại. Một trong những cảnh ấn tượng nhất của bộ phim là quá trình kẻ sát nhân sử dụng phần mềm mã độc để theo dõi nhất cử nhất động của nạn nhân, và thậm chí có thể điều khiển điện thoại từ xa nữa.
Là một người có tiềm chất nghịch ngợm tò mò, phần mềm mã độc trong bộ phim đã hấp dẫn mình. Và mình tự hỏi: "liệu mấy phần mềm mã độc Android hiện nay có làm được như thế không nhỉ?". Vậy thì còn chờ gì nữa, thử dính mã độc luôn thôi.
Trong quá trình tìm kiếm thì mình đã chọn ra được hai ứng cử viên sáng giá để lây nhiễm, đó là:
- Airavat Android RAT (https://github.com/Th30neAnd0nly/AIRAVAT).
- Ahmyth Android RAT (https://github.com/AhMyth/AhMyth-Android-RAT).
Trong bài viết này mình sẽ chỉ thử nghiệm với ứng dụng mã độc Airavat thôi. Những ai có hứng thú có thể tự cài đặt và thử nghiệm nốt ứng dụng mã độc Ahmyth theo hướng dẫn trên Github nhé.
1. Giới thiệu
Airavat là một loại Android RAT có giao diện quản lý qua web. Mọi dữ liệu thu thập được từ điện thoại của nạn nhân sẽ được tải lên Google Firebase, trang web quản lý sẽ đọc dữ liệu từ Firebase để hiển thị cho kẻ tấn công. Mặc dù có giao diện quản lý qua web, nhưng toàn bộ trang web sử dụng JavaScript để xử lý. Toàn bộ mã nguồn của trang web được tạo thành từ các tệp tin JS và HTMl, do đó nó có thể được cài đặt dễ dàng. Kẻ tấn công chỉ cần chỉnh sửa các cấu hình, rồi đưa toàn bộ mã nguồn lên một dịch vụ hosting bất kỳ (người phát triển nói là trừ 000webhost ra), kể cả đưa lên Github page cũng được luôn. Không cần cài đặt hosting, không cần cấu hình các dịch vụ khác, không tốn một đồng chi phí thuê hosting nào.
Về phía Client side, tức là tệp tin apk của phần mềm mã độc, cũng được tác giả đơn giản hoá đi để người không có nhiều kiến thức về công nghệ cũng có thể tạo được mã độc. Người dùng cũng chỉ cần chỉnh sửa một tệp tin cấu hình là được, và điều này sẽ được thực hiện qua một công cụ hỗ trợ có sẵn giao diện, gần như chỉ cần bấm nút và bấm nút. Đây là điểm làm mình thích công cụ này ngay trong một đống các công cụ Android RAT
2. Tính năng
Airavat có những tính năng nổi bật sau:
- Xem thông tin hệ thống.
- Ghi lại trình tự nhấn phím.
- Đổi hình nền.
- Ghi âm.
- Mở trình duyệt từ xa.
- Đọc dữ liệu trong ClipBoard.
- Hiện thông báo trên thiết bị.
- Đọc và gửi tin nhắn.
- Đọc các liên hệ được lưu trong máy.
- Truy cập các tệp tin trong máy.
- Thực thi lệnh từ xa.
Có thể thấy ở đây có hầu hết các chức năng để giúp kẻ tấn công đánh cắp dữ liệu và điều khiển thiết bị rồi. Và còn một vài chức năng nữa mà mình không biết nó để làm gì, hoạt động như nào, và cũng chẳng thấy tác giả hướng dẫn sử dụng. Danh sách tất cả các tính năng có thể thực thi từ xa ở trong hình dưới đây.
3. Cài đặt
3.1. Tạo dự án trên Google Firebase
⚠️⚠️⚠️ Các tệp tin cấu hình trong phần này cần được giữ bí mật, tránh để lộ. Mình chụp không che lên đây là vì khi đăng bài thì mình cũng xoá luôn dự án rồi. Mọi người không nên làm theo mình, để công khai thông tin cấu hình Google Firebase.
3.1.1. Tạo dự án mới
Đầu tiên, chúng ta truy cập địa chỉ https://console.firebase.google.com/ và đăng nhập bằng tài khoản Google. Sau khi đăng nhập thì chúng ta sẽ tạo dự án mới.
3.1.2. Tạo ứng dụng web
Chúng ta sẽ tạo ứng dụng web để làm nền tảng hoạt động cho trang web quản lý. Các bước thực hiện theo các hình dưới đây.
Tại bước thứ 2 - add Firebase SDK chúng ta bỏ qua. Theo như hướng dẫn trên Github thì chúng ta cần copy đoạn cấu hình dưới đây và thay vào phần cấu hình ở mã nguồn trang web, nhưng chúng ta sẽ xem lại nó sau khi cài đặt xong hết các dịch vụ trên Firebase.
Sau khi hoàn thành chúng ta đã tạo được ứng dụng web trên Firebase.
3.1.3. Tạo ứng dụng android
Chúng ta thực hiện lần lượt theo các hình dưới đây để tạo ứng dụng android trên Firebase.
Đặt tên gói tin android là sigma.male.SketchApplication cho thống nhất với tệp tin apk của ứng dụng.
Phần tệp tin cấu hình google-services.json cũng bỏ qua, chưa cần tải trong lúc này.
Bỏ qua luôn bước thứ 3, không cần làm gì ở bước này, vì bước này chỉ dành cho người lập trình ứng dụng.
Sau khi hoàn thành chúng ta đã tạo được ứng dụng android trên Firebase.
3.1.4. Bật dịch vụ Firestore Database
Tại thanh công cụ bên trái, chọn mục Build, rồi chọn Firestore Database.
Chọn tạo cơ sở dữ liệu mới.
Ở đây chúng ta giữ nguyên ở chế độ sản phẩm.
Tại phàn địa điểm lưu trữ, chúng ta sẽ chọn đâu đó trong khu vực châu Á. Đài Loan, Singapore, Nhật Bản,... tuỳ tiện đâu cũng được.
Sau khi tạo Firestore xong, chọn thẻ Rules và sửa cấu hình kiểm soát truy cập theo như dưới đây. Ấn Publish để cập nhật bộ luật mới là xong phần tạo Firestore Database.
rules_version = '2';
service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write } }
}
3.1.5. Bật dịch vụ Realtime Database
Các bước ở phần này khá tương đồng với các bước khi bật dịch vụ Firestore Database. Tại thanh công cụ chúng ta chọn Realtime Database.
Chọn lưu trữ tại khu vực Singapore.
Vẫn giữ nguyên ở chế độ khoá.
Cuối cùng, sau khi bật dịch vụ Realtime Database thì chúng ta cũng sẽ tiến hành sửa bộ luật kiểm soát truy cập. Sửa cả 2 quyền đọc và ghi thành true.
Đến đây, chúng ta đã hoàn thành phần cài đặt dịch vụ Firebase. Chúng ta sẽ quay lại với Firebase trong khi cài đặt trang web quản lý và ứng dụng mã độc.
3.2. Cấu hình và triển khai trang web quản lý từ xa
3.2.1. Cấu hình trang web
Việc cấu hình trang web quản lý rất đơn giản. Chúng ta chỉ cần tải mã nguồn của trang web về, chỉnh sửa cấu hình, sau đó tải lên một dịch vụ hosting là xong. Đầu tiên chúng ta sẽ tải toàn bộ project trên Github về, tải trực tiếp file zip hoặc clone về đều được. Ở đây mình tải file zip về cho nhanh.
Sau khi giải nén thì toàn bộ mã nguồn của trang web nằm trong thư mục WEB PANEL. Chúng ta sẽ tiến hành sửa đổi cấu hình trong tệp tin index.html
Chúng ta cần thay thế phần cấu hình từ dòng 16 đến dòng 24.
Cấu hình thay thế được lấy trên Firebase. Tại thanh công cụ chúng ta bấm vào biểu tượng bánh răng, sau đó chọn Project settings.
Cuộn xuống phần Your apps, chọn xem cấu hình của Web App. Ở đây chúng ta chọn mục Config, và copy toàn bộ phần cấu hình này, thay vào tệp tin index.html từ dòng 16 đến dòng 24.
Sau khi thay cấu hình thì tệp tin index.html trông như sau:
3.2.2. Đưa trang web lên Github page
Chúng ta có thể sử dụng bất cứ dịch vụ hosting nào, trừ 000webhost. Mình chọn sử dụng Github page vì thuận tiện và khởi tạo nhanh.
Hướng dẫn tạo Github page có thể xem tại: https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-github-pages-site
Sau khi tạo github page thì chỉ cần tải toàn bộ các tệp tin trong thư mục WEB PANEL lên repo github page là được.
Khi trang web được cài đặt thành công thì truy cập vào sẽ hiện ngay thông báo sau.
Sau khi bấm "I Understand" hoặc "Hide this notice for a day" thì trang web sẽ hiện trạng thái "No online Devices".
3.3. Cấu hình ứng dụng mã độc
Việc cấu hình ứng dụng mã độc sẽ được thực hiện qua việc vá lại ứng dụng mới. Có thể thực hiện bằng Apktool như trong các bài viết của mình về vá lại ứng dụng Android:
- Tìm hiểu dạng CTF Reverse Android: dịch ngược và patch file APK
- ToolHub #2: Patch Android app bằng Android app với APK Editor Pro
Tác giả của Airavat cũng giới thiệu hai công cụ là:
- Apk Easy Tool cho môi trường Windows.
- Apktool M cho môi trường Android.
Trước tiên chúng ta sẽ tải tệp tin apk của ứng dụng mã độc về, link tải: https://github.com/Th30neAnd0nly/AIRAVAT/blob/main/ANDROID APP/Instagram.apk
Và tải cả tệp tin google-service.json về nữa.
Sau khi tải tệp tin về, chúng ta sẽ sử dụng Apk Easy Tool 🤟 để xử lý các khâu tiếp theo. Đầu tiên bấm nút số 1 và chọn tệp tin apk muốn decompile, sau đó bấm nút số 2 để decompile tệp tin apk. Sau khi quá trình decompile kết thúc, bấm nút số 3 để mở thư mục chứa các tệp tin đã decompile.
Tiếp theo là đến phần thay đổi cấu hình của ứng dụng mã độc. Chúng ta cần copy các thông tin trong tệp tin google-service.json rồi dán vào tệp tin /res/value/strings.xml trong thư mục decompile apk. Ví dụ với mục firebase_database_url trong tệp tin string.xml thì chúng ta sẽ thay thế như sau:
# Trước
<string name="firebase_database_url">URL</string> # Sau
<string name="firebase_database_url">https://airavat-b91d9-default-rtdb.asia-southeast1.firebasedatabase.app</string>
Các thông tin cần thay vào tương ứng như sau:
google-service.json | /res/value/strings.xml |
---|---|
firebase_url | firebase_database_url |
current_key | google_api_key |
mobilesdk_app_id | google_app_id |
storage_bucket | google_storage_bucket |
project_id | project_id |
Sau khi thay các thông tin cấu hình vào tệp tin strings.xml xong thì lưu tệp tin lại. Giờ thì chúng ta sẽ compile lại để tạo ra tệp tin apk mới. Trước khi compile chúng ta sẽ tích vào ô Framework tag và điền vào aapt2. Sau đó bấm nút số 2 để compile ra tệp tin apk mới. Cuối cùng bấm nút số 3 để mở thư mục chứa tệp tin apk mới.
4. Thử nghiệm Airavat
Việc thử nghiệm ứng dụng mã độc Airavat sẽ được thực hiện trong một máy ảo Android chưa được root. Sau khi cài đặt xong thì chúng ta cần mở ứng dụng lên, chấp nhận tất cả các quyền mà ứng dụng yêu cầu. Chúng ta thấy được ứng dụng có giao diện của ứng dụng Instagram (cũ). Và lúc này chúng ta có thể tắt ứng dụng đi.
Trên trang web quản lý cũng xuất hiện thông tin về thiết bị đã cài đặt ứng dụng mã độc. Khi ấn nút "Attack" thì chúng ta sẽ được chuyển sang giao diện để thực hiện các cuộc tấn công lên thiết bị.
Thử nghiệm chức năng Toast để hiển thị thông báo nổi trên thiết bị.
Thử nghiệm chức năng Notifications để đọc thông báo trên thiết bị.
Còn một số chức năng khác sẽ hù dọa người chủ sở hữu thiết bị như:
- Thay đổi hình nền điện thoại thành 1 trong số các hình nền đáng sợ có sẵn với chức năng Wallpaper.
- Khiến thiết bị tự nhiên nói chuyện với chức năng TTS (Text to speech - chuyển đổi giọng nói từ văn bản).
- Tự động mở một trang web với chức năng Launch URL.
Đến đây thì chúng ta thấy rằng ứng dụng mã độc này cũng làm được khá nhiều thứ. Tuy nhiên nó được tạo ra với mục đích cho thấy những mối nguy có thể xảy ra khi smartphone Android bị cài đặt các phần mềm mã độc. Còn các phần mềm mã độc thực sự được tạo ra để làm hại người dùng thì chắc chắn hacker sẽ sử dụng các kỹ thuật bí mật hơn để xâm nhập vào thiết bị, đánh lừa người dùng, đánh cắp dữ liệu trong điện thoại,...
Vì thế chúng ta luôn phải cẩn thận khi sử dụng các thiết bị công nghệ và truy cập internet bằng các thiết bị đó. Hãy trang bị cho bản thân thêm kiến thức về công nghệ và cách tự bảo vệ bản thân trên môi trường internet.