Мобильный хакинг, доверие к сертификату (часть 2)
Всем привет. Ранее в посте “Мобильный хакинг, как получить root права” я писал про подготовку AVD к мобильному пентесту и раскрыл тему получения root-прав. Более подробно ознакомиться с первой частью можно по ссылке ниже: ➥ https://setka.ru/posts/019da636-008e-7a21-9a13-211b9a8f1b99
Как и писал в начале, данную тему я решил разбить на несколько частей: • получение root-прав • прокидывание сертификата Burp в системное хранилище • обход SSL pinning
И данная часть как раз посвящена тому, как перенести сертификат Burp из пользовательского хранилища в системное.
Это стало необходимо начиная с Android 7.0 (API Level 24), также известного как Android Nougat.
➤ Приложения с \targetSdkVersion 24\ и выше по умолчанию не доверяют пользовательским сертификатам.
➤ А значит, если сертификат Burp установлен только как user certificate, перехват трафика не сработает.
━━━━━━━━━━ Прокидываем сертификат Burp в системное хранилище ━━━━━━━━━━
➊ Для начала у нас уже должны быть root-права на AVD (Android Virtual Device). Как это реализовать, я показывал в первой части: ➥ https://setka.ru/posts/019da636-008e-7a21-9a13-211b9a8f1b99
➋ Далее *на локальной машине нужно скачать модуль \AlwaysTrustUserCerts* в zip-формате: ➥ https://github.com/NVISOsecurity/AlwaysTrustUserCerts/releases/tag/v1.3
➌ Архив \AlwaysTrustUserCerts_v1.3.zip\ переносим в хранилище AVD уже знакомой командой: • \~/Android/Sdk/platform-tools/adb push ~/Downloads/AlwaysTrustUserCerts_v1.3.zip /sdcard/Download/\
➍ Устанавливаем модуль через Magisk на эмуляторе: • открыть Magisk • перейти в \Modules\ • нажать \Install from storage\ • открыть папку \Download\ • выбрать \AlwaysTrustUserCerts_*.zip\ • дождаться окончания установки • нажать \Reboot\
➎ После перезагрузки проверяем, что сертификат действительно попал в системные: • открыть \Settings\ • через поиск найти \Trusted credentials\ • открыть список системных доверенных сертификатов • проверить, появился ли там ваш сертификат
━━━━━━━━━━ Важный момент ━━━━━━━━━━
Если что, дополнительно в Magisk ничего вручную указывать не нужно.
\AlwaysTrustUserCerts\ сам берёт уже установленные user certificates и при старте системы добавляет их в системное trust store.
➤ Логика простая: • сначала устанавливаем сертификат как пользовательский • затем ставим модуль • после этого перезагружаем устройство
Именно так это и описано в README самого модуля.
━━━━━━━━━━ Итог ━━━━━━━━━━
После выполнения описанных шагов мы получаем AVD с root-правами, а также с сертификатом Burp в системном хранилище.
Это уже позволяет полноценно перехватывать трафик мобильных приложений, но с важной оговоркой: если в приложении не используется SSL pinning.
Как обходить SSL pinning я разберу уже в финальной 3 части.
➤ SSL pinning - это механизм, при котором приложение доверяет только определённому набору сертификатов
#AppSec #Pentest #BugBounty #Hacking #MobileSecurity #Root #SSLPinning #BurpSuite