6.5 KiB
554,8554 - RTSP Pentesting
htARTE (HackTricks AWS Red Team Expert)에서 **제로부터 영웅까지 AWS 해킹 배우기**!
다른 방법으로 HackTricks를 지원하는 방법:
- 회사가 HackTricks에 광고되길 원하거나 HackTricks를 PDF로 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- **💬 Discord 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.
기본 정보
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와 유사하지만 미디어 스트리밍에 특별히 설계되었습니다. 이는 다음에서 찾을 수 있는 명확한 사양으로 정의됩니다:
장치는 인증되지 않은 또는 인증된 액세스를 허용할 수 있습니다. 확인하기 위해 "DESCRIBE" 요청이 전송됩니다. 기본 예시는 아래와 같습니다:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r
올바른 형식은 일관된 응답을 위해 이중 "\r\n"을 포함해야 합니다. "200 OK" 응답은 인증되지 않은 액세스를 나타내며, "401 Unauthorized"는 인증이 필요함을 나타내며 Basic 또는 Digest 인증이 필요한지를 나타냅니다.
Basic 인증의 경우, 사용자 이름과 비밀번호를 base64로 인코딩하여 요청에 포함해야 합니다:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r
이 예시는 자격 증명으로 "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>
Brute Force
기타 유용한 프로그램
Bruteforce를 위해: https://github.com/Tek-Security-Group/rtsp_authgrinder
- 어떠한 접근 가능한 대상에서 열린 RTSP 호스트를 감지
- 그들의 공개 정보 가져오기 (호스트명, 포트, 카메라 모델 등)
- 스트림 경로를 얻기 위해 자동 사전 공격 실행 (예: /live.sdp)
- 카메라의 사용자 이름과 비밀번호를 얻기 위해 자동 사전 공격 실행
- 스트림이 유효한지 확인하고 내용을 빠르게 미리보기하기 위해 썸네일 생성
- 올바르게 인코딩되었는지 확인하기 위해 Gstreamer 파이프라인 생성 시도
- Cameradar가 얻을 수 있는 모든 정보에 대한 요약 출력
참고 자료
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 PDF로 HackTricks 다운로드하려면 구독 요금제를 확인하세요!
- 공식 PEASS & HackTricks 스왜그를 구매하세요
- The PEASS Family를 발견하세요, 당사의 독점 NFTs 컬렉션
- 💬 디스코드 그룹 또는 텔레그램 그룹에 가입하거나 트위터 🐦 @carlospolopm를 팔로우하세요.
- HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하여 해킹 트릭을 공유하세요.