
cameradar v6.2.1
Cameradar s'infiltre dans les caméras de vidéosurveillance RTSP
Cameradar
Outil d'accès aux flux 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.
Ce que fait Cameradar
- Détecte les hôtes RTSP ouverts sur les cibles accessibles.
- Détecte le modèle de l'appareil qui diffuse le flux RTSP.
- Tente une découverte basée sur un dictionnaire des routes de flux (par exemple,
/live.sdp). - Tente une découverte basée sur un dictionnaire des identifiants de caméra.
- Produit un rapport des résultats.

Table des matières
- Démarrage rapide avec Docker
- Installation du binaire
- Installation sur Android (Termux)
- Configuration
- Sécurité et utilisation responsable
- Sortie
- Vérifier l'accès à la caméra
- Options en ligne de commande et variables d'environnement
- Format du fichier d'entrée
- Compiler et contribuer
- Questions fréquentes
- Exemples
- Licence

Démarrage rapide avec Docker
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.
- Sous-réseau :
172.16.100.0/24 - IP :
172.16.100.10 - Hôte :
localhost - Plage :
172.16.100.10-20
- Sous-réseau :
-
Pour 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
Installation du binaire
Utilisez cette option si Docker n'est pas disponible ou si vous voulez une compilation locale.
Dépendances
- Go 1.25 ou ultérieur
Étapes
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
Le binaire cameradar se trouve maintenant dans votre $GOPATH/bin.
Pour les drapeaux disponibles, consultez la Référence de configuration.
Installation sur Android (Termux)
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.
1) Configurer Termux et Alpine
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
2) Installer les outils de compilation dans Alpine
apk add wget git go gcc clang musl-dev make
3) Compiler Cameradar
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
4) Exécuter Cameradar
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.
Configuration
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
RTSPS et certificats TLS
Utilisez des URL rtsps:// pour accéder aux flux RTSPS.
- Si le certificat du flux est émis par une autorité de certification publique de confiance, aucune configuration supplémentaire n'est nécessaire.
- Si le certificat du flux est auto-signé ou émis par une autorité de certification privée, le magasin de confiance du système d'exploitation peut le rejeter.
- Dans ce cas, pointez
SSL_CERT_FILEvers 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.
Ignorer la découverte avec --skip-scan
Si 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 :
- Cameradar n'exécute pas de découverte et ne détecte pas les modèles d'appareils.
- Les cibles sont résolues en adresses IP. Les noms d'hôte sont résolus via DNS.
- Les blocs CIDR et les plages IPv4 sont étendus à chaque adresse de la plage.
- Les grandes plages créent de nombreuses cibles, utilisez-les donc avec précaution.
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.
Choisir le scanner de découverte avec --scanner
Cameradar prend en charge deux moteurs de découverte :
nmap(par défaut)masscan
Utilisez 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.
Réduire les faux positifs avec --framecheck
Certaines 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 :
- Cameradar n'accepte
200 OKque lorsqu'il peut confirmer la génération d'images. - Si aucun paquet RTP n'arrive, Cameradar traite le résultat comme un faux positif et continue l'attaque.
- Les vérifications de route restent compatibles avec les défis d'authentification observés lors du sondage.
--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"
Sécurité et utilisation responsable
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.
Sortie
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.
Vérifier l'accès à la caméra
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
Format du fichier d'entrée
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.
Options en ligne de commande et variables d'environnement
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.
Compiler et contribuer
Compilation Docker
Exécutez la commande suivante à la racine du dépôt :
docker build . -t cameradar
L'image résultante est nommée cameradar.
Compilation Go
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest
Le binaire cameradar se trouve maintenant dans $GOPATH/bin/cameradar.
Questions fréquentes
Voir Dépannage et FAQ
Exemples
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
Licence
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.