Ethical hacking and penetration testing
InfoSec, IT, Kali Linux, BlackArch
How to detect IP cameras
Is it possible to detect surveillance cameras (CCTV, DVR, NVR, ANPR, Dome Camera, IP cameras, body cameras)?
If a camera uses Wi-Fi, then its MAC address is visible to everyone. If you compare this MAC with the database of camera manufacturers, you can identify this camera.
If a camera does not use Wi-Fi, but uses a wired network, then it can be detected only if you are connected to the same network (for example, to the network of a hotel, airport, etc.).
If the device does not use a wired or wireless network, then the methods described below cannot detect such a device. That is, for example, DVRs cannot be found in this way.
For Wi-Fi devices, MAC addresses can be collected using Airodump-ng, for devices on the network to which we are connected, MAC addresses can be obtained using Nmap. But we need a database of surveillance/hidden camera manufacturers, and cameras in general.
MAC address database of all hidden cameras
I have not found any database of camera manufacturers’ MAC addresses other than small lists put together by enthusiasts. Maybe it would be good for a starting point, but still not that I wish.
I found a site that lists manufacturers of specialized equipment: https://directory.ifsecglobal.com/video-surveillance-code004812.html. I do not know if these lists are relevant or not, complete or incomplete, but they are quite large and there are all manufacturers mentioned by enthusiasts (and those that are not on the site, I did not find them in the OUI list containing the MAC addresses of all device manufacturers).
The correct manufacturer name can be easily matched to the MAC database, so we just need to collect the vendor names – this is perfect for our purpose of finding surveillance/hidden cameras.
Create a vendors.sh file:
Copy the following code into it:
This will create a vendors.txt file.

In total, 680 unique manufacturers were found – this is quite a lot. If you know other lists or databases, then write in the comments – we can use them or add data from them. I do not know if “no name” got here. On AliExpress, surveillance cameras are sold without a name on the case, without mentioning the manufacturer in the instructions and without mentioning it on the box (because there is no box). If you have MAC addresses of such “no name”, then write them in the comments, we can add them to the script to improve coverage.
You can also browse the list of vendors.txt and remove entries that you think are unnecessary. For example, I noticed that a lot of possible false positives are caused by “HUAWEI TECHNOLOGIES CO.,LTD”, since this company also makes mobile phones (but they do surveillance cameras as well: https://www.google.com/search?q=HUAWEI+CCTV&tbm=isch).
Wi-Fi hidden camera scanner by MAC address
Now that we have a database of hidden camera manufacturers, we need to collect MAC addresses in the neighborhood.
I will use the tried and tested method described in the article “How to detect all Wi-Fi devices in the area?”
The following are the commands to start collecting information. If you do not understand something about them, then refer to the article to which the link is given.
To parse the .csv file, you need airodump-ng to create it. To do this, we set the wireless card to monitor mode. I always start with the following two commands so that no processes get in the way:
After that I set the Wi-Fi card into monitor mode:
Now we run airodump-ng with the following command:
If you are also interested in the 5 GHz band and if your wireless card supports it, then you can use this command:
I saved collected information to the file /home/mial/cameras-01.csv, I got 1600 lines there, of course, we won’t analyze it manually:
In general, we can use the script from the article “How to detect all Wi-Fi devices in the area?”, Simply adding to it a check against the database of camera manufacturers. And this is exactly what we will do, but later. The point is that the script works slowly with numerous entries.
Therefore, first we will use a lighter script that will simply check if there is a surveillance camera around. And if they are, then you can run a heavier script to analyze which Access Points they are connected to.
Create fc.sh file:
Copy the following code into it:
If the file that I got from airodump-ng is located at /tmp/test-01.csv then my command is as follows:
We also need a file with a database of MAC addresses and their respective manufacturers, download it to the same directory where you placed the fc.sh file – you need to download this file before running fc.sh and all other scripts from this article:
We fix the downloaded file, because it uses a DOS/Windows line break, and this leads to the problems, without this fix, the grep program could not find the line, even if it matches the pattern:
The script, using a database that maps manufacturers to their assigned MAC addresses (oui.txt), will determine the vendor name for each collected MAC address and then check if this vendor is present in the list of surveillance camera manufacturers.
The script will show the MAC address and manufacturer names for all potential cameras. If the script showed nothing, then nothing was found.

Remember that some vendors produce not only surveillance cameras, but also a variety of other electronics (HUAWEI, Sony, Bosch), therefore, “false positives” are very likely – devices can be assigned to “surveillance cameras”, but actually they are not (for example, mobile HUAWEI phones). That is, if something was found, or even if the script brought up a dozen devices, this does not mean that these are all cameras. First of all, pay attention to the manufacturer – quite often they are popular phone manufacturers.
If you find something interesting, then you can use a script that shows which Access Points all devices are connected to.
Create findcameras.sh file:
Copy the following code into it:
If you look closely, you can see that this is the wfw.sh script from the article about finding all Wi-Fi devices around you, but a check has been added to it against the list of surveillance camera manufacturers.
This script, like the previous one, requires both oui.txt and vendors.txt files.

Wistron Neweb Corporation makes a variety of electronics, including Security IP Camera.

Instead of connecting via Wi-Fi, cameras can use a wired network – such cameras will not be included in the list.
Searching for surveillance cameras in the local network
This method works only on networks where you can get the MAC addresses of other devices, that is, only on local networks. Scanning the Internet is useless. Examples of LANs that we often connect to are public Wi-Fi hotspots at airports, hotels, restaurants, public transport, etc.).
Create fcl.sh file:
Copy the following code into it:
Run like this (Nmap requires root privileges):
If devices with MAC addresses of surveillance camera manufacturers are found, they will be shown.

If nothing is shown, then nothing was found.
If at least one camera is found, another Nmap scan will be launched – more aggressive, with full output of the results so that you can see the IP of the device, which may be a camera, as well as with an attempt to determine the version of the OS and services – this can help with identifying the camera.
Fragment of output from additional scan:
The “NETSurveillance WEB” title hints that it is a network surveillance camera. Open ports 554 and 8899 belong to RTSP and ONVIF services specific to IP cameras.
Related article: IP Camera Security Audit
Search with DeviceManager (from python-dvr)
This method is only suitable if you are connected to the same local network as the IP camera.
Programs for working with cameras must know their IP address. The normal user is not required to enter this address manually. You might think that programs are scanning your local network, but this is usually not the case. They actually send specific hexadecimal data to the broadcast address. The data and port differ depending on the camera models. You can see an example of how this works in the article “Reverse engineering of network traffic”.
DeviceManager program (from python-dvr) can work with the following groups of surveillance cameras:
Most likely, this is not the manufacturer, but the type of camera detection system used on the LAN. That is, if your camera has a different manufacturer, DeviceManager can still find them.
To install and run DeviceManager, run the commands:
A graphical interface will open, there it is enough to click the Поиск (“Search”) button.

Conclusion
The quality of scanning is primarily determined by the quality of the list of manufacturers of surveillance cameras – if you know the better lists, write in the comments, I will modify the instructions and scripts.
If you have examples of MAC addresses of surveillance cameras produced by “no name” and “Unbranded”, then also write them in the comments – they can be added to scripts for additional verification by them.
See also trackerjacker and “Wi-Fi device tracking”. Using trackerjacker, you can also monitor wireless devices, for example, you can see when a Wi-Fi camera has started sending traffic – this may mean that the camera has noticed movement.
Another related article “How to perform selective jamming of Wi-Fi networks and clients (DoS attack on individual access points/clients)” (but remember that cameras usually have memory cards inside to store video).
Detecting hidden cameras by network traffic characteristics
When I already wrote this article and googled “mac addresses of hidden cameras” to find at least something about “Unbranded”, because hidden cameras are usually produced either without a brand at all, or under random names that are absent from the OUI, I stumbled upon a study “Detecting Hidden Wireless Cameras through Network Traffic Analysis”. They were able to find patterns in the traffic characteristics of hidden cameras, although they did not share either the code or MAC addresses. Nevertheless, it may be interesting for someone to read it and push on new ideas.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Как обнаружить скрытые камеры
Возможно ли обнаружить скрытые камеры (CCTV, DVR, NVR, ANPR, Dome Camera, IP камеры, нательные камеры)
Если камера использует Wi-Fi, то её MAC адрес виден всем. Если сопоставить этот MAC с базой данных производителей камер, то можно выявить эту камеру.
Если камера не использует Wi-Fi, но использует проводную сеть, то её можно обнаружить только если есть подключение к этой же сети (например, к сети отеля, аэропорта и т. п.).
Если устройство не использует ни проводную, ни беспроводную сеть, то выявить такое устройство невозможно описанными ниже методами. То есть, к примеру, видеорегистраторы таким способом не найти.
База данных MAC адресов всех скрытых камер
Я не нашёл баз данных MAC адресов производителей камер, кроме небольших списков, составленных энтузиастами. Может быть, для отправной точки это подошло бы, но всё равно не то.
Я нашёл сайт, со списками производителей специализированного оборудования: https://directory.ifsecglobal.com/video-surveillance-code004812.html. Я не знаю, актуальные эти списки или нет, полные или не полные, но они достаточно большие и там есть все производители, упомянутые энтузиастами (а тех, которых нет на сайте, то я их не нашёл и в списке OUI, содержащих MAC адреса всех производителей устройств).
Правильное название производителя легко сопоставить с базой данных MAC, поэтому нам достаточно собрать имена вендоров — это отлично подойдёт для нашей цели — поиск скрытых камер.
Создайте файл vendors.sh:
Скопируйте в него следующий код:
В результате будет создан файл vendors.txt.

Всего найден 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 его создала. Для этого переводим беспроводную карту в режим монитора. Я всегда начинаю со следующих двух команд, чтобы не мешали никакие процессы:
После этого перевожу 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 я уже добавляю несколько вендоров. Я нашёл их следующим образом:
Вы тоже можете так делать — присылайте ваши названия производителей, я буду добавлять их в файл.
Смотрите также программу trackerjacker и инструкцию «Продвинутое слежение за Wi-Fi устройствами». С помощью программы trackerjacker также можно следить за беспроводными устройствами, например, можно увидеть, когда Wi-Fi камера начала обмен трафиком — это может означать, что камера заметила движение.
Ещё одна связанная статья «Выборочное глушение Wi-Fi сетей и клиентов (DoS атака на отдельные точки доступа/клиентов)» (но помните, что в камерах обычно установлены карты памяти).
Если вы тоже ходите с включённым ноутбуком в рюкзаке, то смотрите следующие статьи — в них написано, как настроить компьютер так, чтобы он не выключался при закрытии крышки лэптопа:
Поиск скрытых камер по характеристикам сетевого трафика
Когда уже написал статью и гуглил «mac addresses of hidden cameras», чтобы найти хоть что-то про ноунеймов, а скрытые камеры обычно выпускаются либо вовсе без бренда, либо под совершенно рандомными именами, которые напрочь отсутствуют в OUI, то случайно наткнулся на исследование «Detecting Hidden Wireless Cameras through Network Traffic Analysis» (Выявление скрытых камер посредством анализа сетевого трафика). Они смогли найти паттерны в характеристике трафика скрытых камер, хотя ни кодом, ни MAC адресами они не поделились. Тем не менее, возможно, кому-то будет интересно почитать и натолкнёт на новые идеи.
Ты и есть большой брат, или попробуй себя в роли всевидящего ока
Купил один барин дверь надежную, чугуниевую с замками на дохулиард комбинаций, но после установки скрипеть петли стали. Вызвали он специалиста сидит у себя на кухне ждет, чаи попивает, вдруг заходит к нему монтажник и говорит человеческим голосом «Ищу работу Петли смазал, иди проверяй». А барин его и вопрошает «Как вошел ты сквозь дверь чугуниевую, всю из себя сертифицированную направо и налево». Отвечает на это работник физического труда «Для того чтобы под порогом не ждать когда ты барин открыть нам изволишь, мы рукожопами сертифицированными специалистами решили кнопку сделать тайную, так что стукнешь в верхний левый угол двери, дверь то и откроется».
Брехня, подумаете Вы, так только в сказках бывает и будете в корне не правы
В данном посте убедительно и с примерами убедительно докажу, что такие разработчики существуют.
Попала мне как-то в руки IP камера из страны славящейся своим неповторимым качеством производимой техники, с паролем неизвестным, гугление по сбросу настроек привело меня к утилитке, которая сбрасывала этот пароль, а вот способ которым она это делает меня и заинтересовал.
Вот что было открыто на камере изначально.
Host is up (0.0014s latency).
Not shown: 65529 closed ports
PORT STATE SERVICE
80/tcp open http
554/tcp open rtsp
8899/tcp open ospf-lite
9527/tcp open unknown
9530/tcp open unknown
34567/tcp open unknown
WEB запаролен. CLI нет.
Запускаем tcpdump, запускаем утилиту сброса пароля.
Видим, что посылается команда \rOpenTelnet:OpenOnce на порт 9530 tcp. После чего на устройстве открывается telnet и программа идет на порт 23 и с помощью заранее предустановленных паролей сбрасывает конфигурацию в части касающейся паролей.
Попробуем все сделать вручную
1. Открываем telnet на камере
PORT STATE SERVICE
23/tcp open telnet
80/tcp open http
554/tcp open rtsp
8899/tcp open ospf-lite
9527/tcp open unknown
9530/tcp open unknown
34567/tcp open unknown
После перезагрузки камера доступна через web без пароля. Наслаждайтесь.
Чем руководствуется производитель оборудования когда оставляет такие дыры мне лично не понятно.
Дорогие читатели, никогда не сканируйте сеть города за которым вы бы хотели понаблюдать, на предмет открытого порта 9530, и не производите действий описанный выше, это может привести к желанию уйти в отпуск или отправиться в путешествие.




