Следующая новость
Предыдущая новость

Android: инструменты пентестера, уязвимости экрана блокировки iOS и множество советов по Kotlin

25.04.2018 13:25
Android: инструменты пентестера, уязвимости экрана блокировки iOS и множество советов по Kotlin

Содержание статьи

  • Инструменты
  • Почитать
  • Отключение защиты от запуска в эмуляторе
  • Уязвимости экрана блокировки iOS и способы их митигации
  • (Не)безопасность приложений, использующих ADB Workaround
  • Разработчику
  • Запуск Java-кода с привилегиями shell
  • Более лучшая обфускация
  • Inline-функции Kotlin
  • 15 инструментов, необходимых любому Android-разработчику
  • Полезные клавиатурные комбинации Android Studio
  • 31 день с Kotlin
  • Инструменты
  • Библиотеки

Сегодня в выпуске: десять инструментов пентестера, уязвимости экрана блокировки 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

Почитать

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

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

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

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

Уязвимости экрана блокировки 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 или скрипта. Прокси получает команды от приложения и выполняет привилегированные операции.

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

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

Android: инструменты пентестера, уязвимости экрана блокировки iOS и множество советов по Kotlin
Процесс общения приложения и прокси в приложении FREE screen recorder NO ROOT

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

Материалы из последних выпусков можно покупать отдельно только через два месяца после публикации. Чтобы продолжить чтение, необходимо купить подписку.

Подпишись на «Хакер» по выгодной цене!

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

1 год

3990 р.

Экономия 1400 рублей!

1 месяц

720 р.

25-30 статей в месяц

Уже подписан?

Источник

Последние новости