554,8554 - Pentesting RTSP

Support HackTricks

Basic Information

From wikipedia:

The Real Time Streaming Protocol (RTSP) ni itifaki ya udhibiti wa mtandao iliyoundwa kwa matumizi katika mifumo ya burudani na mawasiliano ili kudhibiti seva za vyombo vya habari vinavyotiririka. Itifaki hii inatumika kwa kuanzisha na kudhibiti vikao vya vyombo vya habari kati ya sehemu za mwisho. Wateja wa seva za vyombo vya habari wanatoa amri za mtindo wa VHS, kama vile kucheza, kurekodi na kusitisha, ili kuwezesha udhibiti wa wakati halisi wa vyombo vya habari vinavyotiririka kutoka kwa seva hadi mteja (Video On Demand) au kutoka kwa mteja hadi seva (Voice Recording).

Usafirishaji wa data inayotiririka yenyewe si kazi ya RTSP. Seva nyingi za RTSP hutumia Itifaki ya Usafirishaji wa Wakati Halisi (RTP) pamoja na Itifaki ya Udhibiti wa Wakati Halisi (RTCP) kwa usambazaji wa mtiririko wa vyombo vya habari. Hata hivyo, wauzaji wengine wanafanya utekelezaji wa itifaki za usafirishaji za miliki. Programu ya seva ya RTSP kutoka RealNetworks, kwa mfano, pia ilitumia Usafirishaji wa Data wa Halisi wa RealNetworks (RDT).

Default ports: 554,8554

PORT    STATE SERVICE
554/tcp open  rtsp

Key Details

RTSP ni sawa na HTTP lakini imeundwa mahsusi kwa ajili ya utiririshaji wa media. Imeelezwa katika spesifikesheni rahisi ambayo inaweza kupatikana hapa:

RTSP – RFC2326

Vifaa vinaweza kuruhusu unauthenticated au authenticated access. Ili kuangalia, ombi la "DESCRIBE" litatumwa. Mfano wa msingi umeonyeshwa hapa chini:

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

Kumbuka, muundo sahihi unajumuisha "\r\n" mara mbili kwa ajili ya majibu ya kawaida. Jibu la "200 OK" linaashiria unauthenticated access, wakati "401 Unauthorized" linaashiria hitaji la uthibitisho, likifunua kama Basic au Digest authentication inahitajika.

Kwa Basic authentication, unachakata jina la mtumiaji na nenosiri katika base64 na kuijumuisha katika ombi kama ifuatavyo:

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

Mfano huu unatumia "admin" na "1234" kwa ajili ya taarifa za kuingia. Hapa kuna Python script ya kutuma ombi kama hilo:

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)

Msingi wa uthibitishaji ni rahisi na unapendekezwa. Uthibitishaji wa Digest unahitaji kushughulikia kwa makini maelezo ya uthibitishaji yaliyotolewa katika jibu la "401 Unauthorized".

Muonekano huu unarahisisha mchakato wa kufikia mitiririko ya RTSP, ukizingatia Msingi wa uthibitishaji kwa urahisi na ufanisi wake katika majaribio ya awali.

Enumeration

Tuchukue taarifa kuhusu mbinu halali na URL zinazoungwa mkono na kujaribu nguvu za kikatili kupata ufikiaji wa maudhui (ikiwa inahitajika).

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

Programu nyingine muhimu

Ili kufanya bruteforce: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • Gundua mwenyeji wa RTSP wazi kwenye lengo lolote linalopatikana

  • Pata taarifa zao za umma (jina la mwenyeji, bandari, mfano wa kamera, nk.)

  • Fanya mashambulizi ya kamusi ya kiotomatiki kupata njia yao ya mtiririko (kwa mfano /live.sdp)

  • Fanya mashambulizi ya kamusi ya kiotomatiki kupata jina la mtumiaji na nenosiri la kamera

  • Tengeneza picha ndogo kutoka kwao ili kuangalia kama mitiririko ni halali na kuwa na muonekano wa haraka wa maudhui yao

  • Jaribu kuunda bomba la Gstreamer kuangalia kama zimeandikwa vizuri

  • Chapisha muhtasari wa taarifa zote Cameradar inaweza kupata

Marejeleo

Support HackTricks

Last updated