Translated ['src/network-services-pentesting/554-8554-pentesting-rtsp.md

This commit is contained in:
Translator 2025-07-08 16:59:00 +00:00
parent 710a72ea78
commit 6203542320

View File

@ -17,21 +17,21 @@ PORT STATE SERVICE
```
## 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**, HTTP'ye benzer ancak özellikle medya akışı için 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:
Cihazlar **kimlik doğrulaması yapılmamış** veya **kimlik doğrulaması yapılmış** erişime izin verebilir. Kontrol etmek için bir "DESCRIBE" isteği gönderilir. Aşağıda basit bir örnek gösterilmektedir:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2`
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.
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ı yapılmamış erişimi** gösterirken, "401 Unauthorized" kimlik doğrulaması gerektiğini belirtir ve **Basic** veya **Digest authentication** gerekip gerekmediğini ortaya çıkarır.
**Basic authentication** için, kullanıcı adı ve şifreyi base64 ile kodlayarak isteğe dahil edersiniz:
**Basic authentication** için, kullanıcı adı ve şifreyi base64 formatında kodlayarak isteğe dahil edersiniz:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==`
Bu örnek, kimlik bilgileri için "admin" ve "1234" kullanmaktadır. İşte böyle bir isteği göndermek için bir **Python scripti**:
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://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"
@ -41,7 +41,7 @@ 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.
**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 detaylarının dikkatli bir şekilde ele alınmasını 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.
@ -51,23 +51,32 @@ Geçerli yöntemler ve desteklenen URL'ler hakkında bilgi alalım ve içeriğe
```bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
#### RTSP Akışını [ffplay](https://ffmpeg.org/ffplay.html) ile Görüntüleme
Geçerli bir RTSP yolu (örneğin, `/mpeg4`, `/live.sdp`) keşfettikten ve erişimi doğruladıktan (kimlik doğrulamasız veya kimlik bilgileri ile) sonra, akışı yayınlamak için `ffplay` kullanabilirsiniz:
```bash
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
```
- `-rtsp_transport tcp`: Daha güvenilir akış için UDP yerine TCP kullanın
- `-x`, `-y`: Video çözünürlüğünü kontrol etmek için isteğe bağlı bayraklar
- Gerekli yerlerde `<IP>` ve yolu değiştirin
### [Brute Force](../generic-hacking/brute-force.md#rtsp)
### **Diğer faydalı programlar**
### **Diğer yararlı 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 herhangi bir hedefte 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 edebildiği tüm bilgilerin bir özetini yazdır
- Erişilebilir herhangi bir hedefte açık RTSP sunucularını tespit edin
- Kamu bilgilerini (hostname, port, kamera modeli vb.) alın
- Akış yolunu elde etmek için otomatik sözlük saldırıları başlatın (örneğin /live.sdp)
- Kameraların kullanıcı adı ve şifresini elde etmek için otomatik sözlük saldırıları başlatın
- 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şturun
- Doğru bir şekilde kodlanıp kodlanmadıklarını kontrol etmek için bir Gstreamer boru hattı oluşturmaya çalışın
- Cameradar'ın elde edebildiği tüm bilgilerin bir özetini yazdırın
## Referanslar
## References
- [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/)