Деобфускация в уме: Часть 1

Если вам на секунду показалось, что название статьи вам смутно знакомо, то вам не показалось.

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

Касперски Крис

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

/img/deobfuscation-in-the-mind/kdpv.png

[Далее]

Бассейн со строками

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

Речь пойдет об организации памяти в JVM и таком явлении как String pool, а также почему нельзя так просто взять и удалить секретную информацию из памяти android приложения.

Внутри много картинок!

/img/string-pool/kdpv.jpg

[Далее]

Как получить root права на OPPO A16

Подозреваю, что есть больше одного способа получить root права на этом устройстве. В сети есть даже туториалы разной степени работоспособности. Часть из них требует каких-то сумрачных виндовых программ (в т.ч. платных), другая часть просто не работает или демонстрирует полное непонимание вопроса автором туториала. Поковырявшись с этим всем великолепием, я решил написать тот самый, правильный туториал©, который хотел бы прочитать сам в начале пути.

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

[Далее]

Биометрическая недоаутентификация

Много уже написано и сказано про биометрическую аутентификацию в android приложениях. И это не прошло бесследно. Вижу много приложений где флоу аутентификации биометрия+пин-код сделан по всем канонам безопасности. Но дьявол кроется в деталях. И сегодня я покажу как всего один флаг способен умножить на 0 отлично выстроенную систему аутентификации. Речь пойдет об одном широко известном приложении 🤐

/img/biometric-underauthentication/logo.gif

[Далее]

Ядовитая экосистема

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

/img/poisonous-ecosystem/logo.gif

[Далее]

NeoQUEST 2022: Задание 7

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

Тома под рукой у меня не оказалось, поэтому как всегда пришлось делать все самому.

tl;dr

  • Вызвать метод AIDL интерфейса чтобы стригерить получение картинки из нативной библиотеки
  • открыть activity DraftPerArtistActivity_90vbsf45
  • посмотреть имя художника
  • взять от него sha256 и отправить в качестве ключа.
[Далее]

Android 13 Developer Preview 1: Что там по безопасности?

Вышла первая версия нового Android 13, и Google обещает, что этот билд продолжит делать нам всем хорошо в плане приватности, безопасности и вообще котики никогда не умрут. Давайте посмотрим, что нового там завезли и стоит ли оно внимания.

/img/android-13-preview-security/logo.png
[Далее]

Перехват трафика в Android. Большой гайд.

Зачем еще одна статья?

Задача перехвата трафика android приложений довольно хорошо описана на куче языков и даже не нужно уметь гуглить чтобы найти информацию о том, как настроить прокси и посмотреть заветные запросы. Даже набившая уже всем оскомину тема “как отломать ssl pinning” была множество раз разжевана и надо быть по пояс странным чтобы в этом не разобраться.

…когда ты слишком долго в пути, когда тебя обуревает жадность, приходит черный пес чтобы отобрать у тебя все.
Черный пес (1998)

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

/img/intercept-traffic-android/mitm-logo.gif
[Далее]

Drozer, эмулятор и эльфийские костыли

Вам когда-нибудь хотелось странного? Например запустить drozer в docker-контейнере и достучаться с него до эмулятора на том же хосте? Казалось бы задача предельно простая и понятная. Запускаем эмулятор, на нем drozer-agent, пробрасываем порты, заводим контейнер говорим drozer console connect —server <locahost ip> и…. ничего не происходит. При этом если попытаться таким образом подключиться на девайс, который висит на другом ip, то все будет хорошо. Давайте разбираться и чинить.

/img/drozer-emu-workaround/kdpv.png

[Далее]

Старый Drozer MacOS не испортит

Drozer - The Leading Security Assessment Framework for Android.

Обычно я не использую Drozer, а еще реже (никогда) я использую его на MacOS. Обычно это все уже есть в Kali Linux и устанавливать ничего не нужно. Но необходимость появилась, а вместе с ней пришлось знатно покувыркаться и поправить скрипты самого Drozer-а чтобы все заработало. После чего я все удалил, потому что в системе было знатно насрано после всех этих замечательных туторилов и issue на гитхабе. В итоге стало понятно, что есть два нормальных способа установки. Через Docker, и так как показано ниже. Все остальное - зло, ад и слезы по бездарно потраченным часам жизни.

[Далее]