Mobile AppSec World
5.24K subscribers
142 photos
8 videos
19 files
675 links
Новости из мира безопасности мобильных приложений, а так же интересные статьи, обзоры инструментов, доклады, митапы и многое другое...

По всем вопросам - @Mr_R1p
Download Telegram
Подмена адреса в мобильных браузерах

Достаточно занятные уязвимости, связанные с неверным отображением адреса в адресной строке.

Суть атаки простая - злоумышленник передает вам ссылку, вы открываете её в браузере и видите в адресной строке вполне легитимный URL сайта, например Facebook или Авито 😏

Неплохое подспорье для фишинга, особенно, если учитывать, что все рекомендации по безопасности учат нас смотреть на адрес и на зелёный замочек 🔐

Вспомнил ещё классную атаку на браузеры от @i_bo0om, когда он рисовал замочек прям в адресной строке, используя юникод , получалось очень реалистично!

#Spoofing #Browsers
Поиск Arbitary Code Execution в Android приложениях

В продолжении рубрики советы для мобильного BugBounty от одного из лучших багхантеров @bagipro:

1) Пишем hook для xposed или frida для определения вызова методов File.exists() и фильтруем по расширению .so

2) Ищем в декомпилированных исходниках использование методов ZipFile и всех его методов (например entries(), getEntry() и т.д.)

3) Если в найденных методах нет проверки на наличие специальных символов, например zipFile.getName().contains("../"), это означает, что возможно перезаписать произвольные файлы в процессе разархивации файла.

4) Найдите способ подменить файл, который распаковывается (достаточно часто эти файлы хранятся на SD-карте или путь к таким файлам передается через незащищенные компоненты приложения)

5) Скомпилируйте нативную библиотеку, которая выполняет произвольный код (например, записывает идентификатор пользователя в файл или выполняет команду chmod 777), создайте zip-файл, содержащий Path Traversal в имени и заставьте приложение его обработать.

Офигенный подход, простой и изящный. Я иногда не понимаю, как он это делает 😄 Еще раз спасибо, что делишься опытом!
Кстати, кто-то уже написал готовый скрипт для Frida, так что можно его прям брать и проверять "свои" приложения!

А есть ли у вас похожие наработки и уязвимости, на которые вы проверяете приложения?

#BugBounty #bagipro #Vulnerability #ACE
И немного пятничного креатива) Замечательный человек @cdirector нарисовал классную заставку про канал =)
Что вы хотели узнать об интентах, но боялись спросить

Подробная статья про атаки на неявные интенты в Android от компании Oversecured.

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

Очень круто, что автор и описывает уязвимые сценарии и тут же приводит PoC код для эксплуатации.

#Android #Intents #Research
Forwarded from Android Guards
Всем привет!

29.10.2020 буду записываться в подкасте @android_broadcast, где планируем поговорить о безопасности Android приложений (о чем же еще…). В рамках выпуска попробуем составить “руководство по безопасности” для android-разработчиков. Упор сделаем на “бесплатную реализацию”, т.е. своими силами. Но также затронем вопросы постороннего вмешательства в построение безопасной разработки =)
Примерный список тем для обсуждения выглядит так:
- Основные ошибки, которые допускают разработчики
- SAST
- Как убедиться в безопасности своего приложения
- Практики безопасной разработки
- Как защитить приложение если первый этаж опять затопило деньгами и надо куда-то их деть

https://www.youtube.com/watch?v=x_COvmEIyko
Установка приложений без ведома пользователей на Samsung S20

Прочитал тут занятную статью про возможность установки приложений без ведома пользователей на телефонах Samsung, использующую уязвимую версию приложения Galaxy Store.

Интересно, что уязвимость опять заключалась в механизме WebView, который некорректно валидировал передаваемый ему URL приложения и давал возможность указания протокола http 🤦‍♂️ Ссылку можно было передать через чтение NFC тэга. Соответственно, осуществив MiTM атаку и дописав небольшой JS код в ответ сервера можно было заставить установить любое приложение из Samsung Store.

Что меня сильно смущает в таких уязвимостях, это процесс успешной атаки:
- Злоумышленник загружает вредоносное приложение в Galaxy Store
- Злоумышленник должен быть в одной Wi-Fi сети с жертвой.
- Телефон должен просканировать подготовленную метку NFC.
- Злоумышленник должен перехватить HTTP-трафик и внедрить вредоносный JavaScript в ответ сервера.
- Телефон пользователя должен быть Samsung'ом с уязвимой версией приложения

Интересно, какие звезды должны сойтись, чтобы все пункты из этого перечня совпали? Ну разве только на конференции какой-то налепить меток с текстом "Срочно скачай меня и выиграй айпад" 😂

Ну и фикс от Samsung был божественный - они запретили URL с http))

#Android #Samsung #Vulnerability
Сколько «живет» iOS до Jailbreak

Не так давно появился Jailbreak для iOS 14, причем практически на следующий день после выхода beta-версии. Тогда мне стало интересно, а какая статистика по времени "взлома" каждой из версий iOS?

Благо, на помощь пришла статья из Википедии 😄 Ну и на этой почве решили сделать небольшую инфографику, спасибо коллегам за идею и оформление :)

Ну и на Хабр постанули в качестве эксперимента)
CVE-2020-0267: длинная история одной уязвимости

Я наконец-то этого дождался, уязвимость (пока единственную критическую в Android 11), получившую идентификатор CVE-2020-0267, которую мы с коллегой @jd7drw нашли в операционной системе Android, наконец-то пофиксили.

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

Механизм идеальный, создаем приложение, которое может нести какую-то полезную нагрузку, например, показывать курс криптовалюты или сделать тиндер для котиков. 😻
Но помимо основного приложения в бэкграунде создается Activity с указанным параметром taskAffinity. В этом параметре необходимо указать имя пакета приложения, которое мы хотим подменить. Собственно всё, наш зловред готов.

После этих нехитрых манипуляций при нажатии на иконку приложения, имя которого мы указали в taskAffinity, вместо запуска нормального приложения будет выведена на передний план Activity злоумышленника. Эта Activity может полностью копировать интерфейс подменяемого приложения и отправлять вводимые учетные данные на сторонний сервер. При этом, если есть двух-факторная аутентификация, никто не мешает по аналогичной схеме отправить смс-код на сервер. После кражи учетных данных можно свернуть свою активность и запустить/показать пользователю реальное приложение, которое он хотел запустить.

А если подменить приложение настроек, то можно попробовать защититься и от удаления 👹

Эту уязвимость мы зарепортили еще в 2017 году, и какого было моё удивление, когда ее "переоткрыли" спустя два года, назвали звучным именем StrandHogg и дико распиарили. Суть абсолютно такая же, но CVE они не получили (вроде бы).

Чуть позже выложу код PoC, чтобы можно было потестить самим 😉

Это наша первая CVE и упоминание на странице благодарностей Android и я думаю, что эта пятница явно удалась!

#Android #CVE #TaskHijacking #Research
Занимательный CTF от TrendMicro

Вышел обзор занимательного CTF от компании TrendMicro.

Он примечателен тем, что для его решения не потребуется root-прав, Frida или подмены чего-либо в runtime. Всё что понадобится - jadx и adb 😁

CTF основан на понимании механизма интентов и различных компонентов Android. И некоторые из задач в том числе на сообразительность)

Попробовать стоит, ну или прочитать прохождение, хотябы ради этой фразы, да простят меня джава разработчики:

"It creates ContextFactoryFactory (yeah, Java developers love factories)"

😁😁

#Android #CTF #Writeup
Сканер уязвимостей в Android приложениях GJoy Dex Analysizer

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

Написан на С++, не использует Java и не требует установки. Имеет собственный язык описания правил и развивается с 2015 года.

Приложение только под винду 😭
К сожалению, руки пока не дошли его посмотреть, выглядит интересно, но насколько хорошо работает, пока непонятно 😁

#Android #Tools
Улучшения экрана блокировки и аутентификации в Android 11

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

То есть, если вы разблокировали экран наименее безопасным, с точки зрения Android способом, например через Bluetooth девайс, вам будет доступно намного меньше возможностей, чем когда вы разблокируете телефон вводом пароля.

Достаточно логичная предосторожность :)

#Android #Google #Auth
Быстрое изменение Android Network Config

Самый простой способ пустить приложение через прокси - задать его глобально в настройках. Также, иногда бывают ситуации когда не хочется пускать весь трафик устройства через прокси, а смотреть только на определенное приложение. Для этого можно использовать ProxyDroid, он весьма удобен и рулит перенаправлением трафика через манипуляции с iptables. Для этого на устройстве/эмуляторе нужен рут, наличие пакета iptables и поддержка модуля NAT (не всегда,к сожалению, это доступно). Есть ещё хитрый способ с VPN, но это для ценителей 😁

Допустим, трафик мы пустили, но приложение не доверяет пользовательским конфигам из-за настроек в network-security-config.

Чтобы устранить это недоразумение, можно поменять или перезаписать существующий конфиг приложения. Именно так и работает вот этот замечательный python-скрипт. Он автоматически разбирает приложение, прокидывает свой файл конфига, собирает обратно и подписывает apk.

Далеко не всегда это нужно, но если потребуется, сэкономить себе драгоценные 10-15 минут, то можно и воспользоваться 😅

#Android #APK #proxy
Что и как хранит Snapchat на iOS?

Отличную статью про анализ данных Snapchat порекомендовал в нашем чате @testing_guy, спасибо!

На самом деле, после прочтения остался вопрос, почему Snapchat хранит столько информации в открытом виде и не использует более защищённые способы хранения,хотябы через NSFileProtection?

Очень сомневаюсь, что они настолько заморочились с генерацией токена для взаимодействия со своим API и забыли про локальные данные.

Скорее всего их политика такая же, как и у WhatsUp, который вообще всё хранит plaintext в базе :) Модель угроз, которая не учитывает локального нарушителя с доступом к устройству. То если что-то случилось с трубкой, то это ваши проблемы))

Также стоит отметить и первую статью автора про начало пути в форензике и анализе iOS приложений.

Ну и напоследок, если захочется поэкспериментировать и посмотреть, какие файлы вообще доступны на устройстве до момента первой разблокировки, у автора есть классная утилита для этого! Пойду ребутну тестовый айфон и посмотрю, кто ещё забивает на рекомендации по использованию iOS Data Protection 😁

#iOS #Snapchat #Forensic
​​Перехват XPC сообщений в iOS

В Android существует известный всем механизм межпроцессного взаимодействия - binder (я давно писал про него тут и тут).

На iOS с межпроцессным взаимодействием сложнее и одним из возможных способов трансляции сообщений между приложениями является механизм XPC, основанный на передаче plist-структур при помощи libSystem и launchd. Вот тут кратко описан пример, как это работает, чуть повеселее, чем описание Apple таки. 😄

Достаточно интересно, что некоторые системные компоненты имеют XPC интерфейсы. Так, например, в далёком 2012 году на iOS 5 можно было отправлять сообщения без ведома пользователя, используя системный сервис com.apple.chatkit.

Для анализа таких взаимодействий существует несколько библиотек, причем одна из них, более новая и с большим количеством функционала, реализована с использованием frida.

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

#iOS #IPC #XPC
KVM теперь и на Android

Вот это прям breaking news, система виртуализации KVM может стать частью Android платформы! Слайды с выступления можно скачать тут.

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

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

Статья очень интересная,хоть и немного сложна для понимания (по крайней мере мне 😁).

Но вполне возможно, что скоро мы сможем запустить свое приложение на эмуляторе Android, в KVM виртуализации, внутри докера, на виртуальной машине в каком-нибудь ESXi гипервизоре 🤪

#Android #KVM #Virtualization
Серьезные уязвимости в приложении Evernote

Сегодня вышла ещё одна потрясающая статья от компании Oversecured, которая раскрывает детали обнаруженных уязвимостей в приложении Evernote.

Тут полный набор, начиная от UXSS, прослушивания пользователя, кражи cookie, перезаписывание произвольных файлов в директории, в общем ломай не хочу 😁

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

Кстати говоря, основателем компании Oversecured является @bagipro, наш соотечественник, посты которого я периодически публикую, так как невозможно таким не поделиться 😁

Советую попробовать прогнать свои приложения через этот сканер, благо есть 5 бесплатных сканов для новых учёток, а последующие стоят всего 10$, которые абсолютно не жалко.

Думаю, он способен найти много интересного в ваших приложениях. 😄

#Android #Vulnerability #Oversecured
​​Уязвимое банковское приложение для Android

Как подсказывает @testing_guy в нашем чате, совсем недавно релизнулся Damn Vulnerable Bank, то есть, уязвимый мобильный банк для Android. А значит, новый CTF и обучающее приложение.

Состоит из серверной части и клиентского приложения.

Может быть достаточно интересно, содержит в себе детект рута и запуска на эмуляторе, анти-дебаггинг проверки для отслеживания Фриды и ей подобными, webview и deeplink и много чего ещё.

Ну и интерфейс ничего, кому-то можно и на заметку взять 😂

#Android #ctf
Перехват трафика для Instagram и Facebook

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

Но благодаря таким статьям, про перехват трафика в приложениях Facebook и Instagram для iOS, понимание становится чуть ближе.

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

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

#iOS #SSLPinning #Facebook #Instagram
Получение любого файла из внутренней директории Firefox

И снова в главной роли Firefox, только теперь с возможностью получения любого файла из внутренней директории приложения, включая базу с cookie 🍪

Происходит эта уязвимость из-за неверной конфигурации content Provider, немного странная обработка файлов внутри Firefox и немного магии с iframe :)

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

Но что мне больше всего интересно, кто-то правда использует Firefox на Android? ))