
Cameradar invade câmeras de videovigilância RTSP
O Cameradar verifica endpoints RTSP em alvos autorizados e usa ataques de dicionário para forçar credenciais e rotas.
/live.sdp).

Instale o Docker e execute:
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
Exemplo:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
Isso verifica as portas 554, 5554 e 8554 na sub-rede alvo. Tenta enumerar streams RTSP. Para todas as opções, consulte a Referência de configuração.
Alvos podem ser CIDRs, IPs, intervalos de IP ou um hostname.
172.16.100.0/24172.16.100.10localhost172.16.100.10-20Para usar dicionários personalizados, monte-os e passe ambos os 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
Use esta opção se o Docker não estiver disponível ou se quiser uma compilação local.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestO binário cameradar agora está em $GOPATH/bin.
Para flags disponíveis, consulte a Referência de configuração.
Estes passos resumem uma configuração funcional do Termux para Android. Use o Termux 117 do F-Droid ou do site oficial do Termux, não do Google Play.
Instale os pacotes necessários no Termux:
pkg update
pkg install mc wget git nmap proot-distro
Instale o Alpine e faça login:
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
Crie um caminho de módulo e clone o repositório:
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 os dicionários e execute o binário:
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
Substitua <target> por um IP, intervalo, host ou sub-rede que você está autorizado a testar.
As portas padrão são 554, 5554, 8554, http, 322 e 8322.
Se você não especificar portas, o Cameradar usará essas.
Exemplo de verificação de portas personalizadas:
docker run --rm -t --net=host \
ullaakut/cameradar \
--ports "18554,19000-19010" \
--targets localhost
Você pode substituir os dicionários padrão pelos seus próprios arquivos de rotas e credenciais.
O repositório fornece dicionários básicos na pasta 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 acessar streams RTSPS.
SSL_CERT_FILE para o certificado da AC (ou certificado do servidor para configuração autoassinada) ao executar o Cameradar.Exemplo com binário 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
Exemplo com 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
Se preferir não usar SSL_CERT_FILE, adicione seu certificado AC ao repositório de confiança do sistema usado pelo seu ambiente de execução.
--skip-scanSe você já conhece os endpoints RTSP, pode pular a descoberta e tratar cada alvo e porta como um candidato a stream. Este modo não executa descoberta e pode ser útil em redes restritas ou quando você deseja atacar um inventário conhecido.
Pular descoberta significa:
Exemplo:
docker run --rm -t --net=host \
ullaakut/cameradar \
--skip-scan \
--ports "554,8554" \
--targets 192.168.1.10
Neste exemplo, o Cameradar tenta ataques de dicionário nas portas 554 e 8554 de 192.168.1.10.
--scannerO Cameradar suporta dois backends de descoberta:
nmap (padrão)masscanUse nmap quando quiser uma descoberta RTSP mais confiável: ele realiza identificação de serviço e pode distinguir melhor RTSP de outras portas abertas.
Use masscan ao verificar redes muito grandes: geralmente é mais rápido e eficiente em escala, mas não fornece descoberta de serviços.
docker run --rm -t --net=host \
ullaakut/cameradar \
--scanner masscan \
--ports "554,8554" \
--targets 192.168.1.0/24
[!WARNING]
--scan-speedse aplica apenas ao scannernmap.
--framecheckAlgumas câmeras não seguem totalmente o comportamento RTSP e podem retornar 200 OK mesmo quando a rota ou credenciais estão erradas.
Quando você ativa --framecheck, o Cameradar valida cada 200 OK tentando reprodução e aguardando um pacote RTP.
Framecheck significa:
200 OK quando pode confirmar a geração de quadros.--framecheck está desabilitado por padrão porque adiciona requisições RTSP e pode aumentar significativamente a duração do ataque.
Exemplo com Docker:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
Exemplo com binário local e variável de ambiente:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
O Cameradar é uma ferramenta de teste de penetração. Verifique apenas redes e dispositivos que você possui ou tem permissão explícita para testar. Não use esta ferramenta para acessar sistemas ou streams não autorizados. Se você não tiver certeza, pare e obtenha aprovação por escrito antes de verificar.
O Cameradar apresenta resultados em uma interface de terminal legível.
Ele registra os resultados no console.
O relatório inclui hosts descobertos, modelos de dispositivos identificados e rotas ou credenciais válidas.
Se você especificar um caminho para a flag --output, o Cameradar também escreve uma playlist M3U com as streams descobertas.
Use o VLC Media Player para conectar a uma stream:
rtsp://username:password@address:port/route
Para endpoints RTSP seguros, use:
rtsps://username:password@address:port/route
O arquivo pode conter IPs, hostnames, intervalos de IP e sub-redes. Separe as entradas com quebras de linha. Exemplo:
0.0.0.0
localhost
192.17.0.0/16
192.168.1.140-255
192.168.2-3.0-255
Quando você usa --skip-scan, o Cameradar expande cada entrada em endereços IP explícitos antes de construir a lista de alvos.
A referência completa da CLI e variáveis de ambiente é mantida na Referência de configuração.
Isso inclui todas as flags suportadas, padrões, valores aceitos e mapeamento de variáveis de ambiente.
Execute o seguinte comando na raiz do repositório:
docker build . -t cameradar
A imagem resultante é nomeada cameradar.
go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestO binário cameradar agora está em $GOPATH/bin/cameradar.
Veja Solução de problemas e FAQ
Executando o cameradar em sua própria máquina para verificar portas padrão
docker run --rm -t --net=host ullaakut/cameradar --targets localhost
Executando o cameradar com um arquivo de entrada, logs ativados na porta 8554
docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554
Executando o cameradar em uma sub-rede com dicionários personalizados, nas portas 554, 5554, 8554, 322 e 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
Executando o cameradar com descoberta masscan
docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554
Copyright 2026 Ullaakut
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM PROPÓSITO ESPECÍFICO E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.