554,8554 - Pentesting RTSP
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ธฐ๋ณธ ์ ๋ณด
์ถ์ฒ: wikipedia:
Real Time Streaming Protocol (RTSP)๋ ์ํฐํ ์ธ๋จผํธ ๋ฐ ํต์ ์์คํ ์์ ์คํธ๋ฆฌ๋ฐ ๋ฏธ๋์ด ์๋ฒ๋ฅผ ์ ์ดํ๊ธฐ ์ํด ์ฌ์ฉํ๋๋ก ์ค๊ณ๋ ๋คํธ์ํฌ ์ ์ด ํ๋กํ ์ฝ์ด๋ค. ์ด ํ๋กํ ์ฝ์ ์ข ๋จ ๊ฐ ๋ฏธ๋์ด ์ธ์ ์ ์ค์ ํ๊ณ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๋ฏธ๋์ด ์๋ฒ์ ํด๋ผ์ด์ธํธ๋ VHS ์คํ์ผ ๋ช ๋ น(์: ์ฌ์, ๋ นํ, ์ผ์์ ์ง)์ ๋ฐํํ์ฌ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก์ ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ(Video On Demand) ๋๋ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก์ ์คํธ๋ฆฌ๋ฐ(Voice Recording)์ ์ค์๊ฐ์ผ๋ก ์ ์ดํ ์ ์๊ฒ ํ๋ค.
์คํธ๋ฆฌ๋ฐ ๋ฐ์ดํฐ ์์ฒด์ ์ ์ก์ RTSP์ ์ญํ ์ด ์๋๋ค. ๋๋ถ๋ถ์ RTSP ์๋ฒ๋ ๋ฏธ๋์ด ์คํธ๋ฆผ ์ ๋ฌ์ ์ํด Real-time Transport Protocol (RTP)๊ณผ Real-time Control Protocol (RTCP)์ ํจ๊ป ์ฌ์ฉํ๋ค. ๊ทธ๋ฌ๋ ์ผ๋ถ ๋ฒค๋๋ ๋ ์ ์ ์ก ํ๋กํ ์ฝ์ ๊ตฌํํ๊ธฐ๋ ํ๋ค. ์๋ฅผ ๋ค์ด RealNetworks์ RTSP ์๋ฒ ์ํํธ์จ์ด๋ RealNetworks์ ๋ ์ ํ๋กํ ์ฝ์ธ Real Data Transport (RDT)๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
๊ธฐ๋ณธ ํฌํธ: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
์ฃผ์ ์ฌํญ
RTSP๋ HTTP์ ์ ์ฌํ์ง๋ง ๋ฏธ๋์ด ์คํธ๋ฆฌ๋ฐ ์ ์ฉ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ช ํํ ์ฌ์์ ๋ค์์์ ํ์ธํ ์ ์์ต๋๋ค:
์ฅ์น์ ๋ฐ๋ผ unauthenticated ๋๋ authenticated ์ ๊ทผ์ ํ์ฉํ ์ ์์ต๋๋ค. ํ์ธํ๋ ค๋ฉด โDESCRIBEโ ์์ฒญ์ ๋ณด๋ ๋๋ค. ๊ธฐ๋ณธ ์์๋ ์๋์ ๊ฐ์ต๋๋ค:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2
์ ํํ ํฌ๋งท์ ์ผ๊ด๋ ์๋ต์ ์ํด ์ด์ค โ\r\nโ์ ํฌํจํด์ผ ํฉ๋๋ค. โ200 OKโ ์๋ต์ unauthenticated access๋ฅผ ์๋ฏธํ๊ณ , โ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 script์ ๋๋ค:
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)
Basic authentication์ด ๋ ๊ฐ๋จํ๋ฉฐ ์ ํธ๋ฉ๋๋ค. Digest authentication์ โ401 Unauthorizedโ ์๋ต์ ์ ๊ณต๋ ์ธ์ฆ ์ธ๋ถ ์ ๋ณด๋ฅผ ์ฃผ์ ๊น๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ด ๊ฐ์๋ RTSP ์คํธ๋ฆผ์ ์ ๊ทผํ๋ ๊ณผ์ ์ ๋จ์ํํ์ฌ ์ด๊ธฐ ์๋์์ ๊ทธ ๋จ์์ฑ๊ณผ ์ค์ฉ์ฑ ๋๋ฌธ์ Basic authentication์ ์ค์ ์ ๋ก๋๋ค.
Enumeration
์ ํจํ methods์ ์ง์๋๋ URLs์ ๋ํ ์ ๋ณด๋ฅผ ์์งํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ์ฝํ ์ธ ์ ๊ทผ์ ์ํด brute-force๋ฅผ ์๋ํด ๋ด ์๋ค.
nmap -sV --script "rtsp-*" -p <PORT> <IP>
ffplay๋ก RTSP ์คํธ๋ฆผ ๋ณด๊ธฐ
์ ํจํ RTSP ๊ฒฝ๋ก(์: /mpeg4, /live.sdp)๋ฅผ ๋ฐ๊ฒฌํ๊ณ ์ ๊ทผ(์ธ์ฆ ์์ ๋๋ ์๊ฒฉ ์ฆ๋ช
์ฌ์ฉ)์ ํ์ธํ๋ค๋ฉด, ffplay๋ฅผ ์ฌ์ฉํด ์คํธ๋ฆผ์ ์ฌ์ํ ์ ์์ต๋๋ค:
ffplay -rtsp_transport tcp rtsp://<IP>/mpeg4 -x 2560 -y 1440
-rtsp_transport tcp: ๋ ์ ๋ขฐํ ์ ์๋ ์คํธ๋ฆฌ๋ฐ์ ์ํด UDP ๋์ TCP ์ฌ์ฉ-x,-y: ๋น๋์ค ํด์๋๋ฅผ ์ ์ดํ๋ ์ ํ์ ํ๋๊ทธ- ํ์์ ๋ฐ๋ผ
<IP>๋ฐ ๊ฒฝ๋ก๋ฅผ ๊ต์ฒดํ์ธ์
Brute Force
๊ธฐํ ์ ์ฉํ ํ๋ก๊ทธ๋จ
To bruteforce: https://github.com/Tek-Security-Group/rtsp_authgrinder
- ์ ๊ทผ ๊ฐ๋ฅํ ๋์์์ ์ด๋ฆฐ RTSP ํธ์คํธ๋ฅผ ํ์ง
- ๊ณต๊ฐ ์ ๋ณด(hostname, port, camera model ๋ฑ) ํ๋
- ์คํธ๋ฆผ ๊ฒฝ๋ก(์: /live.sdp)๋ฅผ ์ฐพ๊ธฐ ์ํ ์๋ ์ฌ์ (dictionary) ๊ณต๊ฒฉ ์คํ
- ์นด๋ฉ๋ผ์ username ๋ฐ password๋ฅผ ์ป๊ธฐ ์ํ ์๋ ์ฌ์ ๊ณต๊ฒฉ ์คํ
- ์คํธ๋ฆผ์ด ์ ํจํ์ง ํ์ธํ๊ณ ๋น ๋ฅด๊ฒ ๋ด์ฉ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ ์ ์๋๋ก ์ธ๋ค์ผ ์์ฑ
- ์ฌ๋ฐ๋ฅด๊ฒ ์ธ์ฝ๋ฉ๋์๋์ง ํ์ธํ๊ธฐ ์ํด Gstreamer ํ์ดํ๋ผ์ธ ์์ฑ ์๋
- Cameradar๊ฐ ์ป์ ์ ์๋ ๋ชจ๋ ์ ๋ณด์ ์์ฝ ์ถ๋ ฅ
See also
32100 Udp - Pentesting Pppp Cs2 P2p Cameras
์ฐธ๊ณ ์๋ฃ
- 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
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


