Поиск камер в локальной сети linux

Обновлено: 07.07.2024

Список инструментов для тестирования на проникновение и их описание

Описание Cameradar

Cameradar взламывает RTSP камеры видеонаблюдения.

Инструмент и библиотека доступа к потоку RTSP.

  • Обнаруживать открытые порты RTSP на любом доступном целевом хосте
  • Определять, какая модель устройства ведёт трансляцию
  • Запускать автоматические атаки по словарю, чтобы найти маршрут их потока (например: /live.sdp)
  • Запускать автоматические атаки по словарю, чтобы подобрать имя пользователя и пароль камеры
  • Получать полный и удобный отчёт о результатах

Автор: Brendan Le Glaunec

Справка по Cameradar

Руководство по Cameradar

Пояснение опций

"-t, --targets": установить цель. Требуется. Целью может быть файл (смотрите ниже информацию о формате файла), IP-адрес, диапазон IP-адресов, подсеть или их сочетание. Пример: --targets="192.168.1.72,192.168.1.74"

"-p, --ports": (по умолчанию: 554,5554,8554) Этой опцией вы можете становить собственные порты.

"-s, --scan-speed": (По умолчанию: 4) Задайте пользовательские предустановки обнаружения в nmap для повышения скорости или точности. Рекомендуется уменьшить его, если вы пытаетесь сканировать нестабильную и медленную сеть, или увеличить, при поиске в очень производительной и надёжной сети. Вы также можете сохранить низкий уровень, чтобы ваше присутствие было менее заметным. Смотрите эту страницу для получения дополнительной информации о шаблонах таймингов nmap.

"-I, --attack-interval": (По умолчанию: 0 мс) Установить настраиваемый интервал, после которого попытка атаки без ответа должна быть прекращена. Рекомендуется увеличивать его при сканировании нестабильных и медленных сетей или уменьшать его в быстрых и надёжных сетях.

"-T, --timeout": (По умолчанию: 2000 мс) Установить пользовательское значение тайм-аута, после которого попытка атаки без ответа должна завершиться неудачей. Рекомендуется увеличивать его при попытке сканирования нестабильных и медленных сетей или уменьшать его в быстрых и надёжных сетях.

"-r, --custom-routes": (По умолчанию: <CAMERADAR_GOPATH>/dictionaries/routes) Установить путь к пользовательскому словарю для маршрутов

"-c, --custom-credentials": (по умолчанию: <CAMERADAR_GOPATH>/dictionaries/credentials.json) Установить путь к пользовательскому словарю для учетных данных

"-d, --debug": включить журналы отладки.

"-v, --verbose": включить подробные журналы curl (не рекомендуется для большинства случаев)

"-h": отображать информацию об использовании

Проверка доступа к камере

Если у вас есть VLC Media Player, вы можете использовать графический интерфейс или командную строку для подключения к потоку RTSP в следующем формате: rtsp://ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ@АДРЕС:ПОРТ/МАРШРУТ

Формат входного файла

Файл может содержать IP-адреса, имена хостов, диапазоны IP-адресов и подсети, разделённые символами новой строки. Пример:

Примеры запуска Cameradar

Сканирование домашней сети в поисках RTSP потоков:

Сканирование хостов, указанных в файле hosts.txt:

Сканирование удалённой камеры на определённому порту:

Сканирование нестабильной удалённой сети:

Сканирование с большим интервалом между отправляемыми пакетами — для незаметности:

Установка Cameradar

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

Первым шагом необходимо установить Go, для этого смотрите статью «Установка Go (компилятора и инструментов) в Linux».

Затем установите зависимости программы:

Для скачивания исходного кода установки выполните следующие команды:

Теперь бинарный файл в вашей $GOPATH/bin, он уже готов к использованию:

Для обновления при выходе новых версий:

Установка в BlackArch

Программа предустановлена в BlackArch.

Но на момент написания, сопроводители не учли специфика пакета, в результате при любом запуске будет возникать ошибка, что не найдены обязательные файлы с учётными данными (credentials.json) и маршрутами (routes). Для исправления этой ошибки к вашей команде добавляйте следующие опции:

  • -c /usr/share/cameradar/dictionaries/credentials.json
  • -r /usr/share/cameradar/dictionaries/routes

Вместо версии из репозитория BlackArch, вы можете установить версию из исходного кода.

Для скачивания исходного кода и установки следующие команды:

После этого программа станет доступной по следующему пути:

Чтобы программа стала доступна по имени

добавьте переменные окружения, как это описано в статье «Установка Go (компилятора и инструментов) в Linux» в разделе «Установка Go из стандартных системных репозиториев» для Arch Linux.

При таком способе установке всё равно необходимо использовать опции -c и -r, но зато у вас будет последняя версия программы:

Для обновления при выходе новых версий:

Информация об установке в другие операционные системы будет добавлена позже.

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

Самый надежный способ обнаружить все подключенные к сети Linux устройства, в том числе и скрытые - это ARP сканирование локальной сети. В этой статье мы рассмотрим как его выполнить и какие утилиты для этого нужны.

Как выполнить ARP сканирование локальной сети?

Как вы знаете, у всех компьютеров в сети есть IP адреса. Никогда не задавались вопросом, как сеть определяет, какому компьютеру принадлежит тот или иной адрес? Ведь сети бывают разные, проводные, беспроводные, ppp и т д. И в каждой из этих сетей аппаратный адрес компьютера имеет свой формат, зависящий от конструктивных особенностей сети, а IP адреса одни и те же.

Все очень просто. Для преобразования физических адресов, в ip адреса используется протокол ARP (Address Resolution Protocol), так и расшифровывается - протокол разрешения адресов. Когда компьютеру нужно обратиться к другому компьютеру в локальной сети, он отправляет специальный запрос в котором буквально спрашивает "У кого IP адрес 192.168.1.4", компьютер с таким ip адресом отправляет ответ "У меня, я 11:22:33:44:55", в ответе он передает свой физический адрес в этой сети. Дальше этот адрес заносится в специальную таблицу. но это уже тонкости реализации и они выходят за рамки нашей статьи. Сегодня мы поговорим как самому выполнить ARP сканирование локальной сети linux и найти все подключенные устройства.

Утилита ARP Scan

ARP Scan или еще называемый MAC Scanner - это очень быстрый инструмент для сканирования локальной сети Linux с помощью ARP. Утилита показывает все IPv4 адреса устройств в вашей сети. Поскольку ARP не использует маршрутизацию, то такой вид сканирования работает только в локальной сети.

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

Установка ARP Scan

Этот arp сканер сети доступен для следующих операционных систем:

  • Debian, поставляется по умолчанию;
  • Ubuntu, можно установить с репозитория Universe;
  • Fedora, официальные репозитории начиная с версии 6;
  • RedHat - доступна начиная с версии 5;
  • Gentoo, официальные репозитории;
  • ArchLinux - официальные репозитории Pacman.

Для установки в Ubuntu выполните:

sudo apt install arp-scan

Сканирование сети

ARP Scan позволяет находить активные компьютеры как в проводных сетях ethernet, так и в беспроводных Wifi сетях. Также есть возможность работать с Token Ring и FDDI. Не поддерживаются последовательные соединения PPP и SLIP, поскольку в них не используется ARP. Программу нужно запускать с правами суперпользователя.

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

В данном случае, это enp24s0. Самый простой способ выполнить ARP сканирование и обнаружить все подключенные к локальной сети компьютеры - запустить программу со следующими параметрами:

sudo arp-scan --interface=enp24s0 --localnet


Здесь параметр --interface, задает интерфейс для сканирования, а --localnet, говорит, что нужно использовать все возможные IP адреса для текущей сети.

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

Вместо параметра --localnet, можно указать маску сети:

sudo arp-scan --interface=enp24s0 10.0.1.0/24

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

ARP спуфинг и ARP прокси

Выводы

ARP Scan это простой, но очень мощный инструмент, с помощью которого можно выполнять сканирование ip адресов в локальной сети linux. Те, кто знаком с Cisco маршрутизаторами и коммутаторами, знают что найти такие устройства можно только с помощью ARP. Это полезный инструмент, возможно, когда-то вам он пригодится.

Этичный хакинг и тестирование на проникновение, информационная безопасность

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Если присмотреться, то можно увидеть, что это скрипт 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:

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

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

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


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

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

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

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

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

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

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

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

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

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

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


Заключение

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

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

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

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

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

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

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

  • Управление электропитанием в Linux (Cinnamon)
  • Управление электропитанием в Linux (GNOME)
  • Управление электропитанием в Linux (Xfce) — эта статья подойдёт для Kali Linux.

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

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


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

1. ZoneMinder


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

Пользователи Linux CCTV могут воспользоваться установщиками для различных дистрибутивов, таких как Ubuntu и Debian, но вы также можете скомпилировать их из исходного кода, если хотите. Вы также можете развернуть ZoneMinder на устройствах с низким энергопотреблением, таких как Raspberry Pi.

2. Xeoma


Это программное обеспечение для Linux-камеры безопасности является богатым. Он совместим со всем, от обычных веб-камер USB до камер видеонаблюдения Wi-Fi. К одной установке Xeoma можно подключить до 2000 камер, что делает ее идеальной для коммерческого использования.

3. Motion


Несмотря на то, что видео сохраняется при обнаружении движения, Motion также включает настройки промежутка времени для регулярного мониторинга. Вы также можете установить движение для сохранения как видео или изображений. Он работает без головы и графический интерфейс не требуется, что делает его более компактным по сравнению с другими конкурентами программного обеспечения для наблюдения в Linux.

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

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

4. Bluecherry

Установка проста, с однострочным установочным скриптом, доступным для Ubuntu, Debian и CentOS. Он поддерживает более 2600 IP-камер с возможностью воспроизведения записей и потокового вещания в браузере. К сожалению, в Bluecherry отсутствует собственное мобильное приложение для Android и iOS, но поддерживается интеграция с IP Cam Viewer.

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

5. Ivideon

Если вы разрабатываете систему видеонаблюдения с ограниченным бюджетом, вы должны рассмотреть Ivideon. Системные требования являются одними из самых легких, которые вы найдете для любого цифрового видеорегистратора. Вы можете запустить Ivideon на ПК с процессором Itnel Atom с 1 ГБ ОЗУ и всего лишь 500 МБ памяти. Однако для ежедневного хранения видеоматериалов вам потребуется как минимум 11 ГБ, если вы хотите хранить их локально.

Установка довольно проста. Вы можете либо загрузить и запустить скрипт установки, либо запустить отдельные команды из окна терминала самостоятельно. Как и многие другие системы видеонаблюдения, Ivideon предлагает мобильное приложение для устройств Android и iOS. Он официально поддерживает самые последние выпуски Debian и Ubuntu, но так же может быть установлен на другие дистрибутивы.

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

6. Kerberos.io


Будьте в безопасности с Linux

Создание вашей собственной системы видеонаблюдения на основе Linux поможет защитить ваш дом и бизнес от более традиционных угроз. Они также могут сыграть свою роль в создании умного дома с другими проектами DIY.

Читайте также: