
Programa ideal para robar toda la información de un dispositivo remotamente a través de la aplicación AirDroid. [CVE-2019-9599] (https://www.exploit-db.com/exploits/46337)
Видео PoC Exploit: https://www.youtube.com/watch?v=0QDM224_6DM
CVE: https://nvd.nist.gov/vuln/detail/CVE-2019-9599
Exploit-db: https://www.exploit-db.com/exploits/46337
AirDroid — один из самых известных и часто используемых инструментов для удаленного управления компьютером, а именно через браузер.
Для управления и контроля устройства, на котором запущен сервис, требуется предварительное согласие со стороны клиента, где появляется «Message Box» следующего вида:
После принятия соединения ответственное лицо может управлять устройством через браузер, выполняя, помимо прочего, следующие задачи:
Несмотря на то, что я не публикую PoC, который обходит проверку на стороне клиента, я поделился некоторыми вспомогательными скриптами для извлечения привилегированной информации после принятия соединения.
Кроме того, я поделился скриптами «airdroid_dos.sh» и «airdroid_fast_dos.sh», которые выполняют действие типа «Remote DoS Application & System Crash». С их помощью можно удаленно повредить сервис, а также заморозить мобильное устройство, заполнив всю память до тех пор, пока оно не станет неработоспособным:
Начнем с запуска скрипта «AirDroidPwner.py», где потребуется указать ваш KEY Shodan для поиска множества устройств с запущенным сервисом AirDroid:
# Используйте свой API-ключ Shodan
SHODAN_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
api = shodan.Shodan(SHODAN_API_KEY)
Запуск производится следующим образом:
python AirDroidPwner.py
Как видите, очень сложно. После выполнения через API Shodan на первом этапе в массив сохраняются все IP-адреса, которые сам Shodan индексирует по выполненному поиску, в данном случае — сервис AirDroid (порт 8888).
После обнаружения выполняется проверка, чтобы убедиться, что найденные хосты действительно имеют включенный сервис. Для этого используется код состояния, возвращаемый сервером после простого запроса.
После получения нового массива с активными хостами они экспортируются в файл с именем «ips». В настоящее время доступны следующие режимы работы:
python AttackHost.py http://192.168.1.105:8888).После принятия соединения (запрос отправляется хостам, остается только дождаться, пока какой-нибудь из них его примет [К сожалению, вы увидите, что многие это делают...]), идентификатор сессии сохраняется в параметре 7bb, через который впоследствии выполняются запросы:
def get_identifier(r_json):
identifier_session = r_json["7bb"]
return identifier_session
Если клиент не принимает соединение, такие клиенты сохраняются в векторе отклоненных соединений, чтобы затем запустить атаку типа (атакующий может решить <y/n>):
Используя «Message Box», через основной цикл с настраиваемым количеством итераций (по умолчанию 10) и вложенными циклами, выполняющими 3000 потоковых запросов к жертвам, удается заполнить оперативную память устройства, что приводит не только к удаленному отказу в обслуживании приложения, но и к Remote System Crash, из-за которого устройство становится полностью неработоспособным и требует перезагрузки системы.
Эта уязвимость затрагивает не только последнюю версию AirDroid, но и все предыдущие версии.
Если жертва принимает соединение, то в настоящее время инструмент поддерживает следующие операции:
Дополнительно мы также можем запустить скрипты «airdroid_dos.sh» и «airdroid_fast_dos.sh». Основное различие между ними заключается в том, что второй сразу переходит к атаке, а первый сначала выполняет краткую проверку, чтобы убедиться, что хост имеет активный сервис и т. д. (более «коммерческая» сторона).
Если вы хотите управлять доступом через веб-браузер, после запуска скрипта «AirDroidPwner.py» и экспорта списка IP-адресов в файл «ips» вы можете запустить скрипт «web_browser.py», чтобы открыть все активные сервисы в браузере.
Задачи: