Покроковий гайд як розгорнути програмний пакет Android SDK Command Line Tools в командному рядку Linux, без встановлення габаритного пакету Android Developer Studio, щоб виконувати тестування та reverse-аналіз мобільних додатків з допомогою інструменту Burp Suite.
Увага: необхідно мати попередньо встановлений і налаштований Java SDK.
1. Качаємо з офіційного веб-сайту Android пакет Command Line Tools (без Studio);
https://developer.android.com/studio
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.
Виправлення багів:
Якщо помітили глюки, наприклад глюк з чорним екраном в браузері 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
Увага: Необхідно попередньо мати встановлений та ліцензійний 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.
11. Відкриваємо браузер Google Chrome на віртуальному мобільному пристрої. Повертаємося в Burp Suite, на вкладку Proxy -> Intercept і вмикаємо режим Intercept On. Тепер у браузері просто відкриваємо будь-який сайт. Запит має перехопитися і відобразитися в Burp Suite:
Ось і все. Подібним чином можна проводити пентест веб-додатків на Android.
Якщо ви хочете знати більше про пентест мобільних додатків з допомогою Burp Suite, читайте офіційну документацію PortSwigger:
https://portswigger.net/burp/documentation/desktop/mobile/config-android-device
Використані джерела:
Читайте також: Ази пентестингу з BurpSuite
ПОДІЛИТИСЬ У СОЦМЕРЕЖАХ:
Заповніть, будь ласка, форму й наш спеціаліст зв’яжеться з Вами та надасть безкоштовну консультацію!
Вкажіть, будь ласка, контактний номер телефону. Наш менеджер миттєво зв’яжеться з Вами!