6.6 KiB
554,8554 - Pentesting RTSP
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Verifique os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
Do wikipedia:
O Protocolo de Streaming em Tempo Real (RTSP) é um protocolo de controle de rede projetado para uso em sistemas de entretenimento e comunicações para controlar servidores de mídia de streaming. O protocolo é usado para estabelecer e controlar sessões de mídia entre pontos finais. Clientes de servidores de mídia emitem comandos no estilo VHS, como reproduzir, gravar e pausar, para facilitar o controle em tempo real do streaming de mídia do servidor para um cliente (Vídeo Sob Demanda) ou de um cliente para o servidor (Gravação de Voz).
A transmissão de dados de streaming em si não é uma tarefa do RTSP. A maioria dos servidores RTSP usa o Protocolo de Transporte em Tempo Real (RTP) em conjunto com o Protocolo de Controle em Tempo Real (RTCP) para a entrega de fluxo de mídia. No entanto, alguns fornecedores implementam protocolos de transporte proprietários. O software do servidor RTSP da RealNetworks, por exemplo, também usava o Transporte de Dados Real proprietário da RealNetworks (RDT).
Portas padrão: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Detalhes Principais
RTSP é semelhante ao HTTP, mas projetado especificamente para streaming de mídia. É definido em uma especificação direta que pode ser encontrada aqui:
Dispositivos podem permitir acesso não autenticado ou autenticado. Para verificar, é enviada uma solicitação "DESCRIBE". Um exemplo básico é mostrado abaixo:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\n
Lembre-se, a formatação correta inclui um duplo "\r\n" para uma resposta consistente. Uma resposta "200 OK" indica acesso não autenticado, enquanto "401 Unauthorized" sinaliza a necessidade de autenticação, revelando se é necessária autenticação Básica ou Digest.
Para autenticação Básica, você codifica o nome de usuário e senha em base64 e os inclui na solicitação da seguinte forma:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n
Este exemplo usa "admin" e "1234" para as credenciais. Aqui está um script Python para enviar tal solicitação:
import socket
req = "DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.1.1", 554))
s.sendall(req)
data = s.recv(1024)
print(data)
Autenticação básica é mais simples e preferida. A autenticação digest requer manipulação cuidadosa dos detalhes de autenticação fornecidos na resposta "401 Não autorizado".
Esta visão geral simplifica o processo de acesso a fluxos RTSP, focando na autenticação básica por sua simplicidade e praticidade em tentativas iniciais.
Enumeração
Vamos obter informações sobre os métodos válidos e URLs suportados e tentar forçar o acesso (se necessário) para obter acesso ao conteúdo.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
Outros programas úteis
Para fazer brute force: https://github.com/Tek-Security-Group/rtsp_authgrinder
- Detectar hosts RTSP abertos em qualquer alvo acessível
- Obter suas informações públicas (nome do host, porta, modelo da câmera, etc.)
- Lançar ataques de dicionário automatizados para obter a rota do stream (por exemplo /live.sdp)
- Lançar ataques de dicionário automatizados para obter o nome de usuário e senha das câmeras
- Gerar miniaturas para verificar se os streams são válidos e ter uma prévia rápida do conteúdo
- Tentar criar um pipeline Gstreamer para verificar se estão codificados corretamente
- Imprimir um resumo de todas as informações que o Cameradar conseguiu obter
Referências
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras formas de apoiar o HackTricks:
- Se você deseja ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF, verifique os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os repositórios HackTricks e HackTricks Cloud.