Forwarded from Android Guards
Запускаю новую рубрику - 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 конечно.
🔥3
Forwarded from Android Guards
Нужно всегда обращать внимание на блок
#aht
<query>
в манифесте приложении. Там можно найти имена пакетов, с которыми исследуемое приложение как-то взаимодействует. Это взаимодействие может быть очень тесным и доверительным. А отсутствие проверки подписи при таком взаимодействии может дать поистине безграничные возможности. При исследовании этих взаимодействий также помогает поиск по ключевым словам queryIntentActivities
, getPackageInfo
, resolveActivity
и getInstalledPackages
.#aht
Forwarded from Android Guards
После декомпиляции приложения нужно поискать секреты в коде. Для этого можно использовать trufflehog или любую другую подобную утилиту. Пример запуска trufflehog:
#aht
trufflehog filesystem --directory=`pwd` --only-verified
Но иногда, отсутствие флага only-verified
дает интересные результаты. Поэтому обязательно попробуйте. А как быть с найденными секретами дальше, подскажет keyhacks#aht
👍6🦄2🤔1🌭1
Forwarded from Android Guards
Если хочется инструментировать приложения сразу несколькими Frida-скриптами, но при этом не хочется сливать их в один файл, то можно воспользоваться таким трюком: сначала запустить скрипт требующий ранней инструментации, например c отключением пиннинга, а потом, подключить другой скрипт к уже запущенному приложению. Сделать это можно так:
frida -Uf com.my.app -l unpinning.js # Отлючаем пиннинг (ранняя инструментация)#aht
frida -UF -l fsmonitor.js # Запуск скрипта для текущего активного приложения
👍3🔥1
Forwarded from Android Guards
Если для эксплуатации уязвимости нужно передать
#aht
Parcelable
класс в intent-е, то есть пара способов это сделать. Представим, что activity ожидает модель User
, которая лежит в пакете com.myapp.xxx
. Можно создать в эксплойте такую же структуру пакетов, и класс с таким же названием и необходимыми полями. Чтобы не писать реализацию сериализации руками, то можно воспользоваться плагином и добавить к созданному классу аннотацию @Parcelize
. Но иногда классы бывают сложными или их требуется несколько сразу. В этом случае проще взять из целевого приложения .dex
файлы с этими классами, положить их в assets и работать с ними через DexClassLoader
. Пример здесь.#aht
❤7