
Cameradar s'infiltre dans les caméras de vidéosurveillance RTSP
Cameradar scanne les points de terminaison RTSP sur des cibles autorisées et utilise des attaques par dictionnaire pour forcer leurs identifiants et routes.
/live.sdp).

Installez Docker et exécutez :
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
Exemple :
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
Cela scanne les ports 554, 5554 et 8554 sur le sous-réseau cible. Il tente d'énumérer les flux RTSP. Pour toutes les options, consultez la Référence de configuration.
Les cibles peuvent être des CIDR, des IP, des plages d'IP ou un nom d'hôte.
172.16.100.0/24172.16.100.10localhost172.16.100.10-20Pour utiliser des dictionnaires personnalisés, montez-les et passez les deux drapeaux :
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
Utilisez cette option si Docker n'est pas disponible ou si vous voulez une compilation locale.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestLe binaire cameradar se trouve maintenant dans votre $GOPATH/bin.
Pour les drapeaux disponibles, consultez la Référence de configuration.
Ces étapes résument une configuration Termux fonctionnelle pour Android. Utilisez Termux 117 depuis F-Droid ou le site officiel de Termux, pas Google Play.
Installez les paquets requis dans Termux :
pkg update
pkg install mc wget git nmap proot-distro
Installez Alpine et connectez-vous :
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
Créez un chemin de module et clonez le dépôt :
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
Copiez les dictionnaires et exécutez le binaire :
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
Remplacez <target> par une IP, une plage, un hôte ou un sous-réseau que vous êtes autorisé à tester.
Les ports par défaut sont 554, 5554, 8554, http, 322 et 8322.
Si vous ne spécifiez pas de ports, Cameradar les utilise.
Exemple de scan de ports personnalisés :
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
Vous pouvez remplacer les dictionnaires par défaut par vos propres fichiers de routes et d'identifiants.
Le dépôt fournit des dictionnaires de base dans le dossier 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
Utilisez des URL rtsps:// pour accéder aux flux RTSPS.
SSL_CERT_FILE vers le certificat de l'autorité de certification (ou le certificat du serveur pour une configuration auto-signée) lors de l'exécution de Cameradar.Exemple avec le binaire 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
Exemple avec 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 vous préférez ne pas utiliser SSL_CERT_FILE, ajoutez votre certificat d'autorité de certification au magasin de confiance du système utilisé par votre environnement d'exécution.
--skip-scanSi vous connaissez déjà les points de terminaison RTSP, vous pouvez ignorer la découverte et traiter chaque cible et port comme un candidat de flux. Ce mode n'exécute pas de découverte et peut être utile sur des réseaux restreints ou lorsque vous voulez attaquer un inventaire connu.
Ignorer la découverte signifie :
Exemple :
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
Dans cet exemple, Cameradar tente des attaques par dictionnaire contre les ports 554 et 8554 de 192.168.1.10.
--scannerCameradar prend en charge deux moteurs de découverte :
nmap (par défaut)masscanUtilisez nmap lorsque vous voulez une découverte RTSP plus fiable : il effectue une identification de service et peut mieux distinguer RTSP des autres ports ouverts.
Utilisez masscan lorsque vous scannez de très grands réseaux : il est généralement plus rapide et plus efficace à grande échelle, mais il ne fournit pas de découverte de service.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!WARNING]
--scan-speeds'applique uniquement au scannernmap.
--framecheckCertaines caméras ne suivent pas complètement le comportement RTSP et peuvent renvoyer 200 OK même lorsque la route ou les identifiants sont incorrects.
Lorsque vous activez --framecheck, Cameradar valide chaque 200 OK en tentant une lecture et en attendant un paquet RTP.
Framecheck signifie :
200 OK que lorsqu'il peut confirmer la génération d'images.--framecheck est désactivé par défaut car il ajoute des requêtes RTSP et peut augmenter considérablement la durée de l'attaque.
Exemple avec Docker :
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
Exemple avec binaire local et variable d'environnement :
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
Cameradar est un outil de test de pénétration. Ne scannez que les réseaux et appareils que vous possédez ou pour lesquels vous avez une autorisation explicite de tester. N'utilisez pas cet outil pour accéder à des systèmes ou flux non autorisés. En cas de doute, arrêtez-vous et obtenez une approbation écrite avant de scanner.
Cameradar présente les résultats dans une interface utilisateur terminale lisible.
Il enregistre les résultats dans la console.
Le rapport inclut les hôtes découverts, les modèles d'appareils identifiés, et les routes ou identifiants valides.
Si vous spécifiez un chemin pour le drapeau --output, Cameradar écrit également une playlist M3U avec les flux découverts.
Utilisez VLC Media Player pour vous connecter à un flux :
rtsp://username:password@address:port/route
Pour les points de terminaison RTSP sécurisés, utilisez :
rtsps://username:password@address:port/route
Le fichier peut contenir des IP, des noms d'hôte, des plages d'IP et des sous-réseaux. Séparez les entrées par des sauts de ligne. Exemple :
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
Lorsque vous utilisez --skip-scan, Cameradar développe chaque entrée en adresses IP explicites avant de construire la liste des cibles.
La référence complète de l'interface en ligne de commande et des variables d'environnement est maintenue dans la Référence de configuration. Cela inclut tous les drapeaux supportés, les valeurs par défaut, les valeurs acceptées et le mappage des variables d'environnement.
Exécutez la commande suivante à la racine du dépôt :
docker build . -t cameradar
L'image résultante est nommée cameradar.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestLe binaire cameradar se trouve maintenant dans $GOPATH/bin/cameradar.
Voir Dépannage et FAQ
Exécuter cameradar sur votre propre machine pour scanner les ports par défaut
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
Exécuter cameradar avec un fichier d'entrée, logs activés sur le port 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
Exécuter cameradar sur un sous-réseau avec des dictionnaires personnalisés, sur les ports 554, 5554, 8554, 322 et 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
Exécuter cameradar avec la découverte masscan
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
Copyright 2026 Ullaakut
Permission est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et/ou vendre des copies du Logiciel, et d'autoriser les personnes auxquelles le Logiciel est fourni à le faire, sous réserve des conditions suivantes :
L'avis de copyright ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS MAIS SANS S'Y LIMITER LES GARANTIES DE QUALITÉ MARCHANDE, D'ADAPTATION À UN USAGE PARTICULIER ET DE NON-CONTREFAÇON. EN AUCUN CAS LES AUTEURS OU TITULAIRES DE COPYRIGHT NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN RELATION AVEC LE LOGICIEL OU SON UTILISATION, OU D'AUTRES INTERACTIONS AVEC LE LOGICIEL.