
Cameradar взламывает RTSP-камеры видеонаблюдения
Cameradar сканирует RTSP-конечные точки на авторизованных целях и с помощью атак по словарю подбирает их учётные данные и маршруты.
/live.sdp) с помощью словаря.

Установите 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/24172.16.100.10localhost172.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 install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestБинарный файл cameradar теперь находится в $GOPATH/bin.
Доступные флаги см. в справочнике по конфигурации.
Далее приведены шаги для работающей конфигурации Termux на Android. Используйте Termux 117 из F-Droid или официального сайта Termux, а не Google Play.
Установите необходимые пакеты в Termux:
pkg update
pkg install mc wget git nmap proot-distro
Установите Alpine и войдите в него:
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
Создайте путь для модуля и клонируйте репозиторий:
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
Скопируйте словари и запустите бинарный файл:
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
Используйте 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-конечные точки, можно пропустить обнаружение и рассматривать каждую цель и порт как кандидата на поток. В этом режиме обнаружение не выполняется, что может быть полезно в ограниченных сетях или при атаке на известный инвентарь.
Пропуск обнаружения означает:
Пример:
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.
--scannerCameradar поддерживает два бэкенда обнаружения:
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 означает:
200 OK только при подтверждении генерации кадров.--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 build . -t cameradar
Полученный образ называется cameradar.
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
Настоящим предоставляется бесплатное разрешение любому лицу, получающему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), на использование Программного обеспечения без ограничений, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на разрешение лицам, которым предоставляется Программное обеспечение, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, УБЫТКАМ ИЛИ ИНЫМ ОБЯЗАТЕЛЬСТВАМ, БУДЬ ТО В ДОГОВОРЕ, ДЕЛИКТЕ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКШИМ ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ, ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.