Как хакеры создают трояны для Андроид?
Android принято называть рассадником вредоносных программ. Каждый день здесь выявляют более 8 тысяч новых образцов вирусов. И эти цифры постоянно растут.
Но задумывались ли вы, как эти вредоносные программы работают? Сегодня мы разберемся с этим, изучив приложение для Android, способное собирать информацию об устройстве, его местоположении, делать фотографии и записывать аудио. И все это с удаленным управлением.
Как написать троян на Андроид
Итак, наша цель — разобраться, как работают современные зловредные приложения. А лучший способ это сделать — посмотреть, как создается похожий софт. Как и боевой троян, наш пример при желании сможет наблюдать и передавать информацию о целевом устройстве на сервер.
Возможности трояна будут следующие:
- сбор информации о местоположении;
- получение списка установленных приложений;
- получение СМС;
- запись аудио;
- съемка задней или фронтальной камерой.
Все эти данные наше приложение будет отправлять на удаленный сервер, где мы сможем проанализировать результаты его работы.
По понятным причинам я не смогу привести полный код приложения в статье, поэтому некоторые задачи вам придется выполнить самим (для этого потребуются кое-какие знания в разработке приложений для Android).
Каркас
На этом этапе задача следующая: создать приложение с пустым (или просто безобидным) интерфейсом. Сразу после запуска приложение скроет свою иконку, запустит сервис и завершится (сервис при этом будет продолжать работать).
Начнем. Создайте приложение, указав в манифесте следующие разрешения:
В «build.gradle» укажите «compileSdkVersion 22» и «targetSdkVersion 22». Так вы избавите приложение от необходимости запрашивать разрешения во время работы (22 — это Android 5.1, обязательный запрос разрешений появился в 23 — Android 6.0, но работать приложение будет в любой версии).
Теперь создайте пустую Activity и Service. В метод «onStartCommand» сервиса добавьте строку «return Service.START_STICKY». Это заставит систему перезапускать его в случае непреднамеренного завершения.
Добавьте их описание в манифест (здесь и далее наше приложение будет называться com.example.app):
Всю злобную работу мы будем делать внутри сервиса, поэтому наша Activity будет очень проста:
Этот код запустит сервис сразу после запуска приложения и отключит активность. Побочным эффектом последнего действия станет завершение приложения и исчезновение иконки из лаунчера. Сервис продолжит работу.
Информация о местоположении
Теперь мы должны добавить в сервис код, который будет собирать интересующую нас информацию.
Начнем с определения местоположения. В Андроид есть несколько способов получить текущие координаты устройства: GPS, по сотовым вышкам, по WiFi-роутерам. И с каждым из них можно работать двумя способами: либо попросить систему определить текущее местоположение и вызвать по окончании операции наш колбэк, либо спросить ОС о том, какие координаты были получены в последний раз (в результате запросов на определение местоположения от других приложений, например).
В нашем случае второй способ намного удобнее. Он быстрый, абсолютно незаметен для пользователя (не приводит к появлению иконки в строке состояния) и не жрет аккумулятор. Кроме того, его очень просто использовать:
Данная функция спрашивает систему о последних координатах, полученных с помощью определения местоположения по сотовым вышкам и по GPS, затем берет самые свежие данные и возвращает их в форме объекта Location.
Далее можно извлечь широту и долготу и записать их в файл внутри приватного каталога нашего приложения:
Когда придет время отправлять данные на сервер, мы просто отдадим ему этот и другие файлы.
Список установленных приложений
Получить список установленных приложений еще проще:
Метод получает список всех приложений и сохраняет его в файл apps внутри приватного каталога приложения.
Дамп СМС
Уже сложнее. Чтобы получить список всех сохраненных СМС, нам необходимо подключиться к БД и пройтись по ней в поисках нужных записей. Код, позволяющий дампнуть все СМС в файл:
Использовать его следует так:
Записи в файле будут выглядеть примерно так:
Скрытая запись аудио
Записать аудио с микрофона можно с помощью «API MediaRecorder». Достаточно передать ему параметры записи и запустить ее с помощью метода «start()». Остановить запись можно с помощью метода «stop()». Следующий код демонстрирует, как это сделать. В данном случае мы используем отдельный спящий поток, который просыпается по истечении заданного тайм-аута и останавливает запись:
Использовать его можно, например, так:
Данный код сделает 15-секундную запись и поместит ее в файл audio-ДАТА-И-ВРЕМЯ.3gp.
Скрытая съемка
С камерой сложнее всего. Во-первых, по-хорошему необходимо уметь работать сразу с двумя API камеры: классическим и Camera2, который появился в Android 5.0 и стал основным в 7.0. Во-вторых, API Camera2 часто работает некорректно в Android 5.0 и даже в Android 5.1, к этому нужно быть готовым. В-третьих, Camera2 — сложный и запутанный API, основанный на колбэках, которые вызываются в момент изменения состояния камеры. В-четвертых, ни в классическом API камеры, ни в Camera2 нет средств для скрытой съемки. Они оба требуют показывать превью, и это ограничение придется обходить с помощью хаков.
Учитывая, что с Camera2 работать намного сложнее, а описать нюансы работы с ней в рамках данной статьи не представляется возможным, я просто приведу весь код класса для скрытой съемки. А вы можете либо использовать его как есть, либо попробуете разобраться с ним самостоятельно (но я предупреждаю: вы попадете в ад):
Этот код следует вызывать в отдельном потоке, передав в качестве аргументов место расположения камеры («front» — передняя, «back» — задняя) и каталог, в который будут сохранены фотографии. В качестве имен файлов будет использована текущая дата и время.
Складываем все вместе
С этого момента у нас есть каркас приложения, который запускает сервис и скрывает свое присутствие. Есть набор функций и классов, которые позволяют собирать информацию о смартфоне и его владельце, а также скрыто записывать аудио и делать фото. Теперь нужно разобраться, когда и при каких обстоятельствах их вызывать.
Если мы просто засунем вызов всех этих функций в сервис, то получим бесполезное «одноразовое приложение». Сразу после запуска оно узнает информацию о местоположении, получит список приложений, СМС, сделает запись аудио, снимок, сохранит все это в файлы в своем приватном каталоге и уснет. Оно даже не запустится после перезагрузки.
Гораздо более полезным оно станет, если определение местоположения, дамп приложений и СМС будет происходить по расписанию (допустим, раз в полчаса), снимок экрана — при каждом включении устройства, а запись аудио — по команде с сервера.
Задания по расписанию
Чтобы заставить Android выполнять код нашего приложения через определенные интервалы времени, можно использовать AlarmManager. Для начала напишем такой класс:
Метод «set()» установит «будильник», срабатывающий каждые тридцать минут и запускающий метод «onReceive()». Именно в него вы должны поместить код, скидывающий местоположение, СМС и список приложений в файлы.
В метод «onCreate()» сервиса добавьте следующую строку:
Снимок при включении экрана
Бессмысленно делать снимок каждые полчаса. Гораздо полезнее делать снимок передней камерой при разблокировке смартфона (сразу видно, кто его использует). Чтобы реализовать такое, создайте класс ScreenOnReceiver:
И добавьте в манифест следующие строки:
Запуск при загрузке
В данный момент у нашего приложения есть одна большая проблема — оно будет работать ровно до тех пор, пока юзер не перезагрузит смартфон. Чтобы перезапускать сервис при загрузке смартфона, создадим еще один ресивер:
И опять же добавим его в манифест:
Запись аудио по команде
С этим немного сложнее. Самый простой способ отдать команду нашему трояну — записать ее в обычный текстовый файл и выложить этот файл на сервере. Затем поместить в сервис код, который будет, допустим, каждую минуту чекать сервер на наличие файла и выполнять записанную в нем команду.
В коде это может выглядеть примерно так:
Конечно же, у этого кода есть проблема — если вы один раз запишете команду в файл на сервере, троян будет выполнять ее каждую минуту. Чтобы этого избежать, достаточно добавить в файл числовой префикс в формате «X:команда» и увеличивать этот префикс при каждой записи команды. Троян же должен сохранять это число и выполнять команду только в том случае, если оно увеличилось.
Гораздо хуже, что ваш троян будет заметно жрать батарею. А Андроид (начиная с шестой версии) будет его в этом ограничивать, закрывая доступ в интернет.
Чтобы избежать этих проблем, можно использовать сервис push-уведомлений. OneSignal отлично подходит на эту роль. Он бесплатен и очень прост в использовании. Зарегистрируйтесь в сервисе, добавьте новое приложение и следуйте инструкциям, в конце ван скажут, какие строки необходимо добавить в build.gradle приложения, а также попросят создать класс вроде этого:
Но это еще не все. Также ван нужен сервис — обработчик push-уведомлений, который будет принимать их и выполнять действия в зависимости от содержащихся в push-уведомлении данных:
Этот код трактует содержащуюся в уведомлении строку как команду и, если эта команда — record, выполняет нужный нам код. Само уведомление не появится на экране, поэтому пользователь ничего не заметит.
Последний штрих — добавим сервис в манифест:
Отправка данных на сервер
На протяжении всей статьи мы обсуждали, как собрать данные и сохранить их в файлы внутри приватного каталога. И теперь мы готовы залить эти данные на сервер. Сделать это не так уж сложно, вот, например, как можно отправить на сервер нашу фотку:
Вызывать этот метод нужно из метода «onReceive()» класса Alarm, чтобы каждые тридцать минут приложение отправляло новые файлы на сервер. Отправленные файлы следует удалять.
Ну и конечно же, на стороне сервера вам необходимо реализовать хендлер, который будет обрабатывать аплоады. Как это сделать, сильно зависит от того, какой фреймворк и сервер вы используете.
Выводы
Android — очень дружелюбная к разработчикам сторонних приложений ОС. Поэтому создать троян здесь можно, используя стандартный API. Более того, с помощью того же API его иконку можно скрыть из списка приложений и заставить работать в фоне, незаметно для пользователя.
Имейте ввиду! Андроид 8 хоть и позволяет собранным для более ранних версий Android приложениям работать в фоне, но выводит об этом уведомление. С другой стороны, много ли вы видели смартфонов на Android 8 в дикой природе?
На этом все. Теперь вы знаете как хакеры создают трояны для Андроид, а о том как от них защититься мы уже неоднократно писали (используйте поиск по сайту).
Источник статьи: http://spy-soft.net/kak-sozdat-troyan-na-android/
Топ-10 Лучшие программы шпионы для телефона Android в 2020 году
Топ-10 Лучшие программы шпионы для телефона Android в 2020 году

10 место – Cell Tracker
9 место – MobileTool
8 место – NewSpy
7 место – Mobile-Spy
6 место – Cell Phone Spy PRO
5 место – TrackView
4 место – Android Monitor
3 место – FlexiSpy
2 место – Talklog
1 место – VkurSe
10 место — программа шпион Cell Tracker

На Cell tracker отзывы в Интернете самые лестные и она находится на хорошем счету у своих пользователей – устанавливается быстро, четко определяет местоположение (разброс может составлять всего несколько метров), а главное, что эта программа шпион на телефоне бесплатно устанавливается и бесплатно работает. Ссылку на приложение Cell tracker скачать на Андроид можно с сайта. На Айфоне она не работает. Да и все предоставленные в этом топе софты работают исключительно с Andriod.
9 место – программа Cell Phone Spy PRO

На Cell Phone Spy PRO отзывы хорошие, так как устанавливается она быстро, работает хорошо, да еще и бесплатно. Занимает 9 место в рейтинге «10-ка лучших шпионских программ 2020 года».
8 место – программа Mobile-Spy

На Mobile-Spy отзывы хорошие, она является достаточно надежной и недорогой утилитой. Само приложение Mobile-Spy скачать можно на их официальном сайте, потом нужно будет установить его на подконтрольный телефон, а все данные будут приходить в кабинет на сайте, который откроется после регистрации. Из-за того, что Mobile-Spy хоть и имеет небольшой функционал, но она надежная, она попадает в 10-ку лучших шпионских программ 2020 года и занимает 8 место.
7 место — программа NewSpy Mobile

На NewSpy отзывы в большинстве случаев хорошие, единственное что не радует в этой программе, что она довольно легко «вычисляется» на смартфоне и ее может удалить даже ребенок. Поэтому из-за небольшого функционала и легкого удаления с подконтрольного телефона NewSpy Mobile занимает 7 место.
6 место — программа TrackView на русском

TrackView скачать можно на их сайте, приложение скрывается после установки. На приложение TrackView отзывы хорошие, работает исправно, но из-за достаточно скудного функционала она попадает на 6 место в десятке лучших шпионских программ 2020 года.
5 место — сервис MobileTool официальный

На Mobile Tool отзывы не совсем хорошие, многие жалуются на нестабильность приложения и несвоевременность передачи данных, а также на то, что часто нет синхронизации и что цены высокие (0,5$ в сутки). Именно поэтому данный софт находится только на 5 месте в рейтинге «Лучших программ шпионов 2020 года», несмотря на их действительно широкие возможности.
4 место — программа Android Monitor

Если прочитать на форуме об Android Monitor отзывы, то видно, что программа часто дает сбои. В конечном итоге все проблемы конечно решаются, но это представляет массу неудобств клиентам данного софта.
Установочный файл приложения Android Monitor скачать можно на их сайте. Регистрация и установка стандартная. Совсем недавно перестали поддерживать бесплатные аккаунты «Базовых пользователей», чем растеряли многих своих клиентов, которые пользовались этим приложением именно из-за этой возможности. Кроме того, оплата производится за одно устройство, т.е. оплачивается работа по каждому подключенному устройству отдельно. Благодаря своему богатому функционалу в списке десяти лучших программ шпионов 2020 года занимает 4 место.
3 место — FlexiSpy официальный сервис

2 место — Talklog и Talklog tools

Установочный файл Talklog скачать можно бесплатно и установить на телефон, но потом нужно будет оплатить его работу. Если прочитать об Talklog отзывы, то видно, что пользователи довольны и с благодарностью отзываются о его работе. Занимает почетное 2 место, благодаря своему прекрасному качеству работы.
1 место — VkurSe программа шпион

С рут правами функционал VkurSe становится еще обширнее – это и перехват сообщений с вышеописанных приложений, это и скриншоты экрана (хоть каждые 5 секунд), это и перехват клавиатуры, это и удаленное управление телефона, это и запись звонков с WhatsApp и запись всех голосовых сообщений с WhatsApp, Viber, Telegram и Imo. Полный список функций можно посмотреть во вкладке Возможности. Оплата происходит за 1 аккаунт (персональный кабинет) к которому можно привязать до 10 устройств одновременно.
Одним из огромных плюсов сервиса можно отметить — его круглосуточную техническую поддержку, специалисты всегда готовы помочь своим клиентам в решений возникших проблем.
Подробно о том, как устанавливается приложение VkurSe на подконтрольный телефон Андроид, можно прочитать в статье «Как правильно установить приложение VkurSe». А также по всем интересующим Вас вопросам можно обратиться в онлайн консультант или заказать обратный звонок.
И помните — выбор всегда остается за Вами!
Источник статьи: http://vkur1.se/top-10-luchshie-programmy-shpiony-dlya-telefona-android-v-2019-godu/

