Mobile AppSec World
6.32K subscribers
162 photos
12 videos
21 files
749 links
Новости из мира безопасности мобильных приложений, а так же интересные статьи, обзоры инструментов, доклады, митапы и многое другое...

По всем вопросам - @Mr_R1p
Download Telegram
Плагин для VS Code, который облегчит вам жизнь

Только сегодня спрашивали, а есть ли докер для всех популярных инструментов, которые используются для анализа Android приложений?

Это, конечно не совсем докер, но очень удобный плагин для VSCode под названием APKLab. Содержит в себе Apktool, Jadx, uber-apk-signer и позволяет использовать все эти инструменты напрямую из VSCode.

А так же, всё-таки можно это завернуть в докер, используя Remote Containers.

Подарок для тех, кто использует VSCode, по наводке от замечательного @testing_guy 😁

#Android #Containers #VSCode
Нативный запуск iOS приложений на MacOS

Согласно новостям на новом чипе М1 теперь можно нативно запускать приложения iOS. Это значит, что не нужно специально запускать симулятор или ставить приложение на реальное устройство, теперь MacOS умеет их запускать сама даже без симулятора!

А если верить некоторым записям в твитторе, то к этим приложениям так же можно подключаться при помощи Frida или lldb. 😍

То есть, теоритически, исследовать приложения, если у тебя новый мак, станет намного проще. Больше не нужно джейлить устройство и следить за выпусками очередного jailbreak или что-то еще, просто скачал приложение, переподписал его, запустил его и веред к звездам!

Конечно, не все так радужно, во первых непонятно, насколько точно будет совпадать работа приложения на реальном устройстве и нативный запуск в ОС, насколько все функции будут поддерживаться (Keychain, TouchID, связка с другими приложениями и т.д.), все ли приложения можно будет установить или будут ограничения (помимо игр с акселерометром). Насколько правильно будут работать большинство хуков - пока непонятно.

Но если все будет стабильно и мы получим подтверждение, что все инструменты работают как надо, это будет очень круто.

Надеемся на лучшее :)

#Apple #iOS #Jailbreak #M1
Баг в Facebook за 15К$

Короткая статья, я бы даже сказал, скорее заметка, как можно найти дефект стоимостью в 15 тысяч $, просто пообщавшись с коллегой 😁

На самом деле, суть проблемы в передаче третьей стороне чуть больше данных, чем требуется. В данном случае, в Facebook Messenger при поиске gif-ок вместе с запросом улетал и access токен от вашего аккаунта в Facebook 😁 Мелочь, а приятно.

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

На самом деле, такие ошибки часто встречаются и даже в OWASP MASVS есть требование по анализу данных, передаваемых третьей стороне. Так что при добавлении новой функциональности, особенно, если она относится к third-party сервисам, хорошо бы прогнать эту функциональность через анализаторы или ручками посмотреть, что ничего лишнего никуда не утекает. 😉

#iOS #Facebook #Messenger #Vulnerability
Подменяем Runtime Permissions в Android

Очень прикольную багу нашел наш соотечественник из компании MobileUp. Возможность подмены текста и иконки в всплывающем диалоге Runtime Permissions.

Похожую технику любят использовать различные малвари, перекрывая собой экран, только они использовали для этого механизм SYSTEMALERTWINDOW, но тут всё интереснее.

В данном случае, приложение может запросить доступ к смс и звонкам, перекрыть системное уведомление и написать любой текст! 😁 Шикарная штука)

Что мне непонятно, почему этот трюк работает только с 7-й версии Android, а в 6-й, когда появился механизм Runtime Permissions, система запрещает перекрывать системные диалоги. Поменялся механизм или просто решили, что эта мера защиты не нужна?))

И кстати, в конце статьи есть ссылка на библиотеку, которая сделает всё за вас и поможет в несколько кликов "украсить" ваши запросы на доступ к чему либо.

Так что тщательно проверяйте в настройках, какие именно разрешения есть у приложения. Вполне может оказаться, что фонарик, который попросил разрешение на доступ к камере, чтобы помогать вам правильно настроить свет, на самом деле в тайне читает ваши СМС 😏

#Vulnerability #Android #Permissions
Как работает рандомизация адресного пространства в iOS

Система iOS предоставляет ряд техник для защиты от эксплуатации различных переполнений (стека, кучи и прочих страшных вещей). Среди них PIE (Position Independed Executable), SSP (Stack Smashing Protection), ASLR (Address Space Layout Randomization). Вот как раз о последнем и пойдет сегодня речь.

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

Но вот в этой статье достаточно просто описан механизм, что такое эта рандомизация адресного пространства, зачем она нужна, как работает и самое интересное, как можно это обойти, для этого всего-то нужно пропатчить ядро 😁

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

Если вам не интересна вторая часть бинарщины про патчинг ядра, все равно рекомендую посмотреть на первую часть статьи)

#iOS #Kernel #Patching
Разнообразие уязвимостей в deeplink и Webview

Очень часто в приложениях присутствуют уязвимости, связанные с недостаточной валидацией данных от пользователя в механизмах deeplink и WebView. Тут тебе и редиректы, XSS, чтение файлов и много других интересных вещей.

В данной статье разобраны некоторые из возможных сценариев эксплуатации таких уязвимостей, а именно CSRF и SSRF. Достаточно интересный вектор атаки с использованием мобильных приложений :)

Хотя, на мой взгляд, некоторые сценарии выглядят немного надуманно и, надеюсь, не должны встречаться в современных разработках, почитать про них всё-таки стоит. Мало ли какие приложения попадут на анализ или появятся более интересные мысли, как развить это направление дальше 😁

#Android #Deeplink #Webview
Постоянный root на эмуляторе

Замечательный @testing_guy прислал свеженький репозиторий (всего пара дней ему), с интересной функциональностью рутования андроид эмулятора.

Я сначала не мог понять, зачем это нужно, ведь эмуляторы без Google Play Services идут из коробки вместе с root пользователем. Но потом вспомнил то время, когда я использовал Xposed.

Действительно, root на Android эмуляторах есть, но он не такой же, как если бы вы получили его на реальном девайсе. Как минимум, при загрузке эмулятора adb server стартует из под обычного пользователя. То есть, если необходим фреймворк для анализа, такой, как Xposed, этот вариант не подойдёт, эти инструменты требуют постоянного и полноценного рута со всеми необходимыми бинарями, вроде su.

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

Автор же этой утилиты (набора скриптов), предлагает способ автоматизации этого процесса и гарантирует работоспособность на 9-м Android, что очень здорово!

Теперь, чтобы использовать все удобства Xposed достаточно запустить несколько команд и получить практически готовую среду! Ещё есть опция автоматом прописать СА сертификат от burp с системное хранилище, что упрощает перехват трафика.

Такая среда тестирования очень даже удобна, особенно, если вы больше любите писать на java (хуки для Xposed), а не JS (Frida).

#Android #Xposed #Emulator #Root
Xposed на Genymotion
В догонку к предыдущему сообщению, @c0de_l поделился модулем для Magisk под названием EdXposed.

Не пользовался им, но если правильно понимаю - это плагин для Magisk, который позволяет установить Xposed на устройстве с Android 9-й версии и выше и при этом пользоваться всеми удобствами и благами Magisk, например защитой от определения SafetyNet 😉

И более того, эта версия модуля специально предназначена для работы с бесплатной версией Genymotion! 🔥

#Android #Magisk #Genymotion
Онлайн-воркшоп по Android-разработке

Без знаний того, как устроены и работают мобильные приложения, взламывать их не получится (скорее всего).

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

Иногда я хожу на разные бесплатные вебинары по разработке, чтобы хотябы понимать, что гуглить 😁 Как раз сегодня в 18:00 будет воркшоп для начинающих разработчиков. Судя по описанию, это совсем база, но если вы хотели понять, как написать первое приложение и из чего состоит Android приложуха - может быть полезно.

Это не реклама, просто ребята попросили поддержать бесплатное мероприятие. Почему бы и нет? :) Вдруг кому поможет)

#Android #Development
Распаковщик зашифрованных приложений

Несколько раз встречал вопросы про DexGuard, DexProtector и проблемы с анализом приложений, которые зашифрованы ими.

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

На Github есть проект, который может с этим помочь. Основан на базе Frida и дампе расшифрованного dex-файла из памяти. Аналогичный механизм используется в frida-dump на iOS, чтобы получить расшифрованный ipa.

Работает скрипт на Android 4-11 и поддерживает "распаковку" Jiagu, DexProtector, DexGuard и Yidun. 🔥

#Android #DexProtector #DexGuard #Unpack #tools
Контроль над разноцветными IoT лентами

Сейчас дико распространены устройства IoT и их использование не требует знаний и умений в программировании, а процесс основан на базе воткни в розетку, введи пароль от своего WiFi, поздравляем, у тебя умный дом :D

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

В статье автор рассказывает о трёх уязвимостях, которые позволяют получить полный контроль над аккаунтом пользователя и управлять подключенным девайсами.

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

#CVE #IoT #Android
Уязвимость Race Condition в Binder IPC

Про Binder было несколько постов, которые объясняли что это, как работает и для чего нужен. Но если кратко - это системный компонент, через который реализовано межпроцессное взаимодействие в Android.

Недавно Google закрыли уязвимость CVE-2020-0423, которая позволяла получить root-доступ на устройстве через взаимодействие с Binder.

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

#Android #Binder #IPC #CVE
Эксплуатация уязвимости в ядре Android

Люблю читать про сравнения безопасности Android и iOS, это всегда познавательно. Правда, обычно такие статьи относятся к разряду популистических или маркетинговых.

Но не в этом случае :) Один из участников Project Zero, специализирующийся на iOS решил попробовать свои силы с Android и нашёл несколько серьёзных уязвимостей.

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

#Android #iOS #Kernel #Vulnerability
Исследование Heapdump Android приложений

Интересную статью про анализ дампа памяти посоветовал @testing_guy в нашем чате.

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

Как по мне, такого рода "уязвимости", то есть хранение открытых данных в памяти, в реальной жизни трудно реализуемы. Если только не найдется какая-то новая уязвимость типо Heartbleed для мобилок при помощи которой можно будет читать произвольные участки памяти.

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

#Android #Heapdump #Tools
Forwarded from Android Guards
Если сегодня к вечеру соберусь с силами, то сделаю стрим про хранение API ключей в нативном коде и покажу как это все оттуда достать без особых проблем. Разбор будет по мотивам статьи, которая недавно появилась в чате и, к моему удивлению, вызвала какие-то обсуждения даже.

https://youtu.be/jW5AoiIZlO8
Хороший стрим и пример того, как не нужно хранить приватные ключи и что не стоит верить всем советам, среди них есть и плохие.

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

На самом деле, это конечно же не так :)

Что и доказывает нам @OxFi5t в своем стриме. Спасибо ему! :)

Актуальная ссылка на видео:
https://www.youtube.com/watch?v=LpOvHhpcVG4