Как обнаружить скрытые камеры

Возможно ли обнаружить скрытые камеры (CCTV, DVR, NVR, ANPR, Dome Camera, IP камеры, нательные камеры)

Если камера использует Wi-Fi, то её MAC адрес виден всем. Если сопоставить этот MAC с базой данных производителей камер, то можно выявить эту камеру.

Если камера не использует Wi-Fi, но использует проводную сеть, то её можно обнаружить только если есть подключение к этой же сети (например, к сети отеля, аэропорта и т. п.).

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

Для Wi-Fi устройств MAC адреса можно собрать с помощью airodump-ng, для устройств в сети, к которой мы подключены, мак адреса можно узнать с помощью Nmap. Но нам нужна база данных производителей скрытых камер, да и камер вообще.

Связанная статья: Как узнать MAC-адрес и Как по MAC-адресу узнать производителя

База данных MAC адресов всех скрытых камер

Я не нашёл баз данных MAC адресов производителей камер, кроме небольших списков, составленных энтузиастами. Может быть, для отправной точки это подошло бы, но всё равно не то.

Я нашёл сайт, со списками производителей специализированного оборудования: https://directory.ifsecglobal.com/video-surveillance-code004812.html. Я не знаю, актуальные эти списки или нет, полные или не полные, но они достаточно большие и там есть все производители, упомянутые энтузиастами (а тех, которых нет на сайте, то я их не нашёл и в списке OUI, содержащих MAC адреса всех производителей устройств).

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

Создайте файл vendors.sh:

gedit vendors.sh

Скопируйте в него следующий код:

Запускать так:

bash ./vendors.sh

В результате будет создан файл vendors.txt.

Статистика:

Total vendors in the list: 1665
Unique vendors in the list: 680

Всего найден 680 уникальный производитель — это достаточно много. Если вы знаете другие списки или базы данных, то пишите в комментариях — можно будет использовать их или дополнить данные из них. Я не знаю, попали ли сюда «ноунеймы». На AliExpress продаются камеры наблюдения без названия на корпусе, без упоминания производителя в инструкции и без его упоминания на коробке (потому что коробки нет). Если у вас есть MAC адреса таких ноунеймов, то пишите их в комментариях, можно будет добавить в скрипт для улучшения охвата.

Вы также можете просмотреть список vendors.txt и удалить лишние, по вашему мнению, записи. Например, я обратил внимание, что много «срабатываний» вызывает «HUAWEI TECHNOLOGIES CO.,LTD», поскольку эта фирма делает ещё и мобильные телефоны (но камеры наблюдения они тоже делают: https://www.google.com/search?q=HUAWEI+CCTV&tbm=isch).

Сканер скрытых камер Wi-Fi по MAC адресу

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

Я буду использовать проверенный метод, описанный в статье «Как обнаружить все Wi-Fi устройства в округе?»

Далее перечисленны команды для запуска сбора информации. Если вам что-то в них непонятно, то обратитесь к статье, на которую дана ссылка.

Чтобы проанализировать файл .csv, нужно, чтобы airodump-ng его создала. Для этого переводим беспроводную карту в режим монитора. Я всегда начинаю со следующих двух команд, чтобы не мешали никакие процессы:

sudo systemctl stop NetworkManager
sudo airmon-ng check kill

После этого перевожу Wi-Fi карту в режим монитора:

sudo ip link set wlan0 down
sudo iw wlan0 set monitor control
sudo ip link set wlan0 up

Теперь запускаем airodump-ng примерно следующей командой:

sudo airodump-ng --berlin 60000 -w /tmp/test wlan0

Если вас также интересует диапазон 5 ГГц и если ваша беспроводная карта его поддерживает, то можно запустить примерно такой командой:

sudo airodump-ng --channel 1-13,36-165 --berlin 60000 -w /tmp/test wlan0

Я сохранил в файл /home/mial/cameras-01.csv, у меня там набралось 1600 строк, в ручную мы его анализировать, конечно же, не будем:

cat /home/mial/cameras-01.csv | wc -l
1600

Вообще мы можем использовать скрипт из статьи «Как обнаружить все Wi-Fi устройства в округе?», просто добавив в него ещё и проверку по базе данных производителей скрытых камер. И именно так мы и поступим, но попозже. Дело в том, что при большом количестве записей скрипт работает медленно.

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

Создайте файл fc.sh:

gedit fc.sh

Скопируйте в него следующий код:

Запускать так:

bash ./fc.sh /ПУТЬ/ДО/ФАЙЛА.csv

Если файл, который получен с airodump-ng, расположен по пути /tmp/test-01.csv, тогда моя команда следующая:

bash fc.sh /tmp/test-01.csv

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

wget http://standards-oui.ieee.org/oui/oui.txt

Исправляем скаченный файл, поскольку в нём используется разрыв строки DOS/Windows, а это приводит к проблемам, описанным в статье «Почему при объединении строк они перекрывают друг друга», конкретно в нашем случае без этого исправления программа grep не смогла бы найти строку, даже если она соответствует шаблону:

dos2unix -i oui.txt

Скрипт, используя базу данных сопоставляющую производителей с выделенными им MAC адресами (oui.txt), определит имя вендоров для каждого собранного MAC-адреса и затем проверит, присутствует ли этот вендор в списке производителей камер наблюдения.

Скрипт покажет MAC адрес и название производителей для всех потенциальных камер. Если скрипт ничего не показал, значит ничего не нашлось.

Помните, что некоторые вендоры производят не только камеры наблюдения, но и разнообразную другую электронику (HUAWEI, Sony, Bosch), поэтому весьма вероятны «ложные срабатывания» — в «камеры наблюдения» могут быть записаны устройства, которые ими не являются (например, мобильные телефоны HUAWEI). То есть если что-то найдено, или даже если скрипт вывел с десяток устройств, это не означает, что это всё камеры. В первую очередь, обратите внимание на производителя — довольно часто, ими оказываются популярные производители телефонов.

Если вы нашли что-то интересное, то можно воспользоваться скриптом, который показывает, к каким Точкам Доступа подключены все устройства.

Создайте файл findcameras.sh:

gedit findcameras.sh

Скопируйте в него следующий код:

Запускать так:

bash findcameras.sh /ПУТЬ/ДО/ФАЙЛА.csv

Например:

bash findcameras.sh /tmp/test-01.csv

Если присмотреться, то можно увидеть, что это скрипт wfw.sh из статьи про поиск всех Wi-Fi устройств, но в него добавлена проверка по списку производителей камер наблюдения.

Для этого скрипта, так же как и для предыдущего, требуются оба файла oui.txt и vendors.txt.

Фирма Hand Held Products Inc делает как тепловизоры, так и разные устройства считывания штрихкодов и т. п. — это может быть любым из этих устройств, т. к. это ТД магазина.

Wistron Neweb Corporation делает разную электронику, в том числе Security IP Camera.

Вместо подключения по Wi-Fi, камеры могут использовать проводную сеть — такие камеры не попадут в список.

Поиск камер наблюдения в локальной сети

Этот способ работает только в сетях, где можно получить MAC-адреса других устройств, то есть только в локальных сетях. Сканировать Интернет бесполезно. Примерами локальных сетей, к которым мы часто подключаемся, — это публичные Точки Доступа Wi-Fi в аэропортах, гостиницах, ресторанах, общественном транспорте и т. п.).

Создайте файл fcl.sh:

gedit fcl.sh

Скопируйте в него следующий код:

Запускать так (для Nmap требуются повышенные привилегии):

sudo bash fcl.sh СЕТЬ/МАСКА

Например:

sudo bash ./fcl.sh 192.168.0.0/24

Если будут найдены устройства с MAC-адресами производителей камер наблюдения, то они будут показаны.

Если ничего не показано, значит ничего не найдено.

Если будет найдена хотя бы одна камера, то будет запущено ещё одно сканирование Nmap — более агрессивное, с полным выводом результатов, чтобы вы могли увидеть IP устройства, которое может оказаться камерой, а также с попыткой определения версии ОС и служб — это может помочь с выявлением камеры.

Фрагмент вывода из дополнительного сканирования:

|_http-title: NETSurveillance WEB
554/tcp  open  rtsp    H264DVR rtspd 1.0
|_rtsp-methods: OPTIONS, DESCRIBE, SETUP, TEARDOWN, GET_PARAMETER, SET_PARAMETER, PLAY, PAUSE
8899/tcp open  soap    gSOAP 2.7
|_http-server-header: gSOAP/2.7

Заголовок NETSurveillance WEB намекает, что это сетевая камера наблюдения. Открытые порты 554 и 8899 принадлежат службам RTSP и ONVIF характерным для IP камер.

Связанная статья: Аудит безопасности IP камер

Поиск с помощью DeviceManager (из python-dvr)

Этот метод подойдёт только если вы подключены к той же локальной сети, что и IP камера.

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

Программа DeviceManager (из python-dvr) умеет работать со следующими группами камер наблюдения:

  • XM
  • Dahua
  • Fros
  • Wans
  • Beward

Скорее всего, это не производитель, а тип используемой системы обнаружения камер в LAN. То есть если у вашей камеры другой производитель, DeviceManager всё равно может их найти.

Для установки и запуска DeviceManager выполните команды:

git clone https://github.com/NeiroNx/python-dvr
cd python-dvr
./DeviceManager.py

Откроется графический интерфейс, там достаточно нажать кнопку «Поиск».

Заключение

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

Если у вас есть примеры MAC-адресов камер наблюдения произведённых «ноунеймами» и «Unbranded», то тоже пишите их в комментариях — их можно добавить в скрипты для дополнительной проверки по ним.

Обратите внимание, что в файле vendors.sh я уже добавляю несколько вендоров. Я нашёл их следующим образом:

  1. Сделал захват данных в местах, где видны камеры (магазины, банки и т.п.)
  2. После этого проанализировал вывод скрипта findcameras.sh, изучая производителей устройств, выбирая те из них, которые совершенно незнакомые.
  3. Гуглил фразы вида «НАЙДЕННЫЙ ВЕНДОР CCTV», «НАЙДЕННЫЙ ВЕНДОР CAMERA» и т. п. Удобно, кстати, гуглить по картинкам. Если находятся камеры данного производителя, значит добавляем к известным вендорам производителей камер наблюдения. Производители, в названии которых встречаются слова «mobile», «communications» и «link» это обычно мобильные телефоны и сетевые карты. Понятное дело, что гуглить надо клиентов, а не Точки Доступа.

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

Смотрите также программу trackerjacker и инструкцию «Продвинутое слежение за Wi-Fi устройствами». С помощью программы trackerjacker также можно следить за беспроводными устройствами, например, можно увидеть, когда Wi-Fi камера начала обмен трафиком — это может означать, что камера заметила движение.

Ещё одна связанная статья «Выборочное глушение Wi-Fi сетей и клиентов (DoS атака на отдельные точки доступа/клиентов)» (но помните, что в камерах обычно установлены карты памяти).

Если вы тоже ходите с включённым ноутбуком в рюкзаке, то смотрите следующие статьи — в них написано, как настроить компьютер так, чтобы он не выключался при закрытии крышки лэптопа:

Поиск скрытых камер по характеристикам сетевого трафика

Когда уже написал статью и гуглил «mac addresses of hidden cameras», чтобы найти хоть что-то про ноунеймов, а скрытые камеры обычно выпускаются либо вовсе без бренда, либо под совершенно рандомными именами, которые напрочь отсутствуют в OUI, то случайно наткнулся на исследование «Detecting Hidden Wireless Cameras through Network Traffic Analysis» (Выявление скрытых камер посредством анализа сетевого трафика). Они смогли найти паттерны в характеристике трафика скрытых камер, хотя ни кодом, ни MAC адресами они не поделились. Тем не менее, возможно, кому-то будет интересно почитать и натолкнёт на новые идеи.

Рекомендуется Вам:

8 комментариев to Как обнаружить скрытые камеры

  1. Олег:

    Добрый день,

    У Вас опечатка:
    Создайте файл vendors.sh:

    1

    gedit vendors.txt

     

    Нужно: gedit vendors.sh

  2. Alexey:

    В файл vendors.sh добавил ещё одну страницу для парсинга, которую сначала пропустил, теперь находит 702 вендора.

  3. Alexey:

    В файл vendors.sh добавлен новый вендор «HangZhou KuoHeng Technology Co.,ltd» (камера с АлиЭкспресса).

  4. Alexey:

    Добавлен ещё один источник (сайт) вендоров камер.

    Изменено поведение скрипта fc.sh (для предварительного поиска камер) — теперь он проверяет только клиентов, Точки Доступа теперь исключены.

  5. Владислав:

    vendors.sh:

    for urlpath in screens-monitors-code004843.html cameras-code004815.html ...
    do
    curl -s "https://directory.ifsecglobal.com/$urlpath" | ...
    done

    for letter in {A..Z}
    do
    curl -s "https://www.ispyconnect.com/sources.aspx?letter=$letter" | …
    done

    • Alexey:

      Приветствую! Поправил свой позорный код в соответствии с вашими подсказками — было 199 строк, стало 48. Спасибо!

  6. Alexey:

    Добавил про DeviceManager (из python-dvr).

Добавить комментарий для Олег Отменить ответ

Ваш адрес email не будет опубликован.