Покроковий гайд як розгорнути програмний пакет 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 only (для Linux):
2) Розпаковуємо архів. Вміст папки cmdline-tools копіюємо в /opt/android-sdk/cmdline-tools/latest/(якщо такого шляху нема, необхідно створити):
sudo mkdir -p /opt/android-sdk/cmdline-tools/latest/sudo cp -r ~/Downloads/cmdline-tools/* /opt/android-sdk/cmdline-tools/latest/
3) Переходимо у папку cd /opt/android-sdk/cmdline-tools/latest/bin і перевіряємо роботу утиліти SDK Manager, виконавши команду:
sudo ./sdkmanager

Примітка: У разі, якщо виникне помилка, треба оновити Java (див. вище).
4) Отримуємо список доступних пакетів Android:
sudo ./sdkmanager --list
5) Далі отримуємо список образів емулятора Android:
sudo ./sdkmanager platform-tools emulator
Необхідно погодитись з умовами використання (Terms of use) – тиснемо 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
Переходимо в папку з утилітою Emulator – cd /opt/android-sdk/emulator і запускаємо віртуальний мобільний пристрій, вказавши назву необхідного образу Android:
sudo ./emulator -avd "android32"
Емулятор запустився. Спостерігаємо за помилками в консолі. Щоби все успішно запрацювало, мають налагодитись мережеві порти для серверів ADB і GRPC.
Альтернативний варіант: Можна також відмовитись від ручного використання емулятора Android через Command Line Tools й встановити повнофункціональне робоче середовище з веб-інтерфейсом (IDE) – Android Studio. Однак, це потребує додаткових системних ресурсів та місця на диску. Для встановлення необхідно завантажити пакет з офіційного сайту, розпакувати його, перейти в папку bin і запустити файл ./android.sh. Після цього почнеться автоматичне розгортання. Необхідно просто дотримуватись інструкцій.
Налаштування, виправлення багів і помилок
Перше налаштування, яке слід виконати – увімкнути клавіатуру панелі керування емулятором, а саме кнопки навігації – “назад, додому, вперед” та інші. В іншому випадку вони не будуть працювати. Длля цього треба перейти у директорію з віртуальним образом: /root/.android/avd/android32.avd/ і відкрити файл config.ini, у ньому знайти параметр hw.keyboard та просто змінити значення “no” на “yes”. Зберегти зміни і перезапустити емулятор.
Якщо помітили глюк з чорним екраном в браузері 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. Тепер ще раз запустити емулятор і глюків не повинно бути.
Якщо у консолі з’являються проблеми графічним прискорювачем, а сам емулятор працює дуже повільно, рекомендую додати ключ -gpu host:
./emulator -avd "android32" -gpu host
Також деякі проблеми вирішуються перенесення файлів і каталогів емулятора з папки адміністратора root в папку простого користувача і подальший запуск без sudo (рекомендується):
sudo chown -R <user>:<user> /opt/android-sdk mkdir -p /home/acyber/.android/avd sudo sh -c 'mv /root/.android/avd/* /home/acyber/.android/avd/' sudo chown -R acyber:acyber /home/acyber/.android ./emulator -list-avds
Інші ключі запуску:
./emulator -avd "android32" -no-metrics– запуск емулятора без телеметрії Google../emulator -avd "android32" -no-snapshot– запуск емулятора без снапшота (збереження стану)
Посилання на команди Android SDK: https://developer.android.com/studio/run/emulator-commandline
Як налаштувати проксі?
Щоб емулятор Android працював через проксі, необхідно запустити його, натиснути на значок три цятки на панелі керування й перейти на вкладку Settings -> Proxy, куди вписати адресу проксі-сервера:
Альтернативний варіант: запустити команду emulator з ключем -http-proxy http://X.X.X.X:XXXX, наприклад:
sudo ./emulator -avd "android32" -http-proxy http://X.X.X.X:XXXX
або
adb shell settings put global http_proxy X.X.X.X:XXXX
Детальніше в довідці Set up Android Emulator Networking >>
Частина 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.
11. Відкриваємо браузер Google Chrome на віртуальному мобільному пристрої. Повертаємося в Burp Suite, на вкладку Proxy -> Intercept і вмикаємо режим Intercept On. Тепер у браузері просто відкриваємо будь-який сайт. Запит має перехопитися й відобразитися у Burp Suite:
Ось і все. Тепер можна проводити пентест веб-сайтів на Android.
Як розгорнути Genymotion в Linux?
В якості альтернативного Android-емулятора замість SDK можна також використати умовно-безкоштовний додаток Genymotion. Але для професійної роботи він потребує платної ліцензії. Genymotion добрий тип, що гарно зібраний і відлагоджений (майже відсутні баги і помилки), а також в ньому легко змоделювати прототип практично будь-якого реального мобільного пристрою. В базі доступні більше 20-ти моделей готових смартфонів. В преміум-тарифі смартфони рутовані, що звільняє від додаткових дій. В Genymotion також присутня підтримка гіпервізорів QEMU / VirtualBox, функцій Shared Clipboard та Drag’n’Drop – достатньо просто перетягнути файл у вікно емулятора, наприклад apk, й він автоматично встановиться.
Покрова інструкція розгортання:
- Завантажити скрипт Genymotion з офіційного сайту і встановити його.
- Запустити додаток, увійти в обліковий запис (вказавши email/password) або зареєструватись в Genymotion (обравши “Personal use only”).
- Створити новий віртуальний пристрій конкретної моделі смартфону і запустити його.
- Встановити Magisk.
- Встановити модуль Move Certificates для Magisk: adb push move_certificates_v2.0.0.zip /sdcard/Download
- Перезавантажитись. Прописати проксі до Wi-Fi-з’єднання, згідно Burp Proxy Listeners.
- Встановити браузер firefox. Почати перехоплювати. MITM-працює.
Як підключити смартфон до ПК через спільну мережу Wi Fi (ADB over Wi-Fi)
0. Під’єднати смартфон і комп’ютер до спільної Wi-Fi мережі.
1. Встановити середовище командного рядка для Android – Termux з репозиторію F-Droid.
2. Встановити необхідні пакунки, запустити віповідну службу та відкрити порт:
pkg install android-tools su setprop service.adb.tcp.port 5555 stop adbd start adbd
2. Підключитися з ПК до вказаного порту Android, наприклад:
adb connect 192.168.1.100:5555
3. Перевірити доступні пристрої:
adb devices
Альтернативний спосіб: встановити додаток wifi adb (root) з Google Play.
Окрема документація “adb over Wi-Fi” для мобільних пристроїх з Lineage OS>>
Джерела та посилання
- Configuring an Android device to work with Burp Suite Professional
- CorSecure. Using Burp Suite with an Android Emulator.
- Awakened Blog. Install a trusted CA in Android N.
- Ropnop Blog. Configuring Burp Suite With Android Nougat
- GitHub. Running headless android emulator on AWS EC2 Ubuntu instance.
- Webkul. Configure Android Device With BurpSuite
- Youtube. Proxying Android Traffic through Burp Suite (incl credential fuzzing & IDORs)
- ZonkSec. Android reversing to find JWT Key
- Codeby. Розгортання genymotion.
- GitHub. PenAndro – automatization script for Android pentest.
- YesWeHack. Building an Android Bug Bounty lab: the ultimate guide to configuring emulators, real devices, proxies and other mobile hacking tools (featuring Magisk, Burp, Frida)
- Evan Connelly. My iOS Web Hacking Setup – Surge, Termius, and Caido
Автор: © Konrad Ravenstone, KR. Laboratories Research












