hacktricks/network-services-pentesting/554-8554-pentesting-rtsp.md
2024-03-29 19:49:46 +01:00

100 lines
9.2 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 - Вентестінг RTSP
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Інші способи підтримки HackTricks:
* Якщо ви хочете побачити вашу **компанію в рекламі на HackTricks** або **завантажити HackTricks у PDF** Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) **і** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **репозиторіїв на GitHub.**
</details>
## Основна інформація
З [вікіпедії](https://en.wikipedia.org/wiki/Real\_Time\_Streaming\_Protocol):
> Протокол реального часу трансляції (**RTSP**) - це мережевий протокол управління, призначений для використання в системах розваг та зв'язку для управління стрімінговими медіасерверами. Протокол використовується для встановлення та управління медіа-сесіями між кінцевими точками. Клієнти медіасерверів видають команди у стилі VHS, такі як play, record та pause, для полегшення реального контролю над стрімінгом медіа від сервера до клієнта (відео на вимогу) або від клієнта до сервера (голосове записування).
>
> Передача стрімінгових даних не є завданням RTSP. Більшість серверів RTSP використовують протокол передачі в реальному часі (RTP) разом з протоколом управління в реальному часі (RTCP) для доставки потоку медіа. Однак деякі виробники реалізують власні транспортні протоколи. Наприклад, серверне програмне забезпечення RTSP від RealNetworks також використовувало власний пропрієтарний протокол передачі даних Real Data Transport (RDT).
**Порти за замовчуванням:** 554,8554
```
PORT STATE SERVICE
554/tcp open rtsp
```
## Основні відомості
**RTSP** схожий на HTTP, але призначений спеціально для потокової передачі медіа. Він визначений в простій специфікації, яку можна знайти тут:
[RTSP RFC2326](https://tools.ietf.org/html/rfc2326)
Пристрої можуть дозволяти **неаутентифікований** або **аутентифікований** доступ. Щоб перевірити, відправляється запит "DESCRIBE". Нижче показано базовий приклад:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r`
Пам'ятайте, що правильний формат включає подвійний "\r\n" для послідовної відповіді. Відповідь "200 OK" вказує на **неаутентифікований доступ**, тоді як "401 Unauthorized" сигналізує про необхідність аутентифікації, розкриваючи, чи потрібна **базова або дайджест-аутентифікація**.
Для **базової аутентифікації** ви кодуєте ім'я користувача та пароль у base64 та включаєте їх у запит таким чином:
`DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r`
У цьому прикладі використовуються "admin" та "1234" для облікових даних. Ось **сценарій Python** для відправлення такого запиту:
```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)
```
**Базова аутентифікація** є простішою і бажаною. **Дайджест-аутентифікація** вимагає обережної обробки даних аутентифікації, наданих у відповіді "401 Unauthorized".
Цей огляд спрощує процес доступу до потоків RTSP, акцентуючи увагу на **Базовій аутентифікації** через її простоту та практичність на початкових етапах.
## Енумерація
Давайте отримаємо інформацію про підтримувані методи та URL-адреси та спробуємо зламати доступ (якщо потрібно), щоб отримати доступ до вмісту.
```bash
nmap -sV --script "rtsp-*" -p <PORT> <IP>
```
### [Brute Force](../generic-methodologies-and-resources/brute-force.md#rtsp)
### **Інші корисні програми**
Для перебору: [https://github.com/Tek-Security-Group/rtsp\_authgrinder](https://github.com/Tek-Security-Group/rtsp\_authgrinder)
[**Cameradar**](https://github.com/Ullaakut/cameradar)
* Виявлення відкритих RTSP хостів на будь-якій доступній цілі
* Отримання їхньої публічної інформації (ім'я хоста, порт, модель камери тощо)
* Запуск автоматизованих атак словником для отримання шляху їхнього потоку (наприклад /live.sdp)
* Запуск автоматизованих атак словником для отримання імені користувача та пароля камер
* Генерація ескізів для перевірки, чи потоки є дійсними, та для швидкого попереднього перегляду їхнього вмісту
* Спроба створити конвеєр Gstreamer для перевірки, чи вони правильно закодовані
* Виведення підсумку всієї інформації, яку Cameradar зміг отримати
## 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)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Інші способи підтримки HackTricks:
* Якщо ви хочете побачити вашу **компанію рекламовану в HackTricks** або **завантажити HackTricks у PDF** Перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв.
</details>