
Cameradar hackt sich in RTSP-Videoüberwachungskameras
Cameradar scannt RTSP-Endpunkte auf autorisierten Zielen und nutzt Wörterbuchangriffe, um deren Anmeldedaten und Routen zu erraten.
/live.sdp).

Installieren Sie Docker und führen Sie aus:
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
Beispiel:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
Dies scannt die Ports 554, 5554 und 8554 im Zielsubnetz. Es versucht, RTSP-Streams zu ermitteln. Für alle Optionen siehe Konfigurationsreferenz.
Ziele können CIDRs, IPs, IP-Bereiche oder ein Hostname sein.
172.16.100.0/24172.16.100.10localhost172.16.100.10-20Um benutzerdefinierte Wörterbücher zu verwenden, mounten Sie diese und übergeben Sie beide Flags:
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
Nutzen Sie diese Option, wenn Docker nicht verfügbar ist oder Sie eine lokale Kompilierung wünschen.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestDie cameradar-Binärdatei befindet sich nun in Ihrem $GOPATH/bin.
Für verfügbare Flags siehe Konfigurationsreferenz.
Diese Schritte fassen eine funktionierende Termux-Einrichtung für Android zusammen. Verwenden Sie Termux 117 von F-Droid oder der offiziellen Termux-Website, nicht aus dem Google Play Store.
Installieren Sie die erforderlichen Pakete in Termux:
pkg update
pkg install mc wget git nmap proot-distro
Installieren Sie Alpine und melden Sie sich an:
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
Erstellen Sie einen Modulpfad und klonen Sie das Repository:
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
Kopieren Sie die Wörterbücher und führen Sie die Binärdatei aus:
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
Ersetzen Sie <target> durch eine IP, einen Bereich, einen Host oder ein Subnetz, das Sie testen dürfen.
Die Standard-Ports sind 554, 5554, 8554, http, 322 und 8322.
Wenn Sie keine Ports angeben, verwendet Cameradar diese.
Beispiel für das Scannen benutzerdefinierter Ports:
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
Sie können die Standard-Wörterbücher durch Ihre eigenen Routen- und Anmeldedatendateien ersetzen.
Das Repository enthält Basis-Wörterbücher im Ordner 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
Verwenden Sie rtsps://-URLs, um auf RTSPS-Streams zuzugreifen.
SSL_CERT_FILE auf das CA-Zertifikat (oder Serverzertifikat für eine selbstsignierte Einrichtung), wenn Sie Cameradar ausführen.Beispiel mit lokaler Binärdatei:
SSL_CERT_FILE=/path/to/ca-or-server.crt \
cameradar \
--targets localhost \
--ports 8322 \
--skip-scan \
--custom-routes routes.txt \
--custom-credentials credentials.json
Beispiel mit 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
Wenn Sie SSL_CERT_FILE nicht verwenden möchten, fügen Sie Ihr CA-Zertifikat dem System-Trust-Store hinzu, den Ihre Laufzeitumgebung verwendet.
--skip-scanWenn Sie die RTSP-Endpunkte bereits kennen, können Sie die Erkennung überspringen und jedes Ziel und jeden Port als Stream-Kandidaten behandeln. Dieser Modus führt keine Erkennung durch und kann in eingeschränkten Netzwerken nützlich sein oder wenn Sie einen bekannten Bestand angreifen möchten.
Das Überspringen der Erkennung bedeutet:
Beispiel:
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
In diesem Beispiel führt Cameradar Wörterbuchangriffe gegen die Ports 554 und 8554 von 192.168.1.10 durch.
--scannerCameradar unterstützt zwei Erkennungs-Backends:
nmap (Standard)masscanVerwenden Sie nmap, wenn Sie eine zuverlässigere RTSP-Erkennung wünschen: Es führt eine Service-Identifikation durch und kann RTSP besser von anderen offenen Ports unterscheiden.
Verwenden Sie masscan beim Scannen sehr großer Netzwerke: Es ist in der Regel schneller und effizienter im großen Maßstab, bietet aber keine Service-Erkennung.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!WARNING]
--scan-speedgilt nur für dennmap-Scanner.
--framecheckEinige Kameras befolgen das RTSP-Verhalten nicht vollständig und können selbst dann 200 OK zurückgeben, wenn die Route oder die Anmeldedaten falsch sind.
Wenn Sie --framecheck aktivieren, validiert Cameradar jedes 200 OK, indem es eine Wiedergabe versucht und auf ein RTP-Paket wartet.
Framecheck bedeutet:
200 OK nur, wenn es die Erzeugung von Frames bestätigen kann.--framecheck ist standardmäßig deaktiviert, da es RTSP-Anfragen hinzufügt und die Angriffsdauer erheblich verlängern kann.
Beispiel mit Docker:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
Beispiel mit lokaler Binärdatei und Umgebungsvariable:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
Cameradar ist ein Penetrationstest-Tool. Scannen Sie nur Netzwerke und Geräte, die Ihnen gehören oder für die Sie ausdrücklich die Erlaubnis zum Testen haben. Verwenden Sie dieses Tool nicht, um auf nicht autorisierte Systeme oder Streams zuzugreifen. Wenn Sie unsicher sind, halten Sie an und holen Sie schriftliche Genehmigung ein, bevor Sie scannen.
Cameradar präsentiert die Ergebnisse in einer lesbaren Terminal-Benutzeroberfläche.
Es protokolliert die Ergebnisse auf der Konsole.
Der Bericht enthält gefundene Hosts, identifizierte Gerätemodelle sowie gültige Routen oder Anmeldedaten.
Wenn Sie einen Pfad für das --output-Flag angeben, schreibt Cameradar zusätzlich eine M3U-Playlist mit den gefundenen Streams.
Verwenden Sie VLC Media Player, um eine Verbindung zu einem Stream herzustellen:
rtsp://username:password@address:port/route
Für sichere RTSP-Endpunkte verwenden Sie:
rtsps://username:password@address:port/route
Die Datei kann IPs, Hostnamen, IP-Bereiche und Subnetze enthalten. Trennen Sie Einträge mit Zeilenumbrüchen. Beispiel:
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
Wenn Sie --skip-scan verwenden, erweitert Cameradar jeden Eintrag in explizite IP-Adressen, bevor die Zielliste erstellt wird.
Die vollständige Referenz der CLI- und Umgebungsvariablen wird in der Konfigurationsreferenz verwaltet.
Dies umfasst alle unterstützten Flags, Standardwerte, akzeptierte Werte und die Zuordnung von Umgebungsvariablen.
Führen Sie den folgenden Befehl im Repository-Stammverzeichnis aus:
docker build . -t cameradar
Das resultierende Image heißt cameradar.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestDie cameradar-Binärdatei befindet sich nun in $GOPATH/bin/cameradar.
Siehe Fehlerbehebung & FAQ
Ausführen von cameradar auf Ihrem eigenen Rechner, um nach Standard-Ports zu scannen
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
Ausführen von cameradar mit einer Eingabedatei, Logs aktiviert, auf Port 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
Ausführen von cameradar in einem Subnetz mit benutzerdefinierten Wörterbüchern, auf den Ports 554, 5554, 8554, 322 und 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
Ausführen von cameradar mit masscan-Erkennung
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
Copyright 2026 Ullaakut
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, diese Rechte unter den folgenden Bedingungen zu gewähren:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD OHNE MÄNGELGEWÄHR UND OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG BEREITGESTELLT, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHEN.