Свежий доклад по основам RE и пересборке Android приложений с VolgaCTF 2022. Контент для начинающих исследователей и для тех, кто хочет накидать себе в чемодан новых навыков.
YouTube
Основы reverse-engineering и модификации приложений Android / Алексей Немцев / VolgaCTF 2022
Слайды: http://archive.volgactf.ru/volgactf_2022/slides/VolgaCTF_2022_Nemcev.pdf
Основы reverse-engineering и модификации приложений Android
Спикер: Алексей Немцев
______________________
Reverse engineering and Android apps modification
by Aleksei Nemcev
Основы reverse-engineering и модификации приложений Android
Спикер: Алексей Немцев
______________________
Reverse engineering and Android apps modification
by Aleksei Nemcev
👍7
Замечательная уязвимость, которая напоминает простую истину: используй все доступные возможности. Хакеру удалось обойти экран блокировки на Pixel 6 с помощью замены SIM карты на свою с ее последующей блокировкой и разблокировкой через PUK код. Выглядит довольно элегантно и совершенно точно нужно проверять эту возможность на других устройствах.
Google заплатил за нее 70 килобаксов так-то 🤑
Google заплатил за нее 70 килобаксов так-то 🤑
bugs.xdavidhu.me
Accidental $70k Google Pixel Lock Screen Bypass
David Schütz's bug bounty writeups
👍17😱9🔥6
Давайте поговорим про исследование приложений на ReactNative? Чтобы задать тон дискуссии я написал небольшую заметку о моих подходах к вопросу и буду рад послушать про ваш опыт. Как положительный так и отрицательный.
(не)Уникальный опыт
Непокорный ReactNative
По моему скромному мнению - ReactNative уже прошел свой пик популярности в разработке мобильных приложений и дальше будет постепенно покидать эту область. Зачем он нужен, если есть божественный …
🔥6👍1
Канал достиг элитного числа подписчиков =) Знаю-знаю, что сейчас кто-нибудь обязательно отпишется или придет, но число зафиксировано ;)
Хочу поблагодарить всех, кто активно участвует в жизни сообщества - отвечает на вопросы, помогает новичкам и репортит про прорывы периметра ботами предлагающими увеличить ваше материальное благосостояние 😎 Напомню, что если у вас есть какие-нибудь интересные идеи, которые сделают нашу маленькую тусовочку еще интереснее, то пишите мне. Рассмотрим, обсудим, а может и реализуем что-нибудь.
Хороших выходных!
Хочу поблагодарить всех, кто активно участвует в жизни сообщества - отвечает на вопросы, помогает новичкам и репортит про прорывы периметра ботами предлагающими увеличить ваше материальное благосостояние 😎 Напомню, что если у вас есть какие-нибудь интересные идеи, которые сделают нашу маленькую тусовочку еще интереснее, то пишите мне. Рассмотрим, обсудим, а может и реализуем что-нибудь.
Хороших выходных!
👍33🍾17❤🔥5🥰3🎉3
Я вам уже рассказывал про DataStore и даже набросал концепт того, как могло бы выглядеть шифрование этого хранилища, потому что Google не предоставил такую возможность из коробки. С тех пор прошло два года и ничего не изменилось. Встроенного шифрования так и нет. Это заставляет разработчиков городить свои велосипеды, которые я иногда наблюдаю в приложениях. Но если вы хотите просто шифровать данные и не хотите велосипедов, то можно воспользоваться библиотекой, которую разработал и поддерживает мой бывший коллега. Недавно он туда завез поддержку
А если вы сможете найти в этой библиотеке уязвимость, товам дадут денег заведите пожалуйста issue на github.
StreamingAead и облагородил документацию.А если вы сможете найти в этой библиотеке уязвимость, то
👍13
⚡️Государству F снова угрожают хакеры, и их атаки становятся все более изощренными. Что им удастся взломать на этот раз?
Да-да, нас опять ждет осенний Standoff. Вместе с кибербитвой будет проходить митап, который можно смотреть онлайн. А в 14:00, в секции "Безопасность или паранойя? Разбираем клиентскую часть мобильных приложений" - я и небезызвестный @Mr_R1p обсудим темные стороны безопасности мобильных приложений.
Кроме этого выступления, обязательно обратите внимание на доклады "OAuth 2.0 и как его разламывать" и "37 слайдов про багбаунти".
Присоединяйтесь, трансляция начинается в 10:00 MSK.
Да-да, нас опять ждет осенний Standoff. Вместе с кибербитвой будет проходить митап, который можно смотреть онлайн. А в 14:00, в секции "Безопасность или паранойя? Разбираем клиентскую часть мобильных приложений" - я и небезызвестный @Mr_R1p обсудим темные стороны безопасности мобильных приложений.
Кроме этого выступления, обязательно обратите внимание на доклады "OAuth 2.0 и как его разламывать" и "37 слайдов про багбаунти".
Присоединяйтесь, трансляция начинается в 10:00 MSK.
❤3👍3
Если вы пропустили трансляцию нашего с @Mr_R1p выступления, то ее уже можно посмотреть на YouTube. Получилось скорее развлекательно чем технически, поэтому можете также показать это выступление вашему менеджеру ;)
YouTube
Безопасность или паранойя?
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
❤1
Кто-нибудь пользуется
Но, строго говоря - это костыль и лучше бы иметь такую возможность в самом
jadx для повседневной работы? Смотреть код, ресурсы, искать строки и т.д. Мне кажется, что как декомпилятор он неплохой, но смотреть код в нем не удобно. Поэтому мой обычный флоу работы с jadx это File->Save as gradle project и дальше уже смотреть в студии. Но мне захотелось еще больше автоматизировать этот процесс и вообще не заходить в GUI. У jadx есть cli версия, но мне всегда было очень лениво сесть и сопоставить опции из GUI с cli. В какой-то момент, я заметил, что в настройках есть кнопка "Copy to clipboard", которая позволяет выгрузить все текущие настройки в виде json. При этом, проблема сопоставления никуда не делась и я задал автору утилиты вопрос о том как перекатить эти опции из GUI в cli. Оказалось, что такой возможности пока нет, но есть обходной путь. Чем я и воспользовался, написав конвертер json конфигов во флаги командной строки. Мою проблему он решает, но если вашу нет, то создавайте issue или засылайте PR-ы.Но, строго говоря - это костыль и лучше бы иметь такую возможность в самом
jadx, поэтому поставьте лайков под этой issue.GitHub
GitHub - Fi5t/jadx_conf
Contribute to Fi5t/jadx_conf development by creating an account on GitHub.
👍18🔥2👌1
Есть такая местами популярная в вебе штука -
security.txt. Этот файл обычно располагают в корне сайта и он содержит контакты куда репортить уязвимости и иногда PGP ключи для шифрования отчетов. Но я ни разу не встречал этого или подобного ему файла в мобильных приложениях. Хотя это кажется полезным. Предлагаю всем разработчикам приложений, располагать такой файл в директории assets. Там его будет легко найти. Чтобы не составлять такой файл руками можно воспользоваться готовым генератором. Как вам такая инициатива?www.rfc-editor.org
RFC 9116: A File Format to Aid in Security Vulnerability Disclosure
When security vulnerabilities are discovered by
researchers, proper reporting channels are often lacking. As a result,
vulnerabilities may be left unreported. This document defines a machine-parsable format
("security.txt") to help organizations describe…
researchers, proper reporting channels are often lacking. As a result,
vulnerabilities may be left unreported. This document defines a machine-parsable format
("security.txt") to help organizations describe…
👍29🤔11🔥4
Не буду разгонять телегу про "это был тяжелый год...". Был. И хватит об этом. Но в этом году удалось сделать много того, до чего долго не доходили руки. Одна из таких вещей - мое небольшое исследование о том, как ведут себя строки в памяти JVM и можно ли их гарантированно оттуда удалить. Как обычно я буду очень рад конструктивным дополнениям и уточнениям к изложенному материалу. Приятного чтения!
👍28❤6🔥2🤩2🏆1
Начнем год с конференций. Вы же не хотите, чтобы на месте этого поста была статья про исследование приложения накрытого DexGuard-ом? Ну вот 🙃
Positive Hack Days 12, который пройдет 19-20 мая в Парке Горького - объявляет Call For Papers. Мне, традиционно, хотелось бы послушать много крутых докладов по уязвимостям в мобилках. Порадуйте меня пожалуйста 😉 Но вообще, там довольно широкий набор тем, и если мобилки вам не очень, то можно подать доклад про расследование действий кибергруппировок, безопасность BIOS, UEFI и другого firmware и даже про архитектурные проблемы современных вычислительных систем. Уж о чем, а об архитектуре тут все мастера потрындеть, да?
Рассматриваются разные варианты участия:
- доклад (50 минут),
- Fast Track (15 минут),
- Hands-on Lab (до 4 часов).
Лабу на 4 часа предлагаю сделать про снятие пиннинга 👨💻
Заявки от спикеров будут приниматься до 25 марта 2023 года. Программный комитет ответит на все заявки до 1 апреля.
Positive Hack Days 12, который пройдет 19-20 мая в Парке Горького - объявляет Call For Papers. Мне, традиционно, хотелось бы послушать много крутых докладов по уязвимостям в мобилках. Порадуйте меня пожалуйста 😉 Но вообще, там довольно широкий набор тем, и если мобилки вам не очень, то можно подать доклад про расследование действий кибергруппировок, безопасность BIOS, UEFI и другого firmware и даже про архитектурные проблемы современных вычислительных систем. Уж о чем, а об архитектуре тут все мастера потрындеть, да?
Рассматриваются разные варианты участия:
- доклад (50 минут),
- Fast Track (15 минут),
- Hands-on Lab (до 4 часов).
Лабу на 4 часа предлагаю сделать про снятие пиннинга 👨💻
Заявки от спикеров будут приниматься до 25 марта 2023 года. Программный комитет ответит на все заявки до 1 апреля.
👍6❤2
Запускаю новую рубрику - Android Hacker Tips. Она будет выходить раз в неделю и содержать полезные советы, которые, теоретически, должны помогать в работе исследователям мобильных приложений. Эти советы будут выходить каждый понедельник под хештегом #aht. Чтобы не делать это сообщение бесполезным, прикрепляю к нему самый первый совет.
——————————————
При изучении сложных конструкций в декомпилированном коде или даже оригинальном исходном коде, полезно в динамике понимать как работает тот или иной алгоритм или его часть. Чтобы не переписывать это на какой-нибудь python или не создавать новый проект в Android Studio/Intellij IDEA - можно воспользоваться scratch-файлами. Кроме того, что они упрощают написание PoC-ов, они также являются кросс-проектными, а значит можно написать несколько базовых скретчей и они сразу будут доступны во всех новых исследуемых приложених. При условии, что вы используете Android Studio/Intellij IDEA конечно.
——————————————
При изучении сложных конструкций в декомпилированном коде или даже оригинальном исходном коде, полезно в динамике понимать как работает тот или иной алгоритм или его часть. Чтобы не переписывать это на какой-нибудь python или не создавать новый проект в Android Studio/Intellij IDEA - можно воспользоваться scratch-файлами. Кроме того, что они упрощают написание PoC-ов, они также являются кросс-проектными, а значит можно написать несколько базовых скретчей и они сразу будут доступны во всех новых исследуемых приложених. При условии, что вы используете Android Studio/Intellij IDEA конечно.
👍28🔥11
Нужно всегда обращать внимание на блок
#aht
<query> в манифесте приложении. Там можно найти имена пакетов, с которыми исследуемое приложение как-то взаимодействует. Это взаимодействие может быть очень тесным и доверительным. А отсутствие проверки подписи при таком взаимодействии может дать поистине безграничные возможности. При исследовании этих взаимодействий также помогает поиск по ключевым словам queryIntentActivities, getPackageInfo, resolveActivity и getInstalledPackages.#aht
👍30
Если приложение использует биометрию, то нужно сразу искать флаги
Первый флаг устанавливается когда нужно ограничить использовать ключа шифрования биометрическими данными. Без правильной биометрии - ключ не будет доступен для использования. Соответственно, если он
Второй флаг, установленный в
#aht
setUserAuthenticationRequired и setInvalidatedByBiometricEnrollment. Если они установлены в false, то это может позволить обойти биометрическую аутентификацию при наличии физического доступа к устройству.Первый флаг устанавливается когда нужно ограничить использовать ключа шифрования биометрическими данными. Без правильной биометрии - ключ не будет доступен для использования. Соответственно, если он
false, то биометрический диалог можно просто скипнуть с помощью Frida.Второй флаг, установленный в
false позволяет злоумышленнику добавить в систему свой палец/лицо и получить доступ к приложению используя уже свои биометрические данные.#aht
👍34
После декомпиляции приложения нужно поискать секреты в коде. Для этого можно использовать trufflehog или любую другую подобную утилиту. Пример запуска trufflehog:
#aht
trufflehog filesystem --directory=`pwd` --only-verified
Но иногда, отсутствие флага only-verified дает интересные результаты. Поэтому обязательно попробуйте. А как быть с найденными секретами дальше, подскажет keyhacks#aht
🔥17❤1🤔1
Четверг, как известно - рыбный день. Почему это важно? Да ни почему. Просто забавный факт. А кроме этого факта я хотел поделиться с вами первой частью моего цикла статей про деобфускацию (и в какой-то степени обратную компиляцию) кода android приложений. Все это, как обычно - лютый эксперимент, который неизвестно куда зайдет и сколько продлится. Но, у самурая нет цели, есть только путь. Приятного чтения.
(не)Уникальный опыт
Деобфускация в уме: Часть 1
Если вам на секунду показалось, что название статьи вам смутно знакомо, то вам не показалось.
Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать …
Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать …
👍28🔥1🐳1
Когда исследуешь сильно обфусцированное приложение, то приходится заниматься восстановлением оригинальных имен переменных и функций вручную. Или придумывать такие имена самостоятельно исходя из контекста использования. Кроме этого, иногда приходится удалять целые куски мусорного кода и совершать прочие рефакторинги. Чтобы проще было контролировать происходящее, откатываться или проверять гипотезы без вреда для кодовой базы - можно добавить декомпилированный код в локальный git репозиторий и пользоваться всеми прелестями этого инструмента.
#aht
#aht
🤔10👍3🤡2🎉1
Попалась мне тут совершенно замечательная ссылка, которой не имею сил не поделиться - https://github.com/krizzsk/HackersCave4StaticAndroidSec.
Там куча ссылок на туториалы, утилиты и исследования по уязвимостями в Android. Звучит скучно да? Верно. Это был бы еще один всратый "awesome list" если бы не одно "но" - там много ссылок на нативные китайские блоги и статьи. И там действительно полезная инфа, которую просто так не загулишь, если не ищешь специально на китайском. Я давно хотел найти что-то подобное и вот оно пришло. Из полезного лично для себя, я нашел там разбор форматов различных файлов (
Там куча ссылок на туториалы, утилиты и исследования по уязвимостями в Android. Звучит скучно да? Верно. Это был бы еще один всратый "awesome list" если бы не одно "но" - там много ссылок на нативные китайские блоги и статьи. И там действительно полезная инфа, которую просто так не загулишь, если не ищешь специально на китайском. Я давно хотел найти что-то подобное и вот оно пришло. Из полезного лично для себя, я нашел там разбор форматов различных файлов (
AndroidManifest.xml, resources.arsc и т.п.) и материалы по статическому анализу. Всем 你好 ;)GitHub
GitHub - krizzsk/HackersCave4StaticAndroidSec: A comprehensive resource for Android static analysis and vulnerability assessment.…
A comprehensive resource for Android static analysis and vulnerability assessment. Tutorials, tools, and resources for identifying and mitigating security vulnerabilities in Android applications. -...
🔥27💯1
Перепаковка приложения может быть довольно болезненной процедурой. Чтобы избежать возможных глюков после пересборки, можно воспользоваться специальными флагами apktool:
#aht
-s распакует приложение, но не будет декомпилировать код, а -r распакует без декодирования ресурсов. Если нужно только убрать ssl pinning через network_security_config.xml, то нет нужды декомпилировать код. А если требуется убрать проверку на root, то ресурсы можно не декодировать.#aht
👍13🤔7
Большие компании часто выпускают разные приложения, но используют в них какие-то общие библиотеки, архитектуру и подходы. Поэтому, для разбора алгоритмов смысл которых непонятен из-за обфускации, можно попробовать разобрать другие приложения этой компании. Их могли писать другие команды с низкой социальной ответственностью, а значит там может вообще не быть обфускации или она будет не такая злая.
#aht
#aht
👍6