Install Burp Certificate
На віртуальній машині
По-перше, вам потрібно завантажити сертифікат Der з Burp. Це можна зробити в Proxy --> Options --> Import / Export CA certificate
Експортуйте сертифікат у форматі Der і перетворіть його в форму, яку зможе розуміти Android. Зверніть увагу, що для налаштування сертифікату burp на Android-машині в AVD вам потрібно запустити цю машину з опцією -writable-system
.
Наприклад, ви можете запустити його так:
Потім, щоб налаштувати сертифікат burp, виконайте:
Після завершення перезавантаження пристрою сертифікат Burp буде використовуватися ним!
Використання Magisc
Якщо ви отримали права root на пристрої за допомогою Magisc (можливо, емулятора), і ви не можете виконати попередні кроки для встановлення сертифіката Burp через те, що файлова система доступна тільки для читання, і ви не можете змінити її на доступну для запису, є ще один спосіб.
Пояснено в цьому відео вам потрібно:
Встановити сертифікат CA: Просто перетягніть DER сертифікат Burp, змінивши розширення на
.crt
, на мобільний пристрій, щоб він зберігався в папці Завантаження, та перейдіть доВстановити сертифікат
->Сертифікат CA
Перевірте, що сертифікат був правильно збережений, перейшовши до
Довірені облікові записи
->КОРИСТУВАЧ
Зробіть його довіреним системою: Завантажте модуль Magisc MagiskTrustUserCerts (файл .zip), перетягніть його на телефон, перейдіть до додатка Magics на телефоні в розділ
Модулі
, натисніть наВстановити зі сховища
, виберіть модуль.zip
і після встановлення перезавантажте телефон:
Після перезавантаження перейдіть до
Довірені облікові записи
->СИСТЕМА
та перевірте, чи є сертифікат Postswigger там
Після Android 14
У найновішому випуску Android 14 спостерігається значний зсув у роботі сертифікатів уповноваженого органу (CA), які довіряються системі. Раніше ці сертифікати знаходилися в /system/etc/security/cacerts/
, доступному та змінюваному користувачами з правами root, що дозволяло негайне застосування по всій системі. Однак з Android 14 місце зберігання було переміщено до /apex/com.android.conscrypt/cacerts
, каталогу всередині шляху /apex
, який за своєю природою є незмінним.
Спроби перезавантажити шлях APEX cacerts як доступний для запису призводять до невдачі, оскільки система не дозволяє такі операції. Навіть спроби розмонтувати або накладати каталог тимчасовою файловою системою (tmpfs) не обминають незмінність; додатки продовжують отримувати доступ до оригінальних даних сертифікатів незалежно від змін на рівні файлової системи. Ця стійкість пояснюється тим, що монтування /apex
налаштовано з приватним поширенням, що забезпечує, що будь-які зміни всередині каталогу /apex
не впливають на інші процеси.
Ініціалізація Android включає процес init
, який, починаючи операційну систему, також запускає процес Zygote. Цей процес відповідає за запуск процесів додатків з новим простором імен монтування, який включає приватне монтування /apex
, і таким чином ізолює зміни в цьому каталозі від інших процесів.
Тим не менш, існує обхідний шлях для тих, хто потребує змінити сертифікати CA, яким довіряє система, всередині каталогу /apex
. Це включає в себе ручне повторне монтування /apex
, щоб видалити приватне поширення, зробивши його доступним для запису. Процес включає копіювання вмісту /apex/com.android.conscrypt
в інше місце, розмонтовування каталогу /apex/com.android.conscrypt
, щоб усунути обмеження тільки для читання, а потім відновлення вмісту на їхнє оригінальне місце всередині /apex
. Цей підхід потребує швидкого втручання, щоб уникнути аварійної зупинки системи. Для забезпечення системного застосування цих змін рекомендується перезапустити system_server
, що ефективно перезапускає всі додатки та приводить систему до стану, який відповідає всім.
Прив'язка через NSEnter
Налаштування записуємого каталогу: Спочатку записуємий каталог встановлюється, монтуванням
tmpfs
над існуючим каталогом сертифікатів системи, який не є APEX. Це досягається за допомогою наступної команди:
Підготовка сертифікатів ЦС: Після налаштування записувального каталогу сертифікати ЦС, які ви маєте намір використовувати, слід скопіювати в цей каталог. Це може включати копіювання типових сертифікатів з
/apex/com.android.conscrypt/cacerts/
. Необхідно належним чином налаштувати дозволи та мітки SELinux для цих сертифікатів.Прив'язка монтування для Zygote: Використовуючи
nsenter
, ви входите в простір імен монтування Zygote. Zygote, який є процесом, відповідальним за запуск додатків Android, потребує цього кроку, щоб забезпечити, що всі додатки, запущені надалі, використовуватимуть нові налаштовані сертифікати ЦС. Використана команда:
Це забезпечує, що кожна нова програма, яка розпочнеться, буде дотримуватися оновленої налаштування сертифікатів ЦС.
Застосування змін до запущених програм: Для застосування змін до вже запущених програм, знову використовується
nsenter
, щоб ввійти в простір імен кожної програми окремо та виконати аналогічне зв'язування монта. Необхідна команда:
Альтернативний підхід - М'який перезапуск: Альтернативний метод передбачає виконання прив'язки маршрутизації до процесу
init
(PID 1), за яким слідує м'який перезапуск операційної системи за допомогою командstop && start
. Цей підхід передбачає поширення змін у всіх просторах імен, уникнення необхідності окремо адресувати кожний запущений додаток. Однак цей метод, як правило, менше популярний через незручність перезавантаження.
Посилання
Last updated