Вредоносная программа, заражающая мобильные устройства под управлением ОС Android. Представляет собой многофункционального бота, способного выполнять различные действия по команде злоумышленников. Не создает ярлык на главном экране и функционирует в качестве системного сервиса com.driver.system.
Механизм распространения
Троянец реализует функционал СМС-червя: он способен распространяться при помощи СМС-сообщений, в которых указывается ссылка на загрузку копии вредоносной программы. Данные сообщения рассылаются по всем найденным в телефонной книге контактам и могут иметь следующий вид:
Я тебя люблю http://[]app.ru/*number*, где «number» – номер получателя СМС.
Связь с управляющим сервером и получение команд
После своего запуска Android.Wormle.1.origin устанавливает соединение с управляющим сервером, расположенным по адресу [x.xx].40.250/index.php. Далее троянец может получать указания от киберпреступников как напрямую через командный центр, так и через систему Google Cloud Messaging (GCM).
Функционал
Бот может выполнить следующие действия:
- отправить СМС-сообщение с заданным текстом на один или несколько номеров, указанных в команде;
- разослать СМС-сообщение c заданным текстом по всем номерам из телефонной книги;
- занести в черный список определенный телефонный номер, чтобы заблокировать поступающие с него СМС-сообщения, а также звонки;
- выполнить USSD-запрос (номер, с которого планируется получить ответ на произведенный запрос, заносится в черный список в соответствии с отданной командой – это сделано для того чтобы заблокировать получение пользователем ответных сообщений);
- переслать на управляющий сервер информацию обо всех полученных СМС-сообщениях, а также совершенных звонках;
- включить диктофонную запись, либо остановить ее, если запись уже ведется (аудиозапись сохраняется в файл record.3gpp, размещаемый в корне карты памяти);
- получить информацию об учетных записях, привязанных к зараженному устройству;
- получить информацию обо всех установленных приложениях;
- получить информацию о списке контактов;
- получить информацию о мобильном операторе;
- получить информацию об установленной версии ОС;
- получить информацию о стране, в которой зарегистрирована SIM-карта;
- получить информацию о телефонном номере жертвы;
- удалить указанное в команде приложение;
- получить информацию о хранящихся на карте памяти файлах и каталогах;
- загрузить на управляющий сервер zip-архив, содержащий указанный в команде файл или каталог;
- удалить заданный файл или каталог;
- удалить все хранящиеся на устройстве СМС-сообщения;
- выполнить DDoS-атаку на указанный в команде веб-ресурс;
- установить связь с управляющим сервером, используя специальные параметры;
- изменить адрес управляющего сервера;
- очистить черный список номеров.
Вся похищаемая информация передается на сервер в html-формате. Например, формирование сведений об установленных приложениях реализовано следующим образом:
while(v6.hasNext()) {
Object v8 = v6.next();
PackageManager v11 = v3;
Object v12 = v8;
try {
if(v11.getLaunchIntentForPackage(((PackageItemInfo)v12).packageName) == null) {
continue;
}
v2 = new StringBuffer().append(v2).append(new StringBuffer().append(new StringBuffer()
.append(new StringBuffer().append(new StringBuffer().append(new StringBuffer()
.append(new StringBuffer().append(new StringBuffer().append(new StringBuffer()
.append(new StringBuffer().append(new StringBuffer().append("<li><a href=\"#\">")
.append(v8.loadLabel(v3)).toString()).append("</a><ul><li><a
href=\"market://details?id=")
.toString()).append(v8.packageName).toString()).append("\">Открыть
маркет</a></li><li><a id=\"app_")
.toString()).append(Config.imei(v1.context)).toString()).append("_").toString())
.append(String.valueOf(v5)).toString()).append("\" href=\"#\" onClick=\"deleteApp(this,
\'")
.toString()).append(v8.packageName).toString()).append("\');return
false;\">Удалить</a></li></ul></li>")
.toString()).toString();
++v5;
}
source
Для удаления установленных приложений Android.Wormle.1.origin отображает специально сформированное диалоговое окно, в котором демонстрируется вводящий пользователя в заблуждение текст. Этот текст должен заставить владельца устройства выполнить деинсталлирование программы, поэтому, как только жертва согласится исполнить запрошенное действие, будет активирована стандартная системная процедура удаления заданного злоумышленниками приложения.
String v2 = this.getAppnameFromPackage(arg20[1].trim());
String v3 = arg20[2].trim().replaceAll("\\%", v2);
String v4 = arg20[3].trim().replaceAll("\\%", v2);
String v5 = arg20[4].trim().replaceAll("\\%", v2);
Uri v6 = Uri.parse(new StringBuffer().append("package:").append(arg20[1].trim()).toString());
Object v7 = this.context.getSystemService("notification");
Notification v8 = new Notification(17301601, v3, System.currentTimeMillis());
v8.setLatestEventInfo(this.context, v4, v5, PendingIntent.getActivity(this.context, 0,
new Intent(
"android.intent.action.DELETE", v6), 0));
v8.flags |= 16;
v7.notify(1, v8);