Close

Створюємо пентест-лабораторію в Linux: на базі Android SDK та Burp Suite

Покроковий гайд як розгорнути програмний пакет Android SDK Command Line Tools в командному рядку Linux, без встановлення габаритного пакету Android Developer Studio, щоб виконувати тестування та reverse-аналіз мобільних додатків з допомогою інструменту Burp Suite.

Зміст статті

Частина 1. Встановлення і налаштування Android Emulator

Увага: необхідно мати попередньо встановлений і налаштований Java SDK.

1. Качаємо з офіційного веб-сайту Android пакет Command Line Tools (без Studio);

https://developer.android.com/studio

Android Command Line Tools

2. Розпаковуємо архів в /opt/android-sdk/cmdline-tools/latest/

3. Переходимо у папку /opt/android-sdk/cmdline-tools/latest/bin і перевіряємо роботу тиліти SDK Manager, виконавши команду:

sudo ./sdkmanager -h

4. Перевіряємо список доступних пакетів Android:

sudo ./sdkmanager --list

5. Отримуємо список образів емулятора OS Android:

sudo ./sdkmanager platform-tools emulator

Погоджуємося з діалогом – тиснемо Yes.

6. Тепер обираємо та встановлюємо бажаний образ емулятора OS Android:

sudo ./sdkmanager "platforms;android-32" "system-images;android-32;google_apis;x86_64" "build-tools;32.0.0"

Примітка: Номер “32” – це рівень API в системі Android, який відповідає певній версії операційної системи. У даному випадку 32 – це Android 12L. Ви можете обрати будь-яку версію Android. Детальніше про специфікацію тут.

Отже, знову погоджуємося з діалогом – Yes.

Запуститься тривала установка емулятора Android.

7. Тепер створюємо віртуальний мобільний пристрій з допомогою іншої утиліти AVD Manager:

sudo ./avdmanager create avd -n android32 -k "system-images;android-32;google_apis;x86_64"

Погоджуємося з діалогом – Yes (у подальшому за потреби конфігурацію можна змінити в config.ini).

Вилучити створений емулятор можна командою:

sudo ./avdmanager delete avd -n emulator_name

Детальніше про AVD Manager у довідці Android SDK: https://developer.android.com/tools/avdmanager

8. Переходимо в папку з утилітою Emulator /opt/android-sdk/emulator і запускаємо його, вказавши потрібний образ Android:

./emulator -avd "android32"

Наш емулятор запустився. Спостерігаємо за помилками в консолі. Щоби все успішно запрацювало, мають налагодитись мережеві порти для серверів ADB і GRPC.

Android Emulator command line

Виправлення багів:

Якщо помітили глюки, наприклад глюк з чорним екраном в браузері Google Chrome, то раджу зробити наступне:

1. Перейти в налаштування емулятора (натиснути три цятки на боковій панелі інструментів), відкрити Settings -> Advanced і виставити всі значення “Автоматично”.

2. Перейти в директорію ~/.android і створити або відредагувати файл advancedFeatures.ini, вставивши рядки:

Vulkan = off
GLDirectMem = on

3. Тепер ще раз запустити емулятор і глюків з чорним екраном не повинно бути.

Ще один баг, який виникає – це неробоча клавіатура, точніше кнопки навігації – “назад, додому, вперед”.

Виправити дуже просто, треба перейти в директорію з віртуальним образом: ~/.android/avd/android32.avd/ і відкрити файл config.ini, у ньому знайти параметр hw.keyboard і змінити значення “no” на “yes”. Зберегти зміни. Перезапустити емулятор.

Посилання на команди Android SDK:

https://developer.android.com/studio/run/emulator-commandline

Частина 2. Налаштування проксі Burp Suite для Android

Увага: Необхідно попередньо мати встановлений та ліцензійний Burp Suite PRO.

1. Запускаємо Burp Suite.

2. Переходимо на вкладку Proxy і далі в налаштування Options. Тут треба експортувати сертифікат. Натискаємо на кнопку “Import/Export CA certificate”.

Далі відкриється діалогове меню, обираємо “Certificate in DER format”. Вказуємо шлях збереження і вказуємо назву файлу, наприклад: ~/Downloads/cacert.der

3. Тепер потрібно цей сертифікат адаптувати під Android й конвертнути в PEM-формат з допомогою команди:

openssl x509 -inform DER -in cacert.der -out cacert.pem

4. Захешуємо файл:

openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1

5. І останнє – перейменувати його:

mv cacert.pem 9a5ba575.0

6. Тепер треба перекинути цей сертифікат на віртуальний мобільний пристрій.

Перезапускаємо емулятор з ключем -writabe-system, щоб був доступ до розділу /system:

./emulator -avd <avdname> -writable-system

Далі скористаємося командами ADB:

adb devices
adb -s emulator root
adb -s emulator remount
adb -s emulator reboot
adb -s emulator root
adb -s emulator remount
adb -s emulator push 9a5ba575.0 /system/etc/security/cacerts
adb -s emulator shell "chmod 664 /system/etc/security/cacerts/9a5ba575.0"

7. Тепер треба перевірити коректність встановлення сертифікату від Burp Suite. Для цього переходимо в налаштування емулятора Android: Settings -> Security -> Encruption and Credentials -> Trusted Credentials. Тут має з’явитися сертифікат PortSwigger CA. Гортаємо в самий низ, він може буде в кінці списку.

8. Тепер заходимо в BurpSuite на вкладку Proxy -> Options – там має стояти:

*:8085 (all interfaces)#буде слухати порт 8085 і доступний на всіх мережевих інтерфейсах. Ви також можете задати окремий інтерфейс. Але щоб все запрацювало поки що залишимо так.

9. Запускаємо емулятор Android:

./emulator -avd "android32" -writable-system

10. Тепер переходимо в налаштування інтернету Wi-Fi на віртуальному мобільному пристрої Android, обираємо поточне інтернет-з’єднання і тиснемо на його редагування, де обираємо пункт Advanced і додаємо налаштування проксі:

Host: 10.0.2.2  # це хост Android Emulator, він повинен бути в одній локальній мережі з BurpSuite.
Port: 8085  # це порт який слухає Burp.

Burp Suite proxy configuration on Android emulator

11. Відкриваємо браузер Google Chrome на віртуальному мобільному пристрої. Повертаємося в Burp Suite, на вкладку Proxy -> Intercept і вмикаємо режим Intercept On. Тепер у браузері просто відкриваємо будь-який сайт. Запит має перехопитися і відобразитися в Burp Suite:

BurpSuite Reverse Android emulator

Ось і все. Подібним чином можна проводити пентест веб-додатків на Android.

Якщо ви хочете знати більше про пентест мобільних додатків з допомогою Burp Suite, читайте офіційну документацію PortSwigger:
https://portswigger.net/burp/documentation/desktop/mobile/config-android-device

Використані джерела:

  1. CorSecure. Using Burp Suite with an Android Emulator.
  2. Перехват трафіка в Android. Великий гайд.
  3. Як увійти в безпеку Android додатків в 2024.
  4. Ropnop Blog. Configuring Burp Suite With Android Nougat
  5. Як встановити сертифікат BurpSuite на Android.
  6. GitHub. Running headless android emulator on AWS EC2 Ubuntu instance.
  7. Webkul. Configure Android Device With BurpSuite
  8. Youtube. Proxying Android Traffic through Burp Suite (incl credential fuzzing & IDORs)

Читайте також: Ази пентестингу з BurpSuite

ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:

0 0 голосів
Рейтинг статті
Підписатися
Сповістити про
guest
0 Коментарі
Вбудовані Відгуки
Переглянути всі коментарі
0
Цікаво почути Вашу думку!x
Отримати комерційну пропозицію
Оформити заявку
Замовити консультацію

Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!

Замовити дзвінок

Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!