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 का समर्थन करें

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 के समान है लेकिन विशेष रूप से मीडिया स्ट्रीमिंग के लिए डिज़ाइन किया गया है। इसे एक सरल विनिर्देशन में परिभाषित किया गया है जिसे यहाँ पाया जा सकता है:

RTSP – RFC2326

डिवाइस अनधिकृत या अधिकृत पहुँच की अनुमति दे सकते हैं। जांचने के लिए, एक "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 है जो ऐसा अनुरोध भेजने के लिए है:

python
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 के बारे में जानकारी प्राप्त करें जो समर्थित हैं और सामग्री तक पहुँच प्राप्त करने के लिए (यदि आवश्यक हो) ब्रूट-फोर्स करने का प्रयास करें।

bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>

RTSP स्ट्रीम को ffplay के साथ देखना

एक बार जब आप एक मान्य 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

अन्य उपयोगी कार्यक्रम

ब्रूटफोर्स करने के लिए: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • किसी भी सुलभ लक्ष्य पर खुले RTSP होस्ट का पता लगाएं
  • उनकी सार्वजनिक जानकारी प्राप्त करें (होस्टनाम, पोर्ट, कैमरा मॉडल, आदि)
  • उनके स्ट्रीम रूट (उदाहरण के लिए /live.sdp) प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
  • कैमरों के उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए स्वचालित शब्दकोश हमले शुरू करें
  • यह जांचने के लिए कि स्ट्रीम मान्य हैं और उनके सामग्री का त्वरित पूर्वावलोकन प्राप्त करने के लिए उनसे थंबनेल उत्पन्न करें
  • यह जांचने के लिए Gstreamer पाइपलाइन बनाने का प्रयास करें कि क्या वे सही ढंग से एन्कोडेड हैं
  • Cameradar द्वारा प्राप्त सभी सूचनाओं का सारांश प्रिंट करें

References

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 का समर्थन करें