Я вам уже рассказывал про 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
PHDAYS12 близко (19-20 мая)🌞 И чтобы он получился действительно крутым - нужны крутые доклады. Моя личная установка в этом плане не изменилась - хороших докладов про мобильный инфобез должно быть больше. Особенно хотелось бы послушать что-то междисциплинарное а-ля "Угон аккаунта из Google Calendar через подключенную по BT умную колонку" ;) Тема, кстати, не под копирайтом - забирайте =) К чему я это все? 25 марта заканчивается прием заявок на доклады и у вас есть шанс запрыгнуть с вашим исследованием в этот поезд!
Если угон акканта вы нарисечить еще не успели, то другие темы тоже вполне себе приветствуются:
👨🔬 новые техники и векторы атак, эксплуатация уязвимостей;
👨🔧 разработка и защита приложений;
🤖 технологии и безопасность ML в ИБ.
Хватит смотреть трансляции, пора их создавать 🚀
Если угон акканта вы нарисечить еще не успели, то другие темы тоже вполне себе приветствуются:
👨🔬 новые техники и векторы атак, эксплуатация уязвимостей;
👨🔧 разработка и защита приложений;
🤖 технологии и безопасность ML в ИБ.
Хватит смотреть трансляции, пора их создавать 🚀
🔥7
Даже если на устройстве есть root доступ, команды
#aht
adb push/pull все равно будут работать в пользовательском режиме. Это значит, что не выйдет скачать или отправить файлы в директории доступные только суперпользователю. Но выход есть. Вместо adb push будет cat file.txt | adb shell su -c "dd of=/data/file.txt", а для замены adb pull - adb shell su -c "dd if=/data/file.txt" >> file.txt. В целом, так можно выполнить любую команду с правами root - adb shell su -c "<command>".#aht
👍15👎1
Обфусцированный код, при более пристальном рассмотрении, порой оказывается не таким уж и обфусцированным. Например по методу
#aht
toString() часто можно восстановить оригинальное имя класса и имена полей. Для этого можно поискать по коду все объявления этого метода с помощью ключевого слова toString() { и найти что-то вроде этого:public final String toString() {
StringBuilder m20399b = C0002b.m20399b("Insets(left=");
m20399b.append(this.f39a);
m20399b.append(", top=");
m20399b.append(this.f40b);
m20399b.append(", right=");
m20399b.append(this.f41c);
m20399b.append(", bottom=");
return C0047d.m19892c(m20399b, this.f42d, ')');
}
Теперь можно переименовывать класс и поля, что сильно упростит дальнейшие исследования.#aht
👍18🔥8
Тут недавно в чате искали работу реверсером. Я вам принес =) В соседнюю команду ребята ищут толкового реверс инженера. Основная задача: изучение механизмов защиты мобильных приложений от статического и динамического анализа. И конечно же поиск возможностей обхода этих механизмов. Все как вы любите ;)
Помимо умения нажимать F5 в IDAPro, горячо приветствуется навык чтения пейперов, и перекладывания полученных из них знаний в PoC-и. Также нужно понимать основы криптографии и модели безопасности мобильных ОС. В общем, если вы когда-нибудь заглядывали под капот очередному
В качестве бонусов: красивая аниме аватарка (если у вас еще нет) и возможность удаленной работы. Ну и IDAPro дадут, наверное...
Помимо умения нажимать F5 в IDAPro, горячо приветствуется навык чтения пейперов, и перекладывания полученных из них знаний в PoC-и. Также нужно понимать основы криптографии и модели безопасности мобильных ОС. В общем, если вы когда-нибудь заглядывали под капот очередному
Dex<placeholder>, то и сами знаете что требуется для такой работы. Остальные подробности найдете здесь.В качестве бонусов: красивая аниме аватарка (если у вас еще нет) и возможность удаленной работы. Ну и IDAPro дадут, наверное...
👍9🔥6👏2