554,8554 - Pentesting RTSP
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
From wikipedia:
रियल टाइम स्ट्रीमिंग प्रोटोकॉल (RTSP) एक नेटवर्क नियंत्रण प्रोटोकॉल है जिसे मनोरंजन और संचार प्रणालियों में स्ट्रीमिंग मीडिया सर्वरों को नियंत्रित करने के लिए डिज़ाइन किया गया है। यह प्रोटोकॉल अंत बिंदुओं के बीच मीडिया सत्र स्थापित करने और नियंत्रित करने के लिए उपयोग किया जाता है। मीडिया सर्वरों के ग्राहक VHS-शैली के आदेश जारी करते हैं, जैसे कि प्ले, रिकॉर्ड और पॉज़, ताकि सर्वर से ग्राहक (वीडियो ऑन डिमांड) या ग्राहक से सर्वर (वॉयस रिकॉर्डिंग) तक मीडिया स्ट्रीमिंग के वास्तविक समय नियंत्रण को सुविधाजनक बनाया जा सके।
स्ट्रीमिंग डेटा के संचरण का कार्य RTSP का नहीं है। अधिकांश RTSP सर्वर मीडिया स्ट्रीम डिलीवरी के लिए रियल-टाइम ट्रांसपोर्ट प्रोटोकॉल (RTP) के साथ रियल-टाइम कंट्रोल प्रोटोकॉल (RTCP) का उपयोग करते हैं। हालाँकि, कुछ विक्रेता स्वामित्व वाले परिवहन प्रोटोकॉल को लागू करते हैं। उदाहरण के लिए, RealNetworks का RTSP सर्वर सॉफ़्टवेयर भी RealNetworks के स्वामित्व वाले रियल डेटा ट्रांसपोर्ट (RDT) का उपयोग करता है।
डिफ़ॉल्ट पोर्ट: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
Key Details
RTSP HTTP के समान है लेकिन विशेष रूप से मीडिया स्ट्रीमिंग के लिए डिज़ाइन किया गया है। इसे एक सरल विनिर्देशन में परिभाषित किया गया है जिसे यहाँ पाया जा सकता है:
डिवाइस अनधिकृत या अधिकृत पहुँच की अनुमति दे सकते हैं। जांचने के लिए, एक "DESCRIBE" अनुरोध भेजा जाता है। एक बुनियादी उदाहरण नीचे दिखाया गया है:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
याद रखें, सही प्रारूप में एक निरंतर प्रतिक्रिया के लिए एक डबल "\r\n" शामिल होता है। "200 OK" प्रतिक्रिया अनधिकृत पहुँच को इंगित करती है, जबकि "401 Unauthorized" प्रमाणीकरण की आवश्यकता का संकेत देती है, यह प्रकट करती है कि Basic या Digest authentication की आवश्यकता है।
Basic authentication के लिए, आप उपयोगकर्ता नाम और पासवर्ड को base64 में एन्कोड करते हैं और इसे अनुरोध में इस तरह शामिल करते हैं:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
यह उदाहरण "admin" और "1234" को क्रेडेंशियल के रूप में उपयोग करता है। यहाँ एक Python script है जो ऐसा अनुरोध भेजने के लिए है:
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)
बुनियादी प्रमाणीकरण सरल और पसंदीदा है। डाइजेस्ट प्रमाणीकरण "401 Unauthorized" प्रतिक्रिया में प्रदान किए गए प्रमाणीकरण विवरणों को सावधानीपूर्वक संभालने की आवश्यकता होती है।
यह अवलोकन RTSP स्ट्रीम तक पहुँचने की प्रक्रिया को सरल बनाता है, इसकी सरलता और प्रारंभिक प्रयासों में व्यावहारिकता के लिए बुनियादी प्रमाणीकरण पर ध्यान केंद्रित करता है।
Enumeration
चलो मान्य तरीकों और URLs के बारे में जानकारी प्राप्त करें जो समर्थित हैं और सामग्री तक पहुँच प्राप्त करने के लिए (यदि आवश्यक हो) ब्रूट-फोर्स करने का प्रयास करें।
nmap -sV --script "rtsp-*" -p <PORT> <IP>
RTSP स्ट्रीम को ffplay के साथ देखना
एक बार जब आप एक मान्य RTSP पथ (जैसे, /mpeg4
, /live.sdp
) का पता लगा लेते हैं और पहुंच की पुष्टि कर लेते हैं (बिना प्रमाणीकरण या क्रेडेंशियल्स के साथ), तो आप फ़ीड स्ट्रीम करने के लिए ffplay
का उपयोग कर सकते हैं:
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
-rtsp_transport tcp
: अधिक विश्वसनीय स्ट्रीमिंग के लिए UDP के बजाय TCP का उपयोग करें-x
,-y
: वीडियो रिज़ॉल्यूशन को नियंत्रित करने के लिए वैकल्पिक ध्वज- आवश्यकतानुसार
<IP>
और पथ को बदलें
Brute Force
अन्य उपयोगी कार्यक्रम
ब्रूटफोर्स करने के लिए: https://github.com/Tek-Security-Group/rtsp_authgrinder
- किसी भी सुलभ लक्ष्य पर खुले RTSP होस्ट का पता लगाएं
- उनकी सार्वजनिक जानकारी प्राप्त करें (होस्टनाम, पोर्ट, कैमरा मॉडल, आदि)
- उनके स्ट्रीम रूट (उदाहरण के लिए /live.sdp) प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
- कैमरों के उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
- यह जांचने के लिए कि स्ट्रीम मान्य हैं और उनके सामग्री का त्वरित पूर्वावलोकन प्राप्त करने के लिए उनसे थंबनेल उत्पन्न करें
- यह जांचने के लिए Gstreamer पाइपलाइन बनाने का प्रयास करें कि क्या वे सही ढंग से एन्कोडेड हैं
- Cameradar द्वारा प्राप्त सभी सूचनाओं का सारांश प्रिंट करें
References
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।