
cameradar v6.2.1
Cameradar взламывает RTSP-камеры видеонаблюдения
Cameradar
Инструмент доступа к RTSP-потокам
Cameradar сканирует RTSP-конечные точки на авторизованных целях и с помощью атак по словарю подбирает их учётные данные и маршруты.
Что делает Cameradar
- Обнаруживает открытые RTSP-хосты на доступных целях.
- Определяет модель устройства, передающего RTSP-поток.
- Пытается найти маршруты потоков (например,
/live.sdp) с помощью словаря. - Пытается подобрать учётные данные камеры с помощью словаря.
- Создаёт отчёт о результатах.

Содержание
- Быстрый старт с Docker
- Установка бинарного файла
- Установка на Android (Termux)
- Конфигурация
- Безопасность и ответственное использование
- Вывод
- Проверка доступа к камере
- Параметры командной строки и переменные окружения
- Формат входного файла
- Сборка и вклад
- Часто задаваемые вопросы
- Примеры
- Лицензия

Быстрый старт с Docker
Установите Docker и выполните:
docker run --rm -t --net=host ullaakut/cameradar --targets <цель>
Пример:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
Эта команда сканирует порты 554, 5554 и 8554 в целевой подсети. Она пытается перечислить RTSP-потоки. Все параметры см. в справочнике по конфигурации.
-
Целями могут быть CIDR, IP-адреса, диапазоны IP или имя хоста.
- Подсеть:
172.16.100.0/24 - IP-адрес:
172.16.100.10 - Хост:
localhost - Диапазон:
172.16.100.10-20
- Подсеть:
-
Чтобы использовать собственные словари, смонтируйте их и передайте оба флага:
docker run --rm -t --net=host \ -v /path/to/dictionaries:/tmp/dictionaries \ ullaakut/cameradar \ --custom-routes /tmp/dictionaries/my_routes \ --custom-credentials /tmp/dictionaries/my_credentials.json \ --targets 192.168.100.0/24
Установка бинарного файла
Используйте этот вариант, если Docker недоступен или вы хотите локальную сборку.
Зависимости
- Go 1.25 или новее
Шаги
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
Бинарный файл cameradar теперь находится в $GOPATH/bin.
Доступные флаги см. в справочнике по конфигурации.
Установка на Android (Termux)
Далее приведены шаги для работающей конфигурации Termux на Android. Используйте Termux 117 из F-Droid или официального сайта Termux, а не Google Play.
1) Настройка Termux и Alpine
Установите необходимые пакеты в Termux:
pkg update
pkg install mc wget git nmap proot-distro
Установите Alpine и войдите в него:
proot-distro install alpine
proot-distro login alpine
2) Установка инструментов сборки в Alpine
apk add wget git go gcc clang musl-dev make
3) Сборка Cameradar
Создайте путь для модуля и клонируйте репозиторий:
mkdir -p go/pkg/mod/github.com/Ullaakut
cd go/pkg/mod/github.com/Ullaakut
git clone https://github.com/Ullaakut/cameradar.git
cd cameradar/cmd/cameradar
go install
4) Запуск Cameradar
Скопируйте словари и запустите бинарный файл:
mkdir -p /tmp
cp -r ../../dictionaries /tmp/dictionaries
/go/bin/cameradar --targets=<цель> --custom-credentials=/tmp/dictionaries/credentials.json --custom-routes=/tmp/dictionaries/routes --ui=plain --debug
Замените <цель> на IP-адрес, диапазон, хост или подсеть, которые вы имеете право тестировать.
Конфигурация
Порты по умолчанию: 554, 5554, 8554, http, 322 и 8322.
Если порты не указаны, Cameradar использует их.
Пример сканирования пользовательских портов:
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
Вы можете заменить словари по умолчанию своими файлами маршрутов и учётных данных.
В репозитории есть базовые словари в папке dictionaries.
docker run --rm -t --net=host \
-v /my/folder/with/dictionaries:/tmp/dictionaries \
ullaakut/cameradar \
--custom-routes /tmp/dictionaries/my_routes \
--custom-credentials /tmp/dictionaries/my_credentials.json \
--targets 172.19.124.0/24
RTSPS и TLS-сертификаты
Используйте URL-адреса rtsps:// для доступа к потокам RTSPS.
- Если сертификат потока выдан доверенным публичным центром сертификации, дополнительная настройка не требуется.
- Если сертификат потока самоподписан или выдан частным ЦС, доверенное хранилище ОС может отклонить его.
- В этом случае укажите
SSL_CERT_FILEна сертификат ЦС (или сертификат сервера для самоподписанной конфигурации) при запуске Cameradar.
Пример с локальным бинарным файлом:
SSL_CERT_FILE=/путь/к/ca-или-server.crt \
cameradar \
--targets localhost \
--ports 8322 \
--skip-scan \
--custom-routes routes.txt \
--custom-credentials credentials.json
Пример с Docker:
docker run --rm -t --net=host \
-e SSL_CERT_FILE=/tmp/certs/server.crt \
-v /path/to/certs:/tmp/certs:ro \
ullaakut/cameradar \
--targets localhost \
--ports 8322
Если вы предпочитаете не использовать SSL_CERT_FILE, добавьте сертификат вашего ЦС в системное доверенное хранилище вашей среды выполнения.
Пропуск обнаружения с помощью --skip-scan
Если вы уже знаете RTSP-конечные точки, можно пропустить обнаружение и рассматривать каждую цель и порт как кандидата на поток. В этом режиме обнаружение не выполняется, что может быть полезно в ограниченных сетях или при атаке на известный инвентарь.
Пропуск обнаружения означает:
- Cameradar не запускает обнаружение и не определяет модели устройств.
- Цели разрешаются в IP-адреса. Имена хостов разрешаются через DNS.
- Блоки CIDR и диапазоны IPv4 расширяются до каждого адреса в диапазоне.
- Большие диапазоны создают много целей, поэтому используйте их осторожно.
Пример:
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
В этом примере Cameradar выполняет атаки по словарю на порты 554 и 8554 хоста 192.168.1.10.
Выбор сканера обнаружения с помощью --scanner
Cameradar поддерживает два бэкенда обнаружения:
nmap(по умолчанию)masscan
Используйте nmap, если вам нужно более надёжное обнаружение RTSP: он выполняет идентификацию служб и может лучше отличить RTSP от других открытых портов.
Используйте masscan для сканирования очень больших сетей: он обычно быстрее и эффективнее в масштабе, но не выполняет обнаружение служб.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!WARNING]
--scan-speedприменяется только к сканеруnmap.
Уменьшение ложных срабатываний с помощью --framecheck
Некоторые камеры не полностью следуют поведению RTSP и могут возвращать 200 OK, даже если маршрут или учётные данные неверны.
При включении --framecheck Cameradar проверяет каждый 200 OK, пытаясь воспроизвести поток и ожидая пакет RTP.
Framecheck означает:
- Cameradar принимает
200 OKтолько при подтверждении генерации кадров. - Если пакет RTP не поступает, Cameradar считает результат ложным срабатыванием и продолжает атаку.
- Проверки маршрутов остаются совместимыми с вызовами аутентификации, встречающимися при зондировании.
--framecheck отключён по умолчанию, так как он добавляет запросы RTSP и может значительно увеличить продолжительность атаки.
Пример с Docker:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
Пример с локальным бинарным файлом и переменной окружения:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
Безопасность и ответственное использование
Cameradar — это инструмент тестирования на проникновение. Сканируйте только те сети и устройства, которые вам принадлежат или на тестирование которых у вас есть явное разрешение. Не используйте этот инструмент для доступа к неавторизованным системам или потокам. Если вы не уверены, остановитесь и получите письменное разрешение перед сканированием.
Вывод
Cameradar отображает результаты в читаемом терминальном интерфейсе.
Он выводит результаты в консоль.
Отчёт включает обнаруженные хосты, идентифицированные модели устройств, а также действующие маршруты или учётные данные.
Если указан путь для флага --output, Cameradar также записывает плейлист M3U с обнаруженными потоками.
Проверка доступа к камере
Используйте VLC Media Player для подключения к потоку:
rtsp://имя_пользователя:пароль@адрес:порт/маршрут
Для защищённых конечных точек RTSP используйте:
rtsps://имя_пользователя:пароль@адрес:порт/маршрут
Формат входного файла
Файл может содержать IP-адреса, имена хостов, диапазоны IP и подсети. Разделяйте записи символами новой строки. Пример:
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
При использовании --skip-scan Cameradar расширяет каждую запись до явных IP-адресов перед построением списка целей.
Параметры командной строки и переменные окружения
Полный справочник CLI и переменных окружения ведётся в справочнике по конфигурации.
Он включает все поддерживаемые флаги, значения по умолчанию, допустимые значения и соответствие переменным окружения.
Сборка и вклад
Сборка Docker
Выполните следующую команду в корне репозитория:
docker build . -t cameradar
Полученный образ называется cameradar.
Сборка Go
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
Бинарный файл cameradar теперь находится в $GOPATH/bin/cameradar.
Часто задаваемые вопросы
См. Устранение неполадок и FAQ
Примеры
Запуск cameradar на вашем компьютере для сканирования портов по умолчанию
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
Запуск cameradar с входным файлом, логи включены на порту 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
Запуск cameradar в подсети с пользовательскими словарями, на портах 554, 5554, 8554, 322 и 8322
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets 192.168.0.0/24 --custom-credentials "/tmp/dictionaries/credentials.json" --custom-routes "/tmp/dictionaries/routes" --ports 554,5554,8554
Запуск cameradar с обнаружением через masscan
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
Лицензия
Авторское право 2026 Ullaakut
Настоящим предоставляется бесплатное разрешение любому лицу, получающему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), на использование Программного обеспечения без ограничений, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на разрешение лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, УБЫТКАМ ИЛИ ИНЫМ ОБЯЗАТЕЛЬСТВАМ, БУДЬ ТО В ДОГОВОРЕ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИМ ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ, ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.