Мобильный хакинг, получение root прав (часть 1)

Всем привет. Сегодня хочу немного раскрыть тему мобильного хакинга.

Про веб сейчас довольно много материалов: как начать, как работать с Burp Suite, как собирать свой сетап и с чего вообще заходить в пентест. Войти в веб действительно проще: буквально несколько шагов, и у тебя уже есть полноценная среда, с которой можно уверенно работать.

А вот мобильная безопасность для многих до сих пор остаётся тёмным лесом.

━━━━━━━━━━ Почему так происходит ━━━━━━━━━━

• в веб-пентесте проще собрать стартовый сетап • на Bug Bounty-площадках очень много вендоров с веб-сервисами • проксирование трафика мобильного приложения обычно реализовать сложнее • у мобильных приложений своя специфика уязвимостей и свой подход к анализу

И это как раз интересный момент: функционал веб-сервиса и мобильного клиента нередко отличается, а значит вместе с этим растёт и площадь атаки. А где растёт площадь атаки, там растёт и количество уяз, а значит и отчётов, за которые можно получить баунти😁

Данный пост будет разбит на 3 части: • получение root-прав • прокидываем сертификат burp в системные • обход SSL pinning

━━━━━━━━━━ Что необходимо для мобильного хакинга ━━━━━━━━━━

В первую очередь нам нужно эмулировать устройство. Для этого отлично подходит Android Studio с готовыми AVD-образами (Android Virtual Device).

Далее нам необходимо получить root-права, чтобы иметь полный контроль над виртуальным устройством. Для этого нам поможет rootAVD.

И в конце нам нужно реализовать доверие к сертификату Burp, потому что API приложения использует SSL pinning. С Android 7.0 (API level 24) и выше

SSL pinning - это механизм, при котором приложение доверяет только определённому набору сертификатов.

━━━━━━━━━━ Получение root-прав ━━━━━━━━━━

Для начала у вас уже должен быть готовый AVD-образ. На этом моменте не буду тратить символы поста: по созданию эмулятора в сети и на YouTube уже достаточно материалов. Лично я использовал Google Pixel 7 Pro на Android 33 с Play Market.

1. Устанавливаем rootAVD • git clone https://github.com/newbit1/rootAVD.git

2. Проверяем, видна ли эмуляция в системе (должна быть запущена эмуляция AVD (Android Virtual Device) ) • ~/Android/Sdk/platform-tools/adb devices

Мы должны увидеть что-то вроде: emulator-5554 device

3. Получаем команду для рута через rootAVD • ./rootAVD.sh ListAllAVDs

Тут есть важный момент: этот этап довольно чувствительный, и иногда он может не сработать как надо. Тогда путь до \ramdisk.img\ придётся искать вручную (команду ниже прикрепил). • find ~/Android/Sdk/system-images -name ramdisk.img У меня как раз был такой кейс, и я шёл именно этим путём.

4. Запускаем rootAVD с найденным образом • ./rootAVD.sh system-images/android-33/google_apis_playstore/x86_64/ramdisk.img

➥ Если вы нашли путь вручную, передавать нужно не абсолютный путь вида /home/user/…, а путь относительно Android SDK, то есть от ~/Android/Sdk.

5. После успешного выполнения устройство автоматически перезагрузится, и в интерфейсе появится Magisk.

6. Проверяем наличие root-прав • ~/Android/Sdk/platform-tools/adb shell su -c id

Если вы видите Permission denied, значит root из коробки не выдался. В таком случае нужно зайти в Magisk, открыть раздел Superuser и включить доступ.

━━━━━━━━━━ Итог ━━━━━━━━━━

После выполнения этих шагов мы получаем root-права на эмуляторе. Это уже даёт нам возможность полноценно взаимодействовать с устройством, устанавливать сертификат Burp и переходить к следующему этапу - обходу SSL pinning.

К данному посту также прикреплю скрины своей собственной реализации получения root-прав на устройство.

#AppSec #Pentest #BugBounty #Hacking #MobileSecurity #Root #SSLPinning #BurpSuite

Мобильный хакинг, получение root прав (часть 1) | Сетка — социальная сеть от hh.ru Мобильный хакинг, получение root прав (часть 1) | Сетка — социальная сеть от hh.ru Мобильный хакинг, получение root прав (часть 1) | Сетка — социальная сеть от hh.ru Мобильный хакинг, получение root прав (часть 1) | Сетка — социальная сеть от hh.ru