Close

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

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

Зміст статті

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

Увага: необхідно мати попередньо встановлений і налаштований Java SDK. Перевірити його наявність можна командою: java -version. Встановити останню версію Java: sudo apt update && sudo apt install openjdk-17-jdk

1. Завантажуємо з офіційного веб-сайту Android пакет Command Line Tools (без Studio): https://developer.android.com/studio

Android Command Line Tools

2. Розпаковуємо архів і вміст папки cmdline-tools копіюємо в /opt/android-sdk/cmdline-tools/latest/(якщо такого шляху нема, то тоді створити):

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

sudo ./sdkmanager

У разі, якщо виникає помилка, треба оновити Java (див. вище).

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, який відповідає певній версії ОС Android. У даному випадку 32 – це Android 12. Ви можете обрати будь-яку версію. Детальніше про специфікацію тут.

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

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

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

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

Погоджуємося з діалогом – no (у подальшому за потреби конфігурацію пристрою можна змінити в файлі 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:

sudo ./emulator -avd "android32"

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

Android Emulator command line

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

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

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

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

Vulkan = off
GLDirectMem = on

Якщо проблема не зникла, можна зайти відредагувати файл nano /root/.android/avd/android34.avd/config.iniі вказати значення для наступних полів:

hw.gpu.enabled=yes
hw.gpu.mode=software

Додатково можна ще перейти в налаштування самого емулятора Settings -> Advanced й змінити налаштування OpenGL ES Renderer, переключивши на SwiftShader.

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

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

Виправити дуже просто, треба перейти в директорію з віртуальним образом: /root/.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

Додатково можна ще перевірити його валідність:

openssl x509 -in 9a5ba575.0 -text -noout

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

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

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

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

adb devices
adb root
adb remount
adb reboot
adb root
adb remount
adb push 9a5ba575.0 /system/etc/security/cacerts
adb shell "chmod 664 /system/etc/security/cacerts/9a5ba575.0"
adb shell "chown root:root /system/etc/security/cacerts/9a5ba575.0

Примітка: Для роботи команд необхідно попередньо встановити пакет Linux – ADB Tools: sudo apt install adb

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

Увага: в останніх версіях Android (14+) місцерозташування сертифікатів змінено (/apex/com.android.conscrypt/cacerts), а процес їх додавання обмежено. Потрібно попередньо рутувати пристрій через Magisk або шукати обхідні шляхи. Розробники HTTP Toolkit створили скрипт, який покроково показує як додати сертифікат BurpSuite на рутованих смартфонах Android 14.

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

*:8085 (all interfaces)#буде слухати порт 8085 і доступний на всіх мережевих інтерфейсах. Ви також можете обрати будь-який інший порт, а також окремий мережевий інтерфейс зі списку Burpsuite – Proxy -> Options -> Proxy listereners -> Specific address, а потім вказати його для віртуального пристрою.

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.

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

  1. Configuring an Android device to work with Burp Suite Professional
  2. CorSecure. Using Burp Suite with an Android Emulator.
  3. Ropnop Blog. Configuring Burp Suite With Android Nougat
  4. GitHub. Running headless android emulator on AWS EC2 Ubuntu instance.
  5. Webkul. Configure Android Device With BurpSuite
  6. Youtube. Proxying Android Traffic through Burp Suite (incl credential fuzzing & IDORs)

Читайте також інші матеріали по темі:

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

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

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