![]() |
Резюме
Виртуальная машина - отличный способ познакомиться с тестированием на проникновение мобильных приложений на базе OS андроид, но для полноценного bug bounty этот способ скорее всего не подойдет. Как бы я ни старался, некоторые apk запускаться отказываются. Так же есть проблемы при взаимодействии с камерой и микрофоном. Плюс довольно большие требования к компьютерному железу. Этот гайд освещает только клиент-серверное взаимодействие. Используемый софт:
Genymotion - это виртуальная машина, на которой и будет крутиться наш виртуальный android. Устанавливаем virtualbox командой Код: Код:
sudo apt install virtualbox virtualbox-ext-packПосле качаем geanymotion отсюда скачать, открываем терминал, переходим в папку куда скачали, например: Код: Код:
cd ~/DownloadsКод: Код:
chmod +x genymotion-3.1.2-linux_x64.binКод: Код:
./genymotion-3.1.2-linux_x64.binменю приложений. Запускаем. После необходимо зарегистрировать аккаунт, сделать это можно сделать прям в программе. Выбираем personal use only. Теперь переходим к настройке самого виртуального устройства. Нажимаем на большой плюсик, появляется окно с выбором моделей телефонов. https://forum.antichat.xyz/attachments/4914155/1.png Я выбираю xiaomi redmi note 7.Вы можете выбрать любую модель из списка в зависимости от потребностей. Здесь можно выбрать необходимое разрешение экрана, установить количество ядер цпу ( я даю 2) и ОЗУ (3072) вполне достаточно. Жмем install. https://forum.antichat.xyz/attachments/4914155/2.png Ждем пока машина скачается. Запускаем, устанавливаем open gaps(google apps) соответственным нажатием на кнопку справа посередине. https://forum.antichat.xyz/attachments/4914155/3.png Так как genymotion создан под архитектуру х86, нам нужен arm ретранслятор под приложения, скомпилированые под arm, иначе возможны ошибки при запуске таких apk. Скачать можно здесь GitHub - m9rco/Genymotion_ARM_Translation: Genymotion_ARM_Translation Please enjoy! . Выбираем под версию андроида( последняя версия 8, я ставил восьмую на девятый и десятый андроид и проблем пока не было, в интернете соответствующих версий не было, поэтому если кто-то обладает информацией прошу мне отписать), качаем архив и устанавливаем, перетягивая архив прямо на активное окно виртуальной машины. https://forum.antichat.xyz/attachments/4914155/4.png Настройка проксирования Я буду использовать burp suite, установленный на виртуальной машине kali. Вы можете использовать ZAP или любой другой снифер. Открываем терминал, пишем ifconfig, здесь видим ip нашей машины, запоминаем, он сейчас пригодится. https://forum.antichat.xyz/attachments/4914155/5.png Заходим в burp, идем во вкладку proxy->options. Снимаем флажок с локального хоста(127.0.0.1), жмём add, в поле bind to port пишем 8080, где bind to adress-> specific address выбираем из списка ip из команды выше. Должно получится как-то так: https://forum.antichat.xyz/attachments/4914155/6.png Теперь burp suite будет проксировать через себя весь незашифрованный трафик который придет на эту машину. Теперь осталось настроить прокси на андроид машине, переходим к ней, открываем настройки wifi, жмем + Add network, в поле network name пишем AndroidWifi, далее advanced options->proxy->manual, в поле hostname указываем ip и порт как в настройках burp выше. Сохраняем. https://forum.antichat.xyz/attachments/4914155/7.png Уже на данном этапе мы можем перехватывать и модифицировать незашифрованный трафик. Но этого явно недостаточно. Что бы смотреть трафик по https нам нужно добавить burp ca certificate в доверенные сертификаты. И вот тут-то и возникают проблемы, так как андроид выше уровня api 24 перестал доверять пользовательским сертификатам. И теперь нам нужно загрузить свой сертификат на системном (туда, где уже хранятся доверенные сертификаты по умолчанию) уровне, что без прав суперпользователя невозможно, благо все машины в genymotion сразу имеют root. Настройка сертификата Идем в burp, заходим в proxy->options->import/export CA certificate. Экспортируем сертификат in DER format. Сохраняем в .der формате по типу cacert.der. https://forum.antichat.xyz/attachments/4914155/8.png Андроид хочет что бы сертификаты были в формате PEM и имя файла было эквивалентно subject_hash_old и с .0 в конце . Для преобразования нам понадобится утилита openssl. Код: Код:
cd path_to_certificateКод: Код:
mv cacert.pem хеш.0https://forum.antichat.xyz/attachments/4914155/9.png Далее полученный сертификат в формате PEM нам нужно скопировать в /system/etc/security/cacerts нашей андроид машины.Для этого нам потребуется утилита adb, которая уже есть в genymotion.Переходим в основную машину, дальнейшие действия будут из неё. adb (android debug bridge) - это утилита командной строки, которая упрощает нам многие действия взаимодействия с телефоном и позволяет получить шелл. Переходим в cd /opt/genymobile/genymotion/tools Проверяем что наше устройство определяется Код: Код:
./adb devicesКод: Код:
./adb roothttps://forum.antichat.xyz/attachments/4914155/10.png Далее нам нужно получить шелл, для этого нужно подконнектится к андроид машине Код: Код:
./adb connect ip:portПолучаем шелл оболочку виртуального смартфона: Код: Код:
./adb shellДалее нам нужно переместить наш сертфикат в системную папку и дать ему привилегии Код: Код:
mv /sdcard/certificate_name.0 /system/etc/security/cacerts/Выходим из шелла и ребутим устройство. Код: Код:
exitПосле перезагрузки устройства идем в settings->security and location->encryption & credentials->trusted credentials здесь и будет нужный нам сертификат. https://forum.antichat.xyz/attachments/4914155/14.png Теперь мы можем прослушивать зашифрованный траффик из приложений и браузера и искать уязвимости. Как видим из скриншота ниже, https трафик перехватывается корректно. https://forum.antichat.xyz/attachments/4914155/15.png Установка APK Большинство приложений есть в play market, но если какой-то приложухи не оказалось можно установить apk, например отсюда тык или собрать apk из установленного приложения на вашем физическом смартфоне, например с помощью утилиты apk exprort (есть в плей маркете). Установить можно просто перетянув apk файл на экран с запущенной виртуальной машиной, как мы делали с транслятором arm. Если не хочет устанавливаться идем в settings->developer options и отключаем опцию verify apps over USB. После этого устанавливаться должно без проблем. Благодарю за прочтение, надеюсь моя статья будет полезной, буду рад критике и комментариям. С уважением, ваш Каджит в белой шляпе. |
Хороший мануал)
Сделал все как описанно. Имею: 1. андроид не имеет выхода в интернет((( 2. Сертификат не отображается в Траст((( |
Цитата:
Если сертификат не отображается скорее всего ошибка при его преобразовании или при копировании в директорию. Попробуйте внимательно ещё раз выполнить эти шаги, если не получится то напишите в лс попытаемся разобраться. |
Цитата:
Цитата:
|
Цитата:
|
Спасибо хорошая статья, по возможности пиши еще про Android. Интересно почитать и повторить
|
Цитата:
|
Спасибо за статью, т-щ Каджит)
Как нельзя кстати. А есть удачный опыт митма хттпС с Ондроид 11? |
| Время: 07:12 |