
Cameradar se infiltra en cámaras de videovigilancia RTSP
Cameradar escanea endpoints RTSP en objetivos autorizados y utiliza ataques de diccionario para forzar sus credenciales y rutas.
/live.sdp).

Instale Docker y ejecute:
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
Ejemplo:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
Esto escanea los puertos 554, 5554 y 8554 en la subred objetivo. Intenta enumerar los streams RTSP. Para todas las opciones, consulte Referencia de configuración.
Los objetivos pueden ser CIDRs, IPs, rangos de IP o un nombre de host.
172.16.100.0/24172.16.100.10localhost172.16.100.10-20Para usar diccionarios personalizados, móntelos y pase ambas banderas:
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
Use esta opción si Docker no está disponible o si desea una compilación local.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestEl binario cameradar ahora está en su $GOPATH/bin.
Para las banderas disponibles, consulte Referencia de configuración.
Estos pasos resumen una configuración funcional de Termux para Android. Use Termux 117 desde F-Droid o el sitio oficial de Termux, no Google Play.
Instale los paquetes necesarios en Termux:
pkg update
pkg install mc wget git nmap proot-distro
Instale Alpine e inicie sesión:
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
Cree una ruta de módulo y clone el repositorio:
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
Copie los diccionarios y ejecute el binario:
mkdir -p /tmp
cp -r ../../dictionaries /tmp/dictionaries
/go/bin/cameradar --targets=<target> --custom-credentials=/tmp/dictionaries/credentials.json --custom-routes=/tmp/dictionaries/routes --ui=plain --debug
Reemplace <target> con una IP, rango, host o subred que esté autorizado a probar.
Los puertos predeterminados son 554, 5554, 8554, http, 322 y 8322.
Si no especifica puertos, Cameradar usa esos.
Ejemplo de escaneo de puertos personalizados:
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
Puede reemplazar los diccionarios predeterminados con sus propios archivos de rutas y credenciales.
El repositorio proporciona diccionarios base en la carpeta 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
Use URLs rtsps:// para acceder a streams RTSPS.
SSL_CERT_FILE al certificado de la AC (o al certificado del servidor para una configuración autofirmada) al ejecutar Cameradar.Ejemplo con binario local:
SSL_CERT_FILE=/path/to/ca-or-server.crt \
cameradar \
--targets localhost \
--ports 8322 \
--skip-scan \
--custom-routes routes.txt \
--custom-credentials credentials.json
Ejemplo con 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
Si prefiere no usar SSL_CERT_FILE, agregue su certificado AC al almacén de confianza del sistema utilizado por su entorno de ejecución.
--skip-scanSi ya conoce los endpoints RTSP, puede omitir el descubrimiento y tratar cada objetivo y puerto como un candidato a stream. Este modo no ejecuta descubrimiento y puede ser útil en redes restringidas o cuando desee atacar un inventario conocido.
Omitir el descubrimiento significa:
Ejemplo:
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
En este ejemplo, Cameradar intenta ataques de diccionario contra los puertos 554 y 8554 de 192.168.1.10.
--scannerCameradar admite dos backends de descubrimiento:
nmap (predeterminado)masscanUse nmap cuando desee un descubrimiento RTSP más confiable: realiza identificación de servicios y puede distinguir mejor RTSP de otros puertos abiertos.
Use masscan al escanear redes muy grandes: generalmente es más rápido y eficiente a escala, pero no proporciona descubrimiento de servicios.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!WARNING]
--scan-speedsolo se aplica al escánernmap.
--framecheckAlgunas cámaras no siguen completamente el comportamiento RTSP y pueden devolver 200 OK incluso cuando la ruta o las credenciales son incorrectas.
Cuando activa --framecheck, Cameradar valida cada 200 OK intentando la reproducción y esperando un paquete RTP.
Framecheck significa:
200 OK cuando puede confirmar la generación de fotogramas.--framecheck está desactivado por defecto porque agrega solicitudes RTSP y puede aumentar significativamente la duración del ataque.
Ejemplo con Docker:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
Ejemplo con binario local y variable de entorno:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
Cameradar es una herramienta de pruebas de penetración. Solo escanee redes y dispositivos que posea o para los que tenga permiso explícito para probar. No utilice esta herramienta para acceder a sistemas o streams no autorizados. Si no está seguro, deténgase y obtenga aprobación por escrito antes de escanear.
Cameradar presenta los resultados en una interfaz de terminal legible.
Registra los hallazgos en la consola.
El informe incluye hosts descubiertos, modelos de dispositivos identificados y rutas o credenciales válidas.
Si especifica una ruta para la bandera --output, Cameradar también escribe una lista de reproducción M3U con los streams descubiertos.
Use VLC Media Player para conectarse a un stream:
rtsp://username:password@address:port/route
Para endpoints RTSP seguros, use:
rtsps://username:password@address:port/route
El archivo puede contener IPs, nombres de host, rangos de IP y subredes. Separe las entradas con saltos de línea. Ejemplo:
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
Cuando use --skip-scan, Cameradar expande cada entrada en direcciones IP explícitas antes de construir la lista de objetivos.
La referencia completa de CLI y variables de entorno se mantiene en Referencia de configuración.
Esto incluye todas las banderas compatibles, valores predeterminados, valores aceptados y mapeo de variables de entorno.
Ejecute el siguiente comando en la raíz del repositorio:
docker build . -t cameradar
La imagen resultante se llama cameradar.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestEl binario cameradar ahora está en $GOPATH/bin/cameradar.
Consulte Solución de problemas y preguntas frecuentes
Ejecutar cameradar en su propia máquina para escanear puertos predeterminados
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
Ejecutar cameradar con un archivo de entrada, registros habilitados en el puerto 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
Ejecutar cameradar en una subred con diccionarios personalizados, en los puertos 554, 5554, 8554, 322 y 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
Ejecutar cameradar con descubrimiento masscan
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
Copyright 2026 Ullaakut
Por la presente se concede permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, entre otros, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑOS U OTRAS RESPONSABILIDADES, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, DERIVADAS DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRAS OPERACIONES DEL SOFTWARE.