554,8554 - Pentesting RTSP

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Basiese Inligting

Vanaf wikipedia:

Die Real Time Streaming Protocol (RTSP) is 'n netwerkbeheerprotokol wat ontwerp is vir gebruik in vermaak- en kommunikasiestelsels om die stroommediaserwers te beheer. Die protokol word gebruik om media-sessies tussen eindpunte te vestig en te beheer. Kliënte van mediaserwers gee VHS-styl-opdragte, soos speel, opneem en pauze, om die regstreekse beheer van die media wat vanaf die bediener na 'n kliënt stroom (Video On Demand) of vanaf 'n kliënt na die bediener (Stemopname) te fasiliteer.

Die oordrag van stroomdata self is nie 'n taak van RTSP nie. Die meeste RTSP-bedieners gebruik die Real-time Transport Protocol (RTP) saam met die Real-time Control Protocol (RTCP) vir die aflewering van mediastroom. Sommige verskaffers implementeer egter eiendomsvervoerprotokolle. Die RTSP-bedienersagteware van RealNetworks gebruik byvoorbeeld ook RealNetworks se eiendoms Real Data Transport (RDT).

Verstekpoorte: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Sleutelbesonderhede

RTSP is soortgelyk aan HTTP, maar spesifiek ontwerp vir mediastroom. Dit is gedefinieer in 'n eenvoudige spesifikasie wat hier gevind kan word:

RTSP - RFC2326

Toestelle kan onbevestigde of bevestigde toegang toelaat. Om te kontroleer, word 'n "BESKRYF" versoek gestuur. 'n Basiese voorbeeld word hieronder getoon:

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

Onthou, die korrekte formatering sluit 'n dubbele "\r\n" in vir 'n konsekwente respons. 'n "200 OK" respons dui op onbevestigde toegang, terwyl "401 Onbevoegd" die behoefte aan verifikasie aandui, wat onthul of Basiese of Digest-verifikasie benodig word.

Vir Basiese verifikasie, kodeer jy die gebruikersnaam en wagwoord in base64 en sluit dit in die versoek soos volg in:

BESKRYF rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nGemagtiging: Basies YWRtaW46MTIzNA==

Hierdie voorbeeld gebruik "admin" en "1234" vir die geloofsbriewe. Hier is 'n Python-skrip om so 'n versoek te stuur:

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)

Basiese verifikasie is eenvoudiger en verkieslik. Digest-verifikasie vereis sorgvuldige hantering van die verifikasiedetails wat verskaf word in die "401 Onbevoegd" respons.

Hierdie oorsig vereenvoudig die proses om toegang tot RTSP-strome te verkry, met die fokus op Basiese verifikasie vir sy eenvoud en praktiese aard in aanvanklike pogings.

Opsomming

Laat ons inligting kry oor geldige metodes en URL's wat ondersteun word en probeer toegang (indien nodig) kragtig afdwing om toegang tot die inhoud te verkry.

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

Ander nuttige programme

Om te kragtewerk: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Ontdek oop RTSP gasheer op enige toeganklike teiken

  • Kry hul openbare inligting (gasheernaam, poort, kameramodel, ens.)

  • Lanceer outomatiese woordeboekaanvalle om hul stroomroete te kry (byvoorbeeld /live.sdp)

  • Lanceer outomatiese woordeboekaanvalle om die gebruikersnaam en wagwoord van die kameras te kry

  • Genereer duimnaels daarvan om te kyk of die strome geldig is en 'n vinnige voorskou van hul inhoud te hê

  • Probeer om 'n Gstreamer-pyplyn te skep om te sien of hulle behoorlik gekodeer is

  • Druk 'n opsomming van al die inligting wat Cameradar kon kry

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated