Перехват управления Chromecast, с помощью CATT.

Перехват управления Chromecast, с помощью CATT.

Форсайт

Отказ от вашего пароля Wi-Fi может дать больше контроля, чем вы думаете. Благодаря тому, что Chromecast и другие устройства IoT взаимодействуют, любой пользователь в той же сети Wi-Fi, что и ваше устройство, часто может заставить его делать то, что он хочет. С помощью скрипта «Cast All the Things» мы можем захватить Chromecast для воспроизведения практически любого вида мультимедиа с помощью одной команды в терминале.

Устройства IoT (Internet of Things) печально известны тем, что ради удобства идут на компромиссы в плане безопасности, что делает их особенно уязвимыми. Прекрасным примером является Chromecast, который может быть легко взломан любым устройством в той же локальной сети, которое знает, как с ним взаимодействовать.

Мультимедийные устройства, такие как Chromecast, управляются простыми интерфейсами прикладного программирования (API), предназначенными для управления сообщениями со смартфона пользователя. Обычно они отправляются в Chromecast, поскольку пользователь использует мобильное приложение с интерфейсом для управления устройством. В большинстве случаев эти сообщения не требуют какого-либо пароля для выполнения, поэтому Chromecast будет реагировать точно так же, если вы отправляете ему команды напрямую - без привлечения официального приложения.

Устройства IoT используют уязвимые сообщения для общения

Устройства Internet of Things есть везде, и многие из них используют легкие стандарты обмена сообщениями, такие как MQTT, для связи по Wi-Fi. Этот стандарт похож на Twitter для Wi-Fi, короткие простые предварительно отформатированные сообщения, которые можно легко передавать между устройствами в ячеистой сети. Ячеистая сеть позволяет группам устройств IoT передавать сообщения между собой, так что все устройства имеют подключение к Интернету, если хотя бы одно устройство в кластере имеет подключение к сети Wi-Fi.

Хотя этот стандарт связи полезен, безопасностью часто пренебрегают, чтобы упростить настройку устройств. С более серьезными проблемами, такими, как написанные от руки пароли, которые невозможно изменить, что делает ботнеты реальной угрозой; ярлыки в настройке аутентификации сообщений; и отсутствие планирования использования устройств в общих сетевых средах сделало безопасность IoT реальной проблемой.

Управляем всеми вещами из командной строкой

Существует решение для тех, кто хочет получить доступный для сценариев, простой в установке, простой в работе способ управления устройствами Chromecast. Cast All The Things предоставляет доступ из командной строки к Chromecast API, позволяя вам подключиться к внешнему мобильному приложению и устройству, которым оно управляет. Предназначенный для расширения функциональности Chromecast, давно прошедшего, когда Google чувствовал себя комфортно официально поддерживать, проект работает на Python и работает практически на всех операционных системах.

Использование CATT для хакера заключается в простоте использования и масштабируемости. Невозможно дать команду каждому Chromecast в огромной сети одновременно воспроизводить видео с помощью обычного приложения, потому что это не то поведение, которое Google хотел бы поддерживать.

С CATT один хакер с ноутбуком, подключенным к той же сети в большом офисе, мог дать команду сотням Chromecast для одновременной загрузки и воспроизведения отвлекающего видео на максимальной громкости, что в настоящий момент вызывает хаос и замешательство.

CATT также может выступать в качестве «внеполосного» или сложного для отслеживания способа общения с другим человеком, используя Chromecast в качестве способа передачи сообщений. Они могут быть либо явными, как в субтитрах, либо скрытыми, например, неоднократно меняя программирование на определенные темы.

Что вам нужно

Чтобы следовать этому руководству, вам понадобится компьютер с установленным Python. Кроме того, вам нужно быть в той же сети, что и целевое устройство. Это может быть сеть Wi-Fi или сеть Ethernet. Это не будет работать в гостевой сети, если гостевая сеть не позволяет сканировать или связываться с другими хостами, как в сети Starbucks Wi-Fi.

Вам также понадобится устройство Chromecast для управления, такое как Chromecast Ultra или Chromecast (3-го поколения). Это будет работать против всех моделей Chromecast, так как они используют одни и те же базовые вызовы API. Если у вас есть устройство Chromecast, подключенное к той же сети, что и ваш компьютер, вы можете загрузить CATT и любые зависимости.

Шаг 1

Установить CATT

Установка CATT невероятно проста, если у вас установлен Python. Если вы это сделаете, просто выполните следующую команду в окне терминала. Хотя вам это и не нужно, вам также следует потратить некоторое время на просмотр страницы GitHub, если вы хотите узнать больше о том, как работает этот инструмент.

pip install catt

Pip установит все зависимости и настроит CATT для вас. После завершения установки вы можете набрать catt --help, чтобы получить список всех инструментов командной строки, чтобы лучше понять, что может делать скрипт. К сожалению, для CATT нет ручного ввода, поэтому забавная команда "man catt" в настоящее время никуда не денется.

catt --help
Usage: catt [OPTIONS] COMMAND [ARGS]...

Options:
  --delete-cache     Empty the Chromecast discovery cache.
  -d, --device NAME  Select Chromecast device.
  --help             Show this message and exit.

Commands:
  add           Add a video to the queue.
  cast          Send a video to a Chromecast for playing.
  cast_site     Cast any website to a Chromecast.
  ffwd          Fastforward a video by TIME duration.
  info          Show complete information about the currently-playing video.
  pause         Pause a video.
  play          Resume a video after it has been paused.
  restore       Return Chromecast to saved state.
  rewind        Rewind a video by TIME duration.
  save          Save the current state of the Chromecast for later use.
  scan          Scan the local network and show all Chromecasts and their IPs.
  seek          Seek the video to TIME position.
  skip          Skip to next video in queue (if any).
  status        Show some information about the currently-playing video.
  stop          Stop playing.
  volume        Set the volume to LVL [0-100].
  volumedown    Turn down volume by a DELTA increment.
  volumeup      Turn up volume by a DELTA increment.
  write_config  Write the name of default Chromecast device to config file.

Шаг 2

Сканирование сети на наличе Chromecast

CATT облегчает нам задачу, позволяя сканировать сеть самостоятельно. Хотя можно выполнять сканирование Nmap по сети, функция сканирования CATT уже настроена для обнаружения устройств Chromecast в локальной сети.

Без использования CATT вам нужно будет рассчитать диапазон сети, в которой вы находитесь, отсканировать устройства с открытым портом 8008, а затем узнать подробности о том, какой это тип устройства. Все эти вещи интегрированы в CATT, поэтому, чтобы обнаружить все близлежащие Chromecast, вы можете ввести следующую команду.

catt scan
Scanning Chromecasts...
192.168.0.91 - Probe Team CIC - Google Inc. Chromecast Ultra

Здесь CATT нашел устройство и показал нам его IP-адрес, имя сети и тип устройства. Мы можем использовать этот IP-адрес или имя устройства, чтобы указать, каким устройством мы хотим управлять, если их несколько.

Поскольку в этой сети есть только один, нам не нужно указывать его в следующих командах, потому что CATT отправит ему по умолчанию.

Шаг 3

Отправляем изображение на экран

Изображения, такие как GIF, чрезвычайно легко отображать на дисплее Chromecast. Чтобы отобразить наиболее распространенные форматы изображений, включая анимированные GIF-файлы (которые будут воспроизводиться в цикле), вы можете выполнить следующую команду.

catt cast ./mygif.gif

Шаг 4

Принесите удаленное видео YouTube на экран

Чтобы создать видео, размещенное на YouTube-подобном веб-сайте, вы можете выполнить следующую команду.

catt cast "https://www.youtube.com/watch?v=dQw4w9WgXcQ"

Этот инструмент поддерживает множество сайтов, помимо YouTube, на которых есть видеоконтент, и есть еще список популярных видео-сайтов, которые этот инструмент может поддерживать.

С помощью этой возможности вы можете разместить свои собственные видео, которые вы хотите воспроизвести на YouTube, и воспроизвести их с помощью сценария, или вы можете фактически транслировать файл прямо со своего компьютера.

Шаг 5

Воспроизведение местного видео с субтитрами

Теперь давайте наложим сообщение на носитель, который мы транслируем с нашего ноутбука. Это означает, что мы сможем общаться на двух уровнях: с содержимым воспроизводимого нами видео и с субтитрами, которые воспроизводятся очень четко во время воспроизведения видео.

Для этого нам нужно создать файл SRT, что мы можем сделать в nano. В окне терминала введите следующее, чтобы создать файл субтитров.

nano Demo.srt

Затем вставьте следующее в текстовый файл. Вы можете изменить текст, но суть в том, как работает формат. На вершине у вас есть 0, где все начинается. Затем у вас есть номер для каждого блока текста, временной код для отображения длины текста, а затем текст для отображения под ним.

0
00:00:01.530 --> 00:00:03.629
HERE IS SOME TEXT

1
00:00:03.629 --> 00:00:07.819
OH WOW LOOK AT THAT BIG TEXT

2
00:00:07.819 --> 00:00:08.740
IT IS SO HUGE AND BIG OH

3
00:00:08.740 --> 00:00:13.370
SOME MORE SAMPLE TEXT HERE BUT

4
00:00:13.370 --> 00:00:14.660
there is no need to shout

5
00:00:14.660 --> 00:00:17.699
Never use Priceline

6
00:00:17.699 --> 00:00:22.720
More text to test

7
00:00:22.720 --> 00:00:26.300
Here is some sample text

8
00:00:26.300 --> 00:00:30.000
please pay me with a credit card

Когда вы закончите создание текстового файла, введите Ctrl-x, а затем y, чтобы сохранить и закрыть файл.

Теперь у нас должен быть файл Demo.srt для показа вместе с локальным видео. Легко снять местное видео; просто введите путь к файлу после ввода команды catt cast, и вы должны увидеть, как видео начинает воспроизводиться. Чтобы указать, что нам нужны субтитры, мы добавим флаг -s. В следующем формате замените «/yourvideo.mp4» на местоположение вашего видеофайла.

catt cast -s ./Demo.srt ./yourvideo.mp4
Casting local file yourvideo.mp4...
Using subtitle /Users/skickar/Desktop/Demo.srt
Playing yourvideo.mp4 on "Probe Team CIC"...
Serving local file, press Ctrl+C when done.
192.168.0.91 - - [21/Jan/2019 07:00:41] "GET /?loaded_from_catt HTTP/1.1" 200 - video/mp4 - 786.90 MB
192.168.0.91 - - [21/Jan/2019 07:00:41] "GET //var/folders/n1/l_2ynlx91lv57t122lq8lkyh0000gn/T/tmpxxljn3ds.vtt HTTP/1.1" 200 - text/vtt;charset=utf-8 - 1.69 KB

Просто вы должны увидеть, как ваше видео и сообщение с субтитрами начинают воспроизводиться! Я немного изменил свой пример текста ,перед запуском))

Если вы хотите тратить меньше времени на настройку различных устройств Chromecast, вы также можете настроить псевдонимы и добавить файл конфигурации. Вы можете создать файл конфигурации, создав файл "catt.cfg" в следующем месте.

nano ~/.config/catt/catt.cfg

Вы можете добавить устройства к этой конфигурации в следующем формате. В разделе «Параметры» вы можете добавить устройство по умолчанию, которое хотите использовать, если вы не указали другое устройство при запуске Catt.

В разделе «псевдонимы» вы можете указать псевдонимы для устройств, которые вы хотите использовать, чтобы вы могли использовать это имя для них при запуске сценария.

[options]
device = chromecast_one

[aliases]
one = chromecast_one
two = chromecast_two

Шаг 6

Вывести веб-сайт на экран

Наконец, мы можем привести любой веб-сайт прямо на экран. Chromecast будет захватывать веб-сайты с разрешением 1280 x 720 пикселей и отображать их на экране. Хотя это полезно для преобразования существующих веб-сайтов, мы также можем использовать его для разработки собственного контента, размещения его в веб-интерфейсе, а затем просто выводить его на экран!

Иногда мы можем захотеть создать что-то полностью фальшивое и выплеснуть это на экран, и, разместив веб-URL, мы можем даже разместить веб-сервер на своем ноутбуке и транслировать все, что захотим, для отображения непосредственно в интерфейсе.

Команда для этого, в этом примере домашняя страница example.com, выглядит следующим образом.

catt cast_site https://example.com
Casting https://example.com on "Probe Team CIC"...

CATT может заставить почти все появляться на экране

Этот инструмент полезен для хакера, желающего управлять устройствами Chromecast, которые им не принадлежат, но, очевидно, он чрезвычайно полезен для всех, кто владеет Chromecast. Благодаря простоте управления устройствами Chromecast через Wi-Fi, вы можете настроить собственные триггеры, чтобы вызывать действия на любых дисплеях, которые вы хотите, используя CATT.

Хотя методы, которые мы рассмотрели сегодня, были сосредоточены на локальных сетях, они также будут работать против любого устройства Chromecast, которое также напрямую подключено к Интернету. Это было продемонстрировано, когда хакеры нашли устройства Chromecast на Shodan и заставили их проигрывать видео, рекламирующие PewDiePie. Вы никогда не должны этого делать, поэтому, если вы настроили переадресацию портов, чтобы разрешить прямой доступ к таким устройствам Интернета вещей, как принтер, камера или медиаплеер, вы можете ожидать сообщения от хакера, в котором вам предлагается подписаться на PewDiePie.

Надеюсь, вам понравилось это руководство по поиску и захвату устройств Chromecast!

Report Page