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

This commit is contained in:
Translator 2025-07-08 16:58:36 +00:00
parent f798a76999
commit 8910c187c0

View File

@ -8,7 +8,7 @@ From [wikipedia](https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol):
> **रियल टाइम स्ट्रीमिंग प्रोटोकॉल** (**RTSP**) एक नेटवर्क नियंत्रण प्रोटोकॉल है जिसे मनोरंजन और संचार प्रणालियों में स्ट्रीमिंग मीडिया सर्वरों को नियंत्रित करने के लिए डिज़ाइन किया गया है। यह प्रोटोकॉल अंत बिंदुओं के बीच मीडिया सत्र स्थापित करने और नियंत्रित करने के लिए उपयोग किया जाता है। मीडिया सर्वरों के ग्राहक VHS-शैली के आदेश जारी करते हैं, जैसे कि प्ले, रिकॉर्ड और पॉज़, ताकि सर्वर से ग्राहक (वीडियो ऑन डिमांड) या ग्राहक से सर्वर (वॉयस रिकॉर्डिंग) तक मीडिया स्ट्रीमिंग के वास्तविक समय नियंत्रण को सुविधाजनक बनाया जा सके।
>
> स्ट्रीमिंग डेटा के संचरण का कार्य RTSP का नहीं है। अधिकांश RTSP सर्वर मीडिया स्ट्रीम वितरण के लिए रियल-टाइम ट्रांसपोर्ट प्रोटोकॉल (RTP) के साथ रियल-टाइम कंट्रोल प्रोटोकॉल (RTCP) का उपयोग करते हैं। हालाँकि, कुछ विक्रेता स्वामित्व वाले परिवहन प्रोटोकॉल को लागू करते हैं। उदाहरण के लिए, RealNetworks का RTSP सर्वर सॉफ़्टवेयर भी RealNetworks के स्वामित्व वाले रियल डेटा ट्रांसपोर्ट (RDT) का उपयोग करता है।
> स्ट्रीमिंग डेटा के संचरण का कार्य RTSP का नहीं है। अधिकांश RTSP सर्वर मीडिया स्ट्रीम डिलीवरी के लिए रियल-टाइम ट्रांसपोर्ट प्रोटोकॉल (RTP) के साथ रियल-टाइम कंट्रोल प्रोटोकॉल (RTCP) का उपयोग करते हैं। हालाँकि, कुछ विक्रेता स्वामित्व वाले परिवहन प्रोटोकॉल को लागू करते हैं। उदाहरण के लिए, RealNetworks का RTSP सर्वर सॉफ़्टवेयर भी RealNetworks के स्वामित्व वाले रियल डेटा ट्रांसपोर्ट (RDT) का उपयोग करता है।
**डिफ़ॉल्ट पोर्ट:** 554,8554
```
@ -21,11 +21,11 @@ PORT STATE SERVICE
[RTSP RFC2326](https://tools.ietf.org/html/rfc2326)
डिवाइस **अनधिकृत** या **अधिकृत** पहुँच की अनुमति दे सकते हैं। जाँच करने के लिए, एक "DESCRIBE" अनुरोध भेजा जाता है। एक बुनियादी उदाहरण नीचे दिखाया गया है:
डिवाइस **अनधिकृत** या **अधिकृत** पहुँच की अनुमति दे सकते हैं। जांचने के लिए, एक "DESCRIBE" अनुरोध भेजा जाता है। एक बुनियादी उदाहरण नीचे दिखाया गया है:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2`
याद रखें, सही प्रारूप में एक सुसंगत प्रतिक्रिया के लिए एक डबल "\r\n" शामिल होता है। "200 OK" प्रतिक्रिया **अनधिकृत पहुँच** को इंगित करती है, जबकि "401 Unauthorized" प्रमाणीकरण की आवश्यकता का संकेत देती है, यह प्रकट करती है कि **Basic** या **Digest authentication** की आवश्यकता है।
याद रखें, सही प्रारूप में एक निरंतर प्रतिक्रिया के लिए एक डबल "\r\n" शामिल होता है। "200 OK" प्रतिक्रिया **अनधिकृत पहुँच** को इंगित करती है, जबकि "401 Unauthorized" प्रमाणीकरण की आवश्यकता का संकेत देती है, यह प्रकट करती है कि **Basic** या **Digest authentication** की आवश्यकता है।
**Basic authentication** के लिए, आप उपयोगकर्ता नाम और पासवर्ड को base64 में एन्कोड करते हैं और इसे अनुरोध में इस तरह शामिल करते हैं:
@ -41,33 +41,42 @@ s.sendall(req)
data = s.recv(1024)
print(data)
```
**बुनियादी प्रमाणीकरण** सरल है और पसंदीदा है। **डाइजेस्ट प्रमाणीकरण** "401 Unauthorized" प्रतिक्रिया में प्रदान किए गए प्रमाणीकरण विवरणों को सावधानीपूर्वक संभालने की आवश्यकता होती है।
**बुनियादी प्रमाणीकरण** सरल और पसंदीदा है। **डाइजेस्ट प्रमाणीकरण** "401 Unauthorized" प्रतिक्रिया में प्रदान किए गए प्रमाणीकरण विवरणों को सावधानीपूर्वक संभालने की आवश्यकता होती है।
यह अवलोकन RTSP स्ट्रीम तक पहुँचने की प्रक्रिया को सरल बनाता है, इसकी सरलता और प्रारंभिक प्रयासों में व्यावहारिकता के लिए **बुनियादी प्रमाणीकरण** पर ध्यान केंद्रित करता है।
## गणना
## Enumeration
चलो मान्य तरीकों और URLs के बारे में जानकारी प्राप्त करें जो समर्थित हैं और सामग्री तक पहुँच प्राप्त करने के लिए (यदि आवश्यक हो) ब्रूट-फोर्स करने का प्रयास करें।
```bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
#### RTSP स्ट्रीम को [ffplay](https://ffmpeg.org/ffplay.html) के साथ देखना
एक बार जब आप एक मान्य RTSP पथ (जैसे, `/mpeg4`, `/live.sdp`) का पता लगा लेते हैं और पहुंच की पुष्टि कर लेते हैं (बिना प्रमाणीकरण या क्रेडेंशियल्स के साथ), तो आप फ़ीड स्ट्रीम करने के लिए `ffplay` का उपयोग कर सकते हैं:
```bash
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
```
- `-rtsp_transport tcp`: अधिक विश्वसनीय स्ट्रीमिंग के लिए UDP के बजाय TCP का उपयोग करें
- `-x`, `-y`: वीडियो रिज़ॉल्यूशन को नियंत्रित करने के लिए वैकल्पिक ध्वज
- आवश्यकतानुसार `<IP>` और पथ को बदलें
### [Brute Force](../generic-hacking/brute-force.md#rtsp)
### **अन्य उपयोगी कार्यक्रम**
Bruteforce करने के लिए: [https://github.com/Tek-Security-Group/rtsp_authgrinder](https://github.com/Tek-Security-Group/rtsp_authgrinder)
ब्रूटफोर्स करने के लिए: [https://github.com/Tek-Security-Group/rtsp_authgrinder](https://github.com/Tek-Security-Group/rtsp_authgrinder)
[**Cameradar**](https://github.com/Ullaakut/cameradar)
- किसी भी सुलभ लक्ष्य पर खुले RTSP होस्ट का पता लगाएं
- उनकी सार्वजनिक जानकारी प्राप्त करें (होस्टनम, पोर्ट, कैमरा मॉडल, आदि)
- उनकी सार्वजनिक जानकारी प्राप्त करें (होस्टनम, पोर्ट, कैमरा मॉडल, आदि)
- उनके स्ट्रीम रूट (उदाहरण के लिए /live.sdp) प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
- कैमरों के उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
- यह जांचने के लिए कि स्ट्रीम मान्य हैं और उनके सामग्री का त्वरित पूर्वावलोकन प्राप्त करने के लिए उनसे थंबनेल उत्पन्न करें
- यह जांचने के लिए Gstreamer पाइपलाइन बनाने का प्रयास करें कि क्या वे सही ढंग से एन्कोडेड हैं
- Cameradar द्वारा प्राप्त सभी जानकारी का सारांश प्रिंट करें
- Cameradar द्वारा प्राप्त सभी सूचनाओं का सारांश प्रिंट करें
## संदर्भ
## 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/)