Сегодня в выпуске: десять инструментов пентестера, уязвимости экрана блокировки iOS, взлом защиты от запуска приложения в эмуляторе, способы легально повысить привилегии в Android, методы усложнения жизни взломщика твоего приложения, 15 инструментов, которые наверняка понадобятся тебе как разработчику, полезные клавиатурные комбинации Android Studio, 31 совет по языку Kotlin и очередная пачка полезных Android-библиотек.
 

Инструменты

  • SnoopSnitch — приложение для проверки прошивки телефона на установленные и пропущенные патчи безопасности;
  • uitkyk — простой скрипт Frida, помогающий обнаружить малварь путем анализа хранящихся в стеке объектов и перехвата функций запуска шелл-команд;
  • AndHook — еще один DBI-фреймворк для Android, подобный Cydia Substrate и Xposed;
  • androidre — образ Docker с набором утилит для анализа Android-приложений: Apktool, jadx, APKiD, Radare2, Frida и другие;
  • iCloudBrutter — брутфорсер паролей Apple ID;
  • QARK — инструмент для автоматизированного поиска уязвимостей многих типов в Android-приложениях; в некоторых случаях QARK может генерировать готовый эксплоит или набор команд ADB для эксплуатации уязвимости;
  • droidstatx — утилита, генерирующая майнд мап с информацией о приложении и его возможных уязвимостях;
  • avd-root — скрипт для рутинга эмулятора Android;
  • bfinject — утилита для внедрения библиотек в любые iOS-приложения; требует iOS 11.0–11.1.2 с джейлбрейком;
  • bfdecrypt — утилита для дешифровки iOS-приложений; требует iOS 11.0–11.1.2 с джейлбрейком.
Карта, сгенерированная droidstatx
Карта, сгенерированная droidstatx
 

Почитать

 

Отключение защиты от запуска в эмуляторе

Bypassing Android Anti-Emulation, Part (I), Part (II) — серия из двух статей, посвященных взлому защиты от запуска в эмуляторе. Первая часть вводная, рассказывает об устройстве приложения для Android и о том, как работает система защиты от запуска в эмуляторе. Вторая часть практическая и рассказывает, как декомпилировать приложение и отключить защиту.

Интересные моменты:

  • Практически все механизмы защиты от запуска в эмуляторе основаны на чтении системных переменных и поиске в них определенных строк. Например, Build.FINGERPRINT.startsWith("generic"), Build.MODEL.contains("google_sdk"), Build.BRAND.startsWith("generic").
  • Процесс отключения защиты от запуска в эмуляторе в целом почти не отличается от процесса взлома легитимного приложения. Декомпилируем приложение с помощью jadx или любого другого декомпилятора, находим код проверки на эмулятор (он часто располагается в функциях с именами типа carrierNameFromTelephonyManager(), isEmulator() или smellsLikeAnEmulator()), затем дизассемблируем приложение с помощью apktool, находим тот же вызов функции в коде smali и вырезаем его. В случае применения ProGuard или другого обфускатора это будет сделать сложнее (читаемые имена превратятся в нечто вроде «ab»), но все же достаточно легко.
Пример кода защиты от запуска в эмуляторе
Пример кода защиты от запуска в эмуляторе
Другой пример кода
Другой пример кода
И еще один пример
И еще один пример
 

Уязвимости экрана блокировки iOS и способы их митигации

http://blog.dinosec.com/2014/09/bypassing-ios-lock-screens.html — список всех уязвимостей экрана блокировки iOS, найденных с версии iOS 5 по текущую. Список включает в себя ссылки на описание уязвимостей, а также видеодемонстрации их эксплуатации.

Суммарные данные:

  • iOS 5.x — 4 уязвимости;
  • iOS 6.x — 8 уязвимостей;
  • iOS 7.x — 12 уязвимостей;
  • iOS 8.x — 11 уязвимостей;
  • iOS 9.x — 6 уязвимостей;
  • iOS 10.x — 10 уязвимостей;
  • iOS 11.x — 5 уязвимостей.

Советы, как обезопасить себя от взлома через экран блокировки:

  • отключи Siri на экране блокировки: Settings → Passcode → Siri (or Voice Dial) → Allow access when locked;
  • отключи Passbook на экране блокировки: Settings → Passcode → Passbook → Allow access when locked;
  • отключи Control Center на экране блокировки: Settings → Control Center → Access on Lock Screen;
  • отключи панель уведомлений на экране блокировки: Settings → Passcode → Allow access when locked;
  • отключи показ пропущенных звонков на экране блокировки: Settings → Notifications → Phone → Show on Lock Screen;
  • отключи показ СМС на экране блокировки: Settings → Notifications → Messages → Show Previews;
  • отключи блокировку/разблокировку с помощью чехла: Settings → General → Lock/Unlock;
  • отключи камеру на экране блокировки: Settings → General → Camera;
  • установи цифро-буквенный пароль.
 

(Не)безопасность приложений, использующих ADB Workaround

Analysing Use of High Privileges in Android Applications — исследование, посвященное безопасности приложений, использующих так называемый ADB Workaround для получения более высоких привилегий в системе без root.

Суть в следующем. В Android, кроме так называемых normal и dangerous полномочий, доступных любым приложениям (вторые только с согласия пользователя), существуют также полномочия уровня system и signature, которые позволяют приложениям устанавливать и удалять любой софт, делать скриншоты и скринкасты, бэкап и многие другие вещи, запрещенные обычным приложениям.

Полномочия уровня system доступны только приложениям, поставляемым вместе с прошивкой (каталог /system/priv-app), полномочия signature — приложениям, подписанным ключом самой прошивки (то есть тем, который разработала компания — производитель смартфона).

Но есть один трюк, позволяющий получить полномочия уровня signature даже приложениям, не подписанным ключом прошивки. Дело в том, что полномочия signature получает любой процесс, запущенный с помощью команды adb shell. Некоторые разработчики пользуются этим трюком и встраивают в свои приложения специальные прокси, которые затем просят запустить пользователя с помощью ADB или скрипта. Прокси получает команды от приложения и выполняет привилегированные операции.

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

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

Процесс общения приложения и прокси в приложении FREE screen recorder NO ROOT
Процесс общения приложения и прокси в приложении FREE screen recorder NO ROOT

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

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

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

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

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


1 комментарий

  1. whalemare

    17.06.2018 at 07:45

    «Разрущающие объявления» — это конечно круто переведено. Их правильное название «мульти-декларации»

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

Check Also

Микросервисы по-микрософтовски. Пакуем приложения ASP.NET Core с помощью Docker

Кажется, Microsoft все больше и больше любит Linux! Приложения ASP.NET Core теперь по-наст…