# 554,8554 - Pentesting RTSP
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
## Basic Information
From [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
> Die **Real Time Streaming Protocol** (**RTSP**) is 'n netwerkbeheerprotokol wat ontwerp is vir gebruik in vermaak- en kommunikasiesisteme om streaming media bedieners te beheer. Die protokol word gebruik om media-sessies tussen eindpunte te vestig en te beheer. Kliente van media bedieners gee VHS-styl opdragte, soos speel, opneem en pauze, om werklike tydbeheer van die media wat van die bediener na 'n kliënt (Video On Demand) of van 'n kliënt na die bediener (Stemopname) stroom te fasiliteer.
>
> Die oordrag van streaming data self is nie 'n taak van RTSP nie. Meeste RTSP bedieners gebruik die Real-time Transport Protocol (RTP) in samewerking met Real-time Control Protocol (RTCP) vir media stroom aflewering. Sommige verskaffers implementeer egter eie vervoersprotokolle. Die RTSP bediener sagteware van RealNetworks, byvoorbeeld, het ook RealNetworks se eie Real Data Transport (RDT) gebruik.
**Default ports:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
## Sleutelbesonderhede
**RTSP** is soortgelyk aan HTTP, maar spesifiek ontwerp vir media streaming. Dit is gedefinieer in 'n eenvoudige spesifikasie wat hier gevind kan word:
[RTSP – RFC2326](https://tools.ietf.org/html/rfc2326)
Toestelle mag **onaangetekende** of **aangetekende** toegang toelaat. Om te kontroleer, word 'n "DESCRIBE" versoek gestuur. 'n Basiese voorbeeld word hieronder getoon:
`DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r`
Onthou, die korrekte formaat sluit 'n dubbele "\r\n" in vir 'n konsekwente antwoord. 'n "200 OK" antwoord dui op **onaangetekende toegang**, terwyl "401 Unauthorized" die behoefte aan verifikasie aandui, wat onthul of **Basic** of **Digest authentication** benodig word.
Vir **Basic authentication** kodeer jy die gebruikersnaam en wagwoord in base64 en sluit dit in die versoek in soos volg:
`DESCRIBE rtsp://: RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
Hierdie voorbeeld gebruik "admin" en "1234" vir die geloofsbriewe. Hier is 'n **Python script** om so 'n versoek te stuur:
```python
import socket
req = "DESCRIBE rtsp://: 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 outentisering** is eenvoudiger en verkieslik. **Digest-outentisering** vereis sorgvuldige hantering van die outentiseringsbesonderhede wat in die "401 Unauthorized" antwoord verskaf word.
Hierdie oorsig vereenvoudig die proses om toegang tot RTSP-strome te verkry, met fokus op **Basiese outentisering** vir sy eenvoud en praktiese nut in aanvanklike pogings.
## Enumerasie
Kom ons kry inligting oor geldige metodes en URL's wat ondersteun word en probeer om die toegang te brute-force (indien nodig) om toegang tot die inhoud te verkry.
```bash
nmap -sV --script "rtsp-*" -p
```
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
### **Ander nuttige programme**
Om te bruteforce: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
[**Cameradar**](https://github.com/Ullaakut/cameradar)
* Ontdek oop RTSP gasheer op enige toeganklike teiken
* Kry hul publieke inligting (gasheernaam, poort, kamera model, ens.)
* Begin outomatiese woordeboekaanvalle om hul stroomroete te kry (byvoorbeeld /live.sdp)
* Begin outomatiese woordeboekaanvalle om die gebruikersnaam en wagwoord van die kameras te kry
* Genereer miniatuurbeelde van hulle om te kyk of die strome geldig is en om 'n vinnige voorvertoning van hul inhoud te hê
* Probeer om 'n Gstreamer-pyplyn te skep om te kyk of hulle behoorlik gekodeer is
* Druk 'n opsomming van al die inligting wat Cameradar kon kry
## References
* [https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol)
* [http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/](http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/)
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
{% hint style="success" %}
Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Ondersteun HackTricks
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}