mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/554-8554-pentesting-rtsp.md
This commit is contained in:
parent
710a72ea78
commit
6203542320
@ -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/)
|
||||
|
Loading…
x
Reference in New Issue
Block a user