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

101 lines
6.5 KiB
Markdown
Raw Normal View History

2022-05-01 13:25:53 +00:00
# 554,8554 - Pentesting RTSP
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2024-01-03 10:42:55 +00:00
* 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)!
2024-02-10 13:11:20 +00:00
* 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)**.**
2024-02-10 13:11:20 +00:00
* **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.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:11:20 +00:00
## Osnovne informacije
2024-02-10 13:11:20 +00:00
Sa [wikipedia](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
2024-02-08 21:36:35 +00:00
> **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).
2024-02-10 13:11:20 +00:00
**Podrazumevani portovi:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
2024-02-10 13:11:20 +00:00
## 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)
2024-02-10 13:11:20 +00:00
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)
2022-02-10 12:30:58 +00:00
data = s.recv(1024)
2022-02-09 20:30:05 +00:00
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
2022-01-13 18:45:25 +00:00
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
2022-05-01 13:25:53 +00:00
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
2024-02-10 13:11:20 +00:00
### **Drugi korisni programi**
2024-02-10 13:11:20 +00:00
Za brute force: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
2024-02-08 21:36:35 +00:00
[**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
2024-02-08 21:36:35 +00:00
2024-02-10 13:11:20 +00:00
## Reference
2024-02-08 21:36:35 +00:00
* [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/)
2022-05-08 23:13:03 +00:00
* [https://github.com/Ullaakut/cameradar](https://github.com/Ullaakut/cameradar)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<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>
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2024-01-03 10:42:55 +00:00
* 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)!
2024-02-10 13:11:20 +00:00
* 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.
2022-04-28 16:01:33 +00:00
</details>