# 554,8554 - Pentesting RTSP {% hint style="success" %} Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %} ## Temel Bilgiler From [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol): > **Gerçek Zamanlı Akış Protokolü** (**RTSP**), akış medya sunucularını kontrol etmek için eğlence ve iletişim sistemlerinde kullanılmak üzere tasarlanmış bir ağ kontrol protokolüdür. Protokol, uç noktalar arasında medya oturumları kurmak ve kontrol etmek için kullanılır. Medya sunucularının istemcileri, sunucudan bir istemciye (Video On Demand) veya bir istemciden sunucuya (Ses Kaydı) medya akışını gerçek zamanlı olarak kontrol etmek için oynatma, kaydetme ve duraklatma gibi VHS tarzı komutlar verir. > > Akış verilerinin iletimi, RTSP'nin bir görevi değildir. Çoğu RTSP sunucusu, medya akışı teslimatı için Gerçek Zamanlı Taşıma Protokolü (RTP) ile birlikte Gerçek Zamanlı Kontrol Protokolü (RTCP) kullanır. Ancak, bazı satıcılar özel taşıma protokolleri uygular. Örneğin, RealNetworks'ten gelen RTSP sunucu yazılımı, aynı zamanda RealNetworks'ün özel Gerçek Veri Taşıma (RDT) protokolünü de kullanmaktadır. **Varsayılan portlar:** 554,8554 ``` PORT STATE SERVICE 554/tcp open rtsp ``` ## Ana Detaylar **RTSP**, HTTP'ye benzer ancak medya akışı için özel olarak tasarlanmıştır. Burada bulunabilen basit bir spesifikasyonda tanımlanmıştır: [RTSP – RFC2326](https://tools.ietf.org/html/rfc2326) Cihazlar **kimlik doğrulamasız** veya **kimlik doğrulamalı** erişime izin verebilir. Kontrol etmek için bir "DESCRIBE" isteği gönderilir. Aşağıda basit bir örnek gösterilmektedir: `DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r` Doğru formatlamanın, tutarlı bir yanıt için çift "\r\n" içerdiğini unutmayın. "200 OK" yanıtı **kimlik doğrulamasız erişimi** gösterirken, "401 Unauthorized" kimlik doğrulamasının gerekli olduğunu belirtir ve **Basic** veya **Digest authentication** gerekip gerekmediğini ortaya çıkarır. **Basic authentication** için, kullanıcı adı ve şifreyi base64 formatında kodlayarak isteğe dahil edersiniz: `DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r` Bu örnek, kimlik bilgileri olarak "admin" ve "1234" kullanmaktadır. İşte böyle bir isteği göndermek için bir **Python scripti**: ```python import socket req = "DESCRIBE rtsp://: 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 edilen bir yöntemdir. **Özet kimlik doğrulama**, "401 Yetkisiz" yanıtında sağlanan kimlik doğrulama ayrıntılarının dikkatli bir şekilde işlenmesini gerektirir. Bu genel bakış, RTSP akışlarına erişim sürecini basitleştirir ve ilk denemelerdeki basitliği ve pratikliği nedeniyle **Temel kimlik doğrulama** üzerine odaklanır. ## Sayım Geçerli yöntemler ve desteklenen URL'ler hakkında bilgi alalım ve içeriğe erişim sağlamak için (gerekirse) brute-force denemesi yapalım. ```bash nmap -sV --script "rtsp-*" -p ``` ### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp) ### **Diğer faydalı programlar** Bruteforce için: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder) [**Cameradar**](https://github.com/Ullaakut/cameradar) * Erişilebilir hedeflerde açık RTSP sunucularını tespit et * Kamuya açık bilgilerini al (hostname, port, kamera modeli, vb.) * Akış yolunu elde etmek için otomatik sözlük saldırıları başlat (örneğin /live.sdp) * Kameraların kullanıcı adı ve şifresini elde etmek 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 kodlanıp kodlanmadıklarını kontrol etmek için bir Gstreamer boru hattı oluşturmaya çalış * Cameradar'ın elde edebileceği tüm bilgilerin bir özetini yazdır ## Referanslar * [https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol) * [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/) * [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar) {% hint style="success" %} AWS Hacking öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** * **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
{% endhint %}