hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md

6.8 KiB
Raw Blame History

554,8554 - RTSP Pentesting

Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Temel Bilgiler

wikipedia'dan:

Gerçek Zamanlı Akış Protokolü (RTSP), eğlence ve iletişim sistemlerinde kullanılmak üzere tasarlanmış bir ağ kontrol protokolüdür. Protokol, uç noktalar arasında medya oturumlarını kurmak ve kontrol etmek için kullanılır. Medya sunucularının istemcileri, gerçek zamanlı olarak sunucudan istemciye (Video On Demand) veya istemciden sunucuya (Ses Kaydı) medya akışını kontrol etmek için oynat, kaydet ve duraklat gibi VHS tarzı komutlar verir.

Akış verilerinin iletimi RTSP'nin bir görevidir. Çoğu RTSP sunucusu, medya akışı teslimatı için Gerçek Zamanlı Taşıma Protokolü (RTP) ile Gerçek Zamanlı Kontrol Protokolü (RTCP) kullanır. Bununla birlikte, bazı satıcılar özel taşıma protokolleri uygular. Örneğin, RealNetworks'in RTSP sunucu yazılımı ayrıca RealNetworks'in özel Real Data Transport (RDT) protokolünü de kullanır.

Varsayılan portlar: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Ana Detaylar

RTSP, medya akışı için özel olarak tasarlanmış olan HTTP'ye benzer bir protokoldür. Basit bir spesifikasyonda tanımlanmıştır ve şurada bulunabilir:

RTSP RFC2326

Cihazlar kimlik doğrulamasız veya kimlik doğrulamalı erişime izin verebilir. Kontrol etmek için bir "DESCRIBE" isteği gönderilir. Temel bir örnek aşağıda gösterilmiştir:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r

Doğru biçimlendirme, tutarlı bir yanıt için çift "\r\n" içermelidir. "200 OK" yanıtı kimlik doğrulamasız erişimi gösterirken, "401 Unauthorized" kimlik doğrulaması gerektiğini belirtir ve Temel veya Digest kimlik doğrulamasının gerekip gerekmediğini ortaya çıkarır.

Temel kimlik doğrulaması için, kullanıcı adını ve şifreyi base64'e kodlarsınız ve isteğe şunları dahil edersiniz:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r

Bu örnek, kimlik bilgileri için "admin" ve "1234" kullanmaktadır. İşte böyle bir istek göndermek için bir Python betiği:

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)

Temel kimlik doğrulama daha basit ve tercih edilir. Özet kimlik doğrulama ise "401 Yetkisiz" yanıtında sağlanan kimlik doğrulama ayrıntılarının dikkatli bir şekilde ele alınmasını gerektirir.

Bu genel bakış, RTSP akışlarına erişim sürecini basitleştirir ve başlangıç denemelerindeki basitlik ve pratiklik nedeniyle Temel kimlik doğrulamasına odaklanır.

Numaralandırma

Geçerli yöntemler ve URL'ler hakkında bilgi edinelim ve içeriğe erişmek için gerekirse erişimi zorlamak için erişim (gerekiyorsa) hakkında bilgi edinelim.

nmap -sV --script "rtsp-*" -p <PORT> <IP>

Kaba Kuvvet

Diğer faydalı programlar

Kaba kuvvet saldırısı için: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Erişilebilir hedeflerde açık RTSP ana bilgisayarlarını tespit et
  • Genel bilgilerini al (ana bilgisayar adı, port, kamera modeli, vb.)
  • Akış rotasını almak için otomatik sözlük saldırıları başlat (örneğin /live.sdp)
  • Kameraların kullanıcı adı ve şifresini almak için otomatik sözlük saldırıları başlat
  • Akışların geçerli olup olmadığını kontrol etmek ve içeriklerinin hızlı bir önizlemesini almak için onlardan küçük resimler oluştur
  • Doğru bir şekilde kodlandığını kontrol etmek için bir Gstreamer boru hattı oluştur
  • Cameradar'ın alabileceği tüm bilgilerin özetini yazdır

Referanslar

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları: