554,8554 - Pentesting RTSP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
З wikipedia:
Протокол реального часу для потокового відео (RTSP) — це протокол управління мережею, розроблений для використання в системах розваг і зв'язку для контролю потокових медіа-серверів. Протокол використовується для встановлення та контролю медіа-сесій між кінцевими точками. Клієнти медіа-серверів видають команди у стилі VHS, такі як відтворення, запис і пауза, щоб полегшити реальний контроль над медіа-потоком з сервера до клієнта (відео на запит) або з клієнта до сервера (запис голосу).
Передача потокових даних сама по собі не є завданням RTSP. Більшість RTSP-серверів використовують Протокол реального часу для транспорту (RTP) у поєднанні з Протоколом контролю реального часу (RTCP) для доставки медіа-потоку. Однак деякі постачальники реалізують власні транспортні протоколи. Програмне забезпечення RTSP-сервера від RealNetworks, наприклад, також використовувало власний протокол Real Data Transport (RDT) від RealNetworks.
Default ports: 554,8554
RTSP подібний до HTTP, але спеціально розроблений для потокового медіа. Він визначений у простій специфікації, яку можна знайти тут:
Пристрої можуть дозволяти неаутентифікований або аутентифікований доступ. Щоб перевірити, надсилається запит "DESCRIBE". Основний приклад наведено нижче:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
Пам'ятайте, що правильне форматування включає подвійну "\r\n" для послідовної відповіді. Відповідь "200 OK" вказує на неаутентифікований доступ, тоді як "401 Unauthorized" сигналізує про необхідність аутентифікації, вказуючи, чи потрібна Basic або Digest authentication.
Для Basic authentication ви кодуєте ім'я користувача та пароль у base64 і включаєте його в запит ось так:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==
Цей приклад використовує "admin" і "1234" для облікових даних. Ось Python скрипт для надсилання такого запиту:
Базова аутентифікація є простішою і переважною. Дайджест-аутентифікація вимагає обережного поводження з деталями аутентифікації, наданими у відповіді "401 Unauthorized".
Цей огляд спрощує процес доступу до RTSP потоків, зосереджуючи увагу на базовій аутентифікації через її простоту та практичність у початкових спробах.
Давайте отримати інформацію про дійсні методи та URL-адреси, які підтримуються, і спробувати брутфорсити доступ (якщо потрібно), щоб отримати доступ до вмісту.
Для брутфорсу: https://github.com/Tek-Security-Group/rtsp_authgrinder
Виявляє відкриті RTSP хости на будь-якій доступній цілі
Отримує їхню публічну інформацію (ім'я хоста, порт, модель камери тощо)
Запускає автоматизовані словникові атаки для отримання їхнього маршруту потоку (наприклад, /live.sdp)
Запускає автоматизовані словникові атаки для отримання імені користувача та пароля камер
Генерує ескізи з них, щоб перевірити, чи є потоки дійсними, і щоб швидко переглянути їхній вміст
Спробує створити конвеєр Gstreamer, щоб перевірити, чи вони правильно закодовані
Друкує підсумок усієї інформації, яку міг отримати Cameradar
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)