554,8554 - Pentesting RTSP

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

मूल जानकारी

wikipedia से:

रियल टाइम स्ट्रीमिंग प्रोटोकॉल (RTSP) एक नेटवर्क नियंत्रण प्रोटोकॉल है जो मनोरंजन और संचार प्रणालियों में उपयोग के लिए डिज़ाइन किया गया है ताकि स्ट्रीमिंग मीडिया सर्वर को नियंत्रित किया जा सके। इस प्रोटोकॉल का उपयोग अंत बिंदुओं के बीच मीडिया सत्र स्थापित और नियंत्रित करने के लिए किया जाता है। मीडिया सर्वर के ग्राहक VHS-शैली कमांड जारी करते हैं, जैसे कि प्ले, रिकॉर्ड और पॉज़, ताकि सर्वर से ग्राहक तक मीडिया स्ट्रीमिंग का वास्तविक समय नियंत्रण (वीडियो ऑन डिमांड) या ग्राहक से सर्वर तक (वॉयस रिकॉर्डिंग) हो सके।

स्ट्रीमिंग डेटा के प्रसारण खुद RTSP का कार्य नहीं है। अधिकांश RTSP सर्वर रियल-टाइम ट्रांसपोर्ट प्रोटोकॉल (RTP) का उपयोग करते हैं जो रियल-टाइम नियंत्रण प्रोटोकॉल (RTCP) के साथ मीडिया स्ट्रीम वितरण के लिए होता है। हालांकि, कुछ विक्रेताओं द्वारा प्रोप्राइटरी ट्रांसपोर्ट प्रोटोकॉल का अमल किया जाता है। उदाहरण के लिए, RealNetworks के RTSP सर्वर सॉफ़्टवेयर ने भी RealNetworks का प्रोप्राइटरी रियल डेटा ट्रांसपोर्ट (RDT) का उपयोग किया।

डिफ़ॉल्ट पोर्ट: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

महत्वपूर्ण विवरण

RTSP HTTP के समान है, लेकिन यह विशेष रूप से मीडिया स्ट्रीमिंग के लिए डिज़ाइन किया गया है। यह एक सीधी विनिर्दिष्टि में परिभाषित है जिसे यहाँ पाया जा सकता है:

RTSP – RFC2326

उपकरणों को अप्रमाणित या प्रमाणित एक्सेस देने की अनुमति हो सकती है। जांचने के लिए, "DESCRIBE" अनुरोध भेजा जाता है। एक मौलिक उदाहरण नीचे दिखाया गया है:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2

ध्यान रखें, सही स्वरूपण में एक डबल "\r\n" शामिल करना एक संबंधित प्रतिक्रिया के लिए आवश्यक है। "200 OK" प्रतिक्रिया अप्रमाणित एक्सेस को सूचित करती है, जबकि "401 Unauthorized" प्रमाणीकरण की आवश्यकता को संकेत करती है, जो प्रकट करता है कि बेसिक या डाइजेस्ट प्रमाणीकरण की आवश्यकता है।

बेसिक प्रमाणीकरण के लिए, आप उपयोगकर्ता नाम और पासवर्ड को base64 में एन्कोड करते हैं और इसे अनुरोध में शामिल करते हैं जैसे:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==

इस उदाहरण में "व्यवस्थापक" और "1234" का उपयोग किया गया है। यहाँ एक 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 अनधिकृत" प्रतिक्रिया में प्रदान की गई प्रमाणीकरण विवरणों का सावधानीपूर्वक संभालना आवश्यक है।

यह अवलोकन RTSP स्ट्रीम तक पहुंचने की प्रक्रिया को सरलता और प्रारंभिक प्रयासों में उपयोगीता के लिए मूलभूत प्रमाणीकरण पर केंद्रित करता है।

गणना

हमें वैध विधियों और URL के बारे में जानकारी प्राप्त करनी होगी और पहुंच को ब्रूट-फोर्स (यदि आवश्यक हो) करने के लिए पहुंच प्राप्त करने का प्रयास करें।

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

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

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

Cameradar

  • किसी भी पहुंचने योग्य लक्ष्य पर खुले RTSP होस्ट का पता लगाएं

  • उनकी सार्वजनिक जानकारी प्राप्त करें (होस्टनाम, पोर्ट, कैमरा मॉडल, आदि)

  • उनके स्ट्रीम रूट (उदाहरण के लिए /live.sdp) प्राप्त करने के लिए स्वचालित शब्दकोश हमले चालू करें

  • कैमरों के उपयोगकर्ता नाम और पासवर्ड प्राप्त करने के लिए स्वचालित शब्दकोश हमले चालू करें

  • उनसे थंबनेल उत्पन्न करें ताकि जांच सकें कि स्ट्रीम वैध है और उनकी सामग्री का त्वरित पूर्वावलोकन हो

  • यह जांचने के लिए एक जीस्ट्रीमर पाइपलाइन बनाने का प्रयास करें कि वे सही ढंग से एन्कोड हैं

  • Cameradar द्वारा प्राप्त सभी जानकारियों का सारांश प्रिंट करें

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated