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

 

Предыдущие статьи цикла

Советуем также прочесть первую, вторую и третью статьи из нашего цикла по расследованию компьютерных преступлений.

 

Немного об особенностях платформы Android

Android представляет собой модифицированную версию ядра Linux, адаптированную под мобильные гаджеты и носимые девайсы. За работу приложений (application) отвечает встроенная виртуальная машина Dalvik, преобразующая байт-код приложений в инструкции для исполнения начинкой устройства. Однако с версии Android 4.4 Dalvik был заменен на более шуструю Android Runtime, хотя сути работы это не поменяло. Рабочее окружение, так же как и в традиционном Linux, дополняют нативные и сторонние библиотеки, обеспечивающие различные профильные функции девайса.

Архитектура Android во многом совпадает с Linux
Архитектура Android во многом совпадает с Linux

Наследие Linux в Android проявляется в управлении процессами, в организации файловой системы, подсистемы доступа и разрешений (user-based permission model, SELinux и root mode), ну и, конечно же, в поддержке терминала и некоторых команд из стандартного core utilities. Это во многом роднит Android и Linux, несмотря на то что различий между системами тоже много. Но эти знания помогут тебе в решении некоторых задач в наших кейсах.

 

Готовим лабораторию для исследований

Для нашей импровизированной лаборатории понадобится следующий минимальный набор инструментов:

  • Android SDK — стандартный пакет SDK для Android-разработчика;
  • Mobile drivers — пак драйверов для подключения исследуемого девайса к хостовой машине, с которой сидит эксперт-криминалист.

WARNING

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

Итак, самым первым и обязательным шагом подготовки нашей лаборатории будет установка на наш компьютер Android SDK и пакета драйверов. Последний часто идет универсальным паком, то есть содержит драйверы для большинства современных девайсов, и они автоматически определят подключенную модель. В редких случаях приходится доустанавливать необходимый драйвер вручную, либо тоже паком, как Android Device Driver Pack, либо ручками, найдя нужный в каталогах типа Android Find Driver.

Установка Android SDK на Windows 10
Установка Android SDK на Windows 10
Выбор компонентов Android SDK
Выбор компонентов Android SDK

Особо ленивые могут установить ADB вместе со всеми драйверами и аддонами «одним кликом» с помощью ADB Installer.

«Тихий установщик» ADB Installer для Windows
«Тихий установщик» ADB Installer для Windows

Очень важная составляющая SDK — Android Virtual Device, компонент, позволяющий создавать виртуальные образы системы и после запускать их на своей машине. По сути, это эмулятор системы, созданный для разработчиков, пишущих приложения под эту платформу.

Конфигуратор образа для запуска в Android Virtual Device
Конфигуратор образа для запуска в Android Virtual Device
Запущенный в эмуляторе AVD образ системы Nexus 5
Запущенный в эмуляторе AVD образ системы Nexus 5
 

Первое подключение

После установки SDK и пакета драйверов можно смело линковать наш девайс к компьютеру при помощи USB-кабеля. Предварительно в опциях девайса нужно активировать режим USB mass storage, то есть режим внешнего USB-накопителя. Это поможет нам в дальнейшем выполнять команды с ADB-консоли. Также обязательно активировать режим отладки Android Debug Bridge (ADB) в секции «Для разработчиков».

Включение режима отладки по USB в настройках Android
Включение режима отладки по USB в настройках Android

Основные подготовительные операции на этом завершены. Теперь запускаем командный интерпретатор CMD.EXE и через него шелл, который предоставит нам доступ к девайсу:

C:\ADB_folder>adb.exe devices

List of devices attached:
4df155сс115e4f21 device
Окно cmd.exe с выводом подключенного девайса
Окно cmd.exe с выводом подключенного девайса

Так, мы законнектили наш девайс к компьютеру. Теперь можно получить внутренний шелл Android-устройства и проверить вывод, к примеру набрав команду whoami:

C:\ADB_folder>adb.exe shell

shell@android:/ $ whoami
Окно cmd.exe с выполненной в ADB командой shell
Окно cmd.exe с выполненной в ADB командой shell

Приглашение $ в командной строке говорит о том, что мы находимся в непривилегированном пользовательском режиме. Символ # — приглашение с правами суперпользователя.

Более подробно о работе ADB и том, что с ее помощью можно сделать, читай в одной из наших статей.

 

Мини-шпаргалка по самым востребованным командам ADB

  • adb start-server — запуск службы ADB на локальном компьютере;
  • adb kill-server — остановить службу ADB (завершить процесс и выгрузить из памяти);
  • adb devices — получить список подключенных устройств;
  • adb get-state — получить статус текущих подключений;
  • adb logcat — просмотр логов в режиме реального времени в консоли;
  • adb logcat *:E — выводить на экран только ошибки (system error);
  • adb backup -option -packets — выполнить резервное копирование;
  • adb reboot — перезагрузить устройство;
  • adb reboot recovery — загрузиться в режим recovery;
  • adb reboot bootloader — перейти в режим настройки загрузчика.

Создаем копию внутренней памяти Android-устройства. Для этого в CLI девайса пишем:

> dd if=/dev/block/mmcblk0 of=/sdcard/blk0.img bs=4096

Не забудь предварительно убедиться, что в смартфон или другое устройство вставлена SD-карточка, на которую будет писаться образ, иначе он запишется во внутреннюю память устройства, и тогда часть артефактов потеряется и фактическая картина инцидента будет искажена.

Чтобы сделать копию уже имеющейся SD-карты, можно воспользоваться знакомой нам бесплатной утилитой FTK Imager. Кстати, этот же образ потом можно будет и просмотреть в программе.

Продолжение доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все материалы на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи один материал

Заинтересовала информация, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для материалов, опубликованных более двух месяцев назад.


10 комментариев

  1. delerium.ru

    17.07.2018 at 08:15

    как сбросить пароль перед рутом, почему в статье рут всегда потом?

    • faster125a

      17.07.2018 at 10:58

      Согласен, правильный вопрос. Не совсем ясно как все это провернуть с закрытым смартфоном, и без возможности нормального получения рут прав

      • Иван Пискунов

        Иван Пискунов

        17.07.2018 at 14:29

        Рута на устройство можно получить «в-один-клик» без бубна и шаманства, к примеру, такими программами как Unlock Root, Kingo Android ROOT, Universal AndRoot и iRoot. Алгоритм прост: линкуешь девайс через USB, жмешь кнопку и ждешь завершения операции. У кого еще остались вопросы в интернетах есть куча инструкций с картинками на эту тему. Поэтому не совсем понятно, что значит «закрытые смартфоны без возможности получения нормальных рут прав». В моей практике, во всякому случае, какие-либо серьезных проблем с рутингом еще не возникало. Исключение, конечно, может быть если это совсем какой-то китайский деланый в подвале смартфон.

    • Иван Пискунов

      Иван Пискунов

      17.07.2018 at 14:20

      Ребята, рутинг телефона подразумевается если он до момента попадания в руки эксперта еще не был рутован. Что касается сброса пароля, если смотреть внимательно, то в материале сначала идет параграф про рутинг девайса и потом только про сброс пароля. То есть все логично: получил рута — > получил возможность сброса пароля, а а далее по те тексту все оставшиеся манипуляции

      • Иван Пискунов

        Иван Пискунов

        17.07.2018 at 14:35

        Описанный способ не является единственным, к примеру сбросить пароль\пин можно и без рутинга девайса. Это варианты с очисткой памяти с помощью Fastboot, либо использования резервного ключа на аппаратах LG, либо радикально с помощью Wipe data \ recivery, перепрошивкой через Odin и т.п., что несет в себе большие риски потери содержимого внутренней памяти и привязанных к исследуемому устройству аккаунтов. Кое что почитать можно, например https://4idroid.com/kak-sbrosit-parol-ili-graficheskuyu-blokirovku-na-android/

  2. faster125a

    17.07.2018 at 10:54

    Есть ли возможность без получения root прав, вытащить всю нужную нам информацию(по данной статье)? Просто при получении рута, на некоторых устройствах можно потерять все данные, так как он сбрасывается к заводским. А сделать образ системы без рут не получается, пишет нет доступа.

    • Иван Пискунов

      Иван Пискунов

      17.07.2018 at 14:40

      Конкретно с такой задачей сталкиваться не приходилось, но как совет могу подсказать смотреть в строну таких утилит как Ultimate Backup Tool Pro (разработчики XDA devrlopers)

  3. NightSun

    17.07.2018 at 16:55

    просто в статье автор тактично умолчал о том, что для сброса нужна включённая опция «отладка по usb». А если ты можешь её включить то значит ты уже разблокировал устройство.

  4. Ivan1874

    18.07.2018 at 16:34

    Автор, вы в каком веке живете?
    1. Для всего этого нужна включенная отладка по usb, а ее без разблокировки не включить.
    3. Однокликовые способы рута крайне редко срабатывают на андроидах начиная с 5 го
    3. В андроиде уже давно путь /sdcard/ указывает не на sd карту а на внутреннюю память телефона

    • Иван Пискунов

      Иван Пискунов

      19.07.2018 at 16:50

      За замечание спасибо,все будет учтено в будущих выпусках. К сожалению, объем статьи не позволяет в одном материале рассмотреть сразу все аспекты и технические мелочи, а виду большого количества версий Android их накопилось не мало. Поэтому сейчас небольшая ремарка по комментарию выше:
      1. Если рута изначально нет и девайс заблокирован паролем то единственным способом получить суперпользователя без потери данных является TWRP.
      2. Согласен, с билда Lollipop процесс рутования усложнился, но все таки есть программы позволяющие это сделать новичку в GUI режиме. Подробно об этих техниках можно прочитать в статье ][акера https://xakep.ru/2017/07/20/root-android-o/
      3. При подготовке материала автор ориентировался на официальную документация Google Android SDK, там /sdcard/ указывается как external storage, все остальное это частный случай

Оставить мнение

Check Also

Эксплоиты в десятку. Обзор самых интересных докладов с мировых ИБ-конференций

В последние годы мы отучились воспринимать Windows как нечто невероятно дырявое. Эта опера…