hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md

100 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 554,8554 - Pentesting RTSP
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
## Osnovne informacije
Sa [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
> **Real Time Streaming Protocol** (**RTSP**) je mrežni kontrolni protokol dizajniran za korišćenje u zabavnim i komunikacionim sistemima radi kontrole servera za strimovanje medija. Protokol se koristi za uspostavljanje i kontrolisanje medijskih sesija između krajnjih tačaka. Klijenti medijskih servera izdaju komande u stilu VHS-a, poput reprodukcije, snimanja i pauziranja, radi olakšavanja realne kontrole strimovanja medija sa servera ka klijentu (Video na zahtev) ili od klijenta ka serveru (Snimanje glasa).
>
> Samo slanje strimovanih podataka nije zadatak RTSP-a. Većina RTSP servera koristi Real-time Transport Protocol (RTP) u kombinaciji sa Real-time Control Protocol (RTCP) za isporuku medijskog strima. Međutim, neki proizvođači implementiraju vlasite transportne protokole. Na primer, RTSP server softver od RealNetworks-a takođe koristi RealNetworks-ov vlasiti Real Data Transport (RDT).
**Podrazumevani portovi:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
## Ključni detalji
**RTSP** je sličan HTTP-u, ali je dizajniran specifično za strujanje medija. Definisan je u jednostavnoj specifikaciji koja se može pronaći ovde:
[RTSP RFC2326](https://tools.ietf.org/html/rfc2326)
Uređaji mogu dozvoliti **neautentifikovan** ili **autentifikovan** pristup. Da biste proverili, šalje se zahtev "DESCRIBE". Osnovni primer je prikazan ispod:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r`
Zapamtite, ispravno formatiranje uključuje dvostruki "\r\n" za dosledan odgovor. Odgovor "200 OK" ukazuje na **neautentifikovan pristup**, dok "401 Unauthorized" signalizira potrebu za autentifikacijom, otkrivajući da li je potrebna **osnovna** ili **digest autentifikacija**.
Za **osnovnu autentifikaciju**, enkodirate korisničko ime i lozinku u base64 i uključujete ih u zahtev na sledeći način:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
Ovaj primer koristi "admin" i "1234" za pristupne podatke. Evo **Python skripte** za slanje takvog zahteva:
```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)
```
**Osnovna autentikacija** je jednostavnija i poželjnija. **Digest autentikacija** zahteva pažljivo rukovanje detaljima autentikacije koji se pružaju u odgovoru "401 Unauthorized".
Ovaj pregled pojednostavljuje proces pristupa RTSP tokovima, fokusirajući se na **Osnovnu autentikaciju** zbog njene jednostavnosti i praktičnosti u početnim pokušajima.
## Enumeracija
Pokušajmo da dobijemo informacije o podržanim validnim metodama i URL-ovima i pokušajmo da provalimo pristup (ako je potrebno) kako bismo pristupili sadržaju.
```bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
### **Drugi korisni programi**
Za brute force: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
[**Cameradar**](https://github.com/Ullaakut/cameradar)
* Otkriva otvorene RTSP hostove na bilo kojoj dostupnoj meti
* Dobija njihove javne informacije (ime hosta, port, model kamere, itd.)
* Pokreće automatske rečničke napade da dobije njihov stream put (na primer /live.sdp)
* Pokreće automatske rečničke napade da dobije korisničko ime i lozinku kamera
* Generiše sličice da proveri da li su streamovi validni i da brzo pregleda njihov sadržaj
* Pokušava da kreira Gstreamer pipeline da proveri da li su pravilno enkodirani
* Ispisuje sažetak svih informacija koje je Cameradar mogao da dobije
## Reference
* [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)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>