554,8554 - Pentesting RTSP

htARTE (HackTricks AWS Red Team Expert)에서 **제로부터 영웅까지 AWS 해킹 배우기**!

다른 방법으로 HackTricks를 지원하는 방법:

기본 정보

wikipedia에서:

실시간 스트리밍 프로토콜 (RTSP)은 엔터테인먼트 및 통신 시스템에서 사용하기 위해 설계된 네트워크 제어 프로토콜입니다. 이 프로토콜은 엔드포인트 간의 미디어 세션을 설정하고 제어하는 데 사용됩니다. 미디어 서버의 클라이언트는 VHS 스타일의 명령(재생, 녹화, 일시 중지 등)을 발행하여 서버에서 클라이언트로의 미디어 스트리밍 또는 클라이언트에서 서버로의 미디어 스트리밍을 실시간으로 제어합니다(온디맨드 비디오 또는 음성 녹음).

스트리밍 데이터의 전송 자체는 RTSP의 작업이 아닙니다. 대부분의 RTSP 서버는 미디어 스트림 전달을 위해 실시간 전송 프로토콜(RTP)과 실시간 제어 프로토콜(RTCP)을 함께 사용합니다. 그러나 일부 공급업체는 전용 전송 프로토콜을 구현하기도 합니다. 예를 들어 RealNetworks의 RTSP 서버 소프트웨어는 RealNetworks의 전용 Real Data Transport (RDT)도 사용했습니다.

기본 포트: 554, 8554

PORT    STATE SERVICE
554/tcp open  rtsp

주요 세부 정보

RTSP는 HTTP와 유사하지만 미디어 스트리밍에 특별히 설계되었습니다. 이는 다음에서 찾을 수 있는 명확한 사양으로 정의됩니다:

RTSP – RFC2326

장치는 인증되지 않은 또는 인증된 액세스를 허용할 수 있습니다. 확인하기 위해 "DESCRIBE" 요청이 전송됩니다. 기본 예시는 아래와 같습니다:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2

올바른 형식은 일관된 응답을 위해 이중 "\r\n"을 포함해야 합니다. "200 OK" 응답은 인증되지 않은 액세스를 나타내며, "401 Unauthorized"는 인증이 필요함을 나타내며 Basic 또는 Digest 인증이 필요한지를 나타냅니다.

Basic 인증의 경우, 사용자 이름과 비밀번호를 base64로 인코딩하여 요청에 포함해야 합니다:

DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==

이 예시는 자격 증명으로 "admin"과 "1234"를 사용합니다. 다음은 이러한 요청을 보내기 위한 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에 대한 정보를 얻고, 필요한 경우 액세스를 브루트 포스하여 콘텐츠에 액세스하려고 노력합니다.

nmap -sV --script "rtsp-*" -p <PORT> <IP>

기타 유용한 프로그램

Bruteforce를 위해: https://github.com/Tek-Security-Group/rtsp_authgrinder

Cameradar

  • 어떠한 접근 가능한 대상에서 열린 RTSP 호스트를 감지

  • 그들의 공개 정보 가져오기 (호스트명, 포트, 카메라 모델 등)

  • 스트림 경로를 얻기 위해 자동 사전 공격 실행 (예: /live.sdp)

  • 카메라의 사용자 이름과 비밀번호를 얻기 위해 자동 사전 공격 실행

  • 스트림이 유효한지 확인하고 내용을 빠르게 미리보기하기 위해 썸네일 생성

  • 올바르게 인코딩되었는지 확인하기 위해 Gstreamer 파이프라인 생성 시도

  • Cameradar가 얻을 수 있는 모든 정보에 대한 요약 출력

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

HackTricks를 지원하는 다른 방법:

Last updated