不过没关系,新的研究文章它来了!这次的内容比之前更硬核,涉及视频流传输协议,不仅有深度分析,还有实战案例,保证让大家看完有收获。
技术这条路就是不断折腾、不断进步,感谢一路陪伴的朋友们!这篇文章希望能带给你们新的思考,欢迎评论区一起交流,咱们继续冲!,最后在开源一个大师和朋友写的测试工具,方便大家平时日常渗透和漏洞挖掘!!
既然这样,那还等什么?咱自己动手整一个!在彻底搞明白 RTSP 协议的攻击点之后,我撸了个小工具,专门针对这些设备优化,方便大家直接上手实战。工具已经就绪,细节和玩法都给你们安排上了,感兴趣的兄弟们冲就完了!
0x01 什么是rtsp?
大家有没有想过,为什么有些摄像头可以被远程访问,而有些却只能在本地局域网看?这背后的关键技术就是 RTSP(Real-Time Streaming Protocol,实时流传输协议)。
RTSP 是个啥?简单来说,它是控制音视频流的“指挥官”,让客户端和服务器能够交互,决定什么时候播放、暂停、停止。常见的应用场景包括:
- IP摄像头监控(企业、大街、工厂的监控头)
- 流媒体直播(某些私人推流服务器)
- 智能家居设备(比如可视门铃)
RTSP 主要通过 TCP/UDP 传输数据,默认端口是554,但不同厂商可能会选8554、之类的端口。
一般情况下都是554端口,所以我们在进行红队攻击或者渗透测试的时候可以着重关注fofa、hunter、钟馗之眼等网络空间搜索平台找到的554端口资产。
作为一款明文传输的协议,RTSP 的流量特征十分明显,抓包分析的时候,很容易找到它的痕迹。主要有两类:
- 控制信令流量(相当于对摄像头的操作指令)
- 典型请求头:
OPTIONS rtsp://192.168.0.100:554/live.sdp RTSP/1.0CSeq: 1User-Agent: VLC/3.0.16
OPTIONS
请求用于查询服务器支持的命令CSeq
是请求序列号User-Agent
可以透露访问者是谁,比如 VLC、FFmpeg 等
- 典型请求头:
- 视频数据流量(承载实际的音视频内容)
- 使用
RTP/RTCP
协议传输 UDP
端口号通常是5004/5005RTCP
负责流控制,位于RTP
端口相邻位置
- 使用
0x03RTSP 协议的安全机制
RTSP 协议常见的认证方式有以下几种:
1.Basic 认证(基本认证)
特点:
-
最简单的认证方式,客户端在 Authorization
头中直接发送 Base64编码的用户名:密码
。 -
服务端在未认证时返回 401Unauthorized
,并带上WWW-Authenticate: Basic realm="RTSP Server"
头,要求客户端提供凭据。
安全性问题:
- Base64只是编码,不是加密
,容易被嗅探截获并解码出明文密码。 -
在 明文 RTSP 连接(未加密)中,这种认证方式极不安全,极易被中间人攻击(MITM)。
示例:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ= ("username:password" 的 Base64编码)
2.Digest 认证(摘要认证)
特点:
-
比 Basic 认证更安全,它采用 MD5哈希计算身份凭据,而不是直接传输密码。 -
服务器返回 401Unauthorized
时,WWW-Authenticate
头中会带一个nonce
值(防重放攻击)。 -
客户端需要用 nonce
计算哈希值,生成response
,然后发送给服务器进行验证。
安全性改进:
-
避免了直接明文传输密码的风险。 -
但是 MD5 哈希较弱,仍然可以通过 彩虹表等方式破解。
示例:
Authorization: Digest username="user", realm="RTSP Server", nonce="abc123", uri="rtsp://example.com/stream", response="md5_hash"
3.RTSP + TLS(RTSPS,基于 HTTPS 的认证)
特点:
- RTSPS(RTSP over SSL/TLS)
通过 加密传输保护 RTSP 认证过程,防止嗅探攻击。 -
认证方式仍然可以是 Basic 或 Digest,但由于使用了 TLS 加密通道,即使是 Basic 认证也不会被轻易嗅探破解。
安全性改进:
-
基于 HTTPS 的安全模型,避免了明文密码和中间人攻击。 -
但很多老旧设备不支持 RTSPS,加密传输带来的额外开销也可能影响性能。
4.基于 IP/MAC 绑定的认证
特点:
-
部分 RTSP 服务器支持基于 IP 地址或 MAC 地址进行访问控制,只允许特定设备访问流媒体。 -
这种方式通常用于企业或内网环境,结合防火墙策略进行访问限制。
安全性问题:
-
只要攻击者能伪造 IP 地址或 MAC 地址,就可以绕过限制。 -
如果没有额外的认证(如用户名/密码),这种方式相对较弱。
总结
|
|
|
|
---|---|---|---|
Basic 认证 |
|
|
|
Digest 认证 |
|
|
|
RTSPS(TLS 加密) |
|
|
|
IP/MAC 绑定 |
|
|
|
一般来说,如果你在研究 RTSP 认证攻击,最容易入手的就是 Basic 和 Digest 认证,很多老旧设备依然使用这两种方式。如果目标设备支持 RTSPS,加密会增加攻击难度,而 IP/MAC 绑定则更依赖环境限制。
0x04如果你是黑客你会怎么进行攻击?
首先rtsp作为一种简单的协议,我们能从他的认证机制着手进行攻击,比如暴力破解。最早我也是这么想的,我使用了hydra或者无影等支持rtsp协议爆破工具,通过wireshark进行抓包的时候发现一个问题。rtsp和我们传统爆破是由一些区别的。
rtsp爆破的时候他会判断路径是否存在,只有路径存在的时候。才会进行下一步爆破。就是说一般的工具先探测是否存在默认路径。当路径匹配成功后在进行爆破,但是hydra等工具内置的路径字典有限还无法自定义,就是说即使当前设备的rtsp存在弱口令,也无法爆破成功。
Hydra 爆破的流量特征
在抓包软件里,Hydra 的攻击流量长这样:
- 短时间内大量
DESCRIBE或
OPTIONS请求(用于探测服务器是否需要认证) - 大量
401Unauthorized响应(说明服务器在拒绝非法访问) - 最终
200OK响应(爆破成功后,说明已经登录成功!) - 紧接着是
PLAY请求,获取视频流
用 Wireshark 抓包,可能会看到如下内容:
DESCRIBE rtsp://192.168.1.100:554/live.sdp RTSP/1.0CSeq: 1Authorization: Basic YWRtaW46MTIzNDU= #admin:12345
(如果摄像头还在用默认密码,那基本就直接沦陷了。)
一般我们攻击就可以基于rtsp的两种认证模式进行攻击,即Digest和Basic。那么有师傅就会问了,有很多摄像头设备他都是有web端的,我直接爆破web端不就好了,那么你如果这么操作,在我实践情况下会发现两个问题。
1、web端登录口一般有登录次数限制。
2、web端走http和https协议大多数流量监测设备都可以监测出来。(态势感知等设备)
但是如果你直接攻击554端口的rtsp协议的话,大多数就没有登录次数限制(实操证明)。你可以通过rtsp爆破出的密码再去登录web。
0x05具体攻击实操
扫描 RTSP 端口,看看哪些摄像头是“裸奔”的:
1、masscan或者网络空间搜索引擎nmap都可以,可以识别出协议就行。或者盲打
2、看了上面的内容大家应该明白了要攻击rtsp首先要知道他具体的路径,或者先进行路径的爆破,只有识别到路径才能进行进一步的密码爆破,所以我和xxtt师傅一起写了一个小工具,可以自定义uri(路径)、用户名、密码字典等。用于rtsp协议设备的攻击。同时我也内置了市面上大多数摄像头路径。(也是没办法,市面上找到的都爆破不出我们想要的结果只能自己写了,工具后面放在github,链接放在文章最后)
爆破出之后直接使用vlc播放器进行播放,就可以看摄像头内容了
0x06总结
攻击rtsp协议目前发现有这么几个优势:
1、非全流量设备可能没有相关规则能检测到你的爆破攻击流量。
2、rtsp大多数设备都是有web界面的,rtsp协议直接爆破可能没有爆破数量限制,爆破出来后直接登录web。
工具Github路径:
https://github.com/returnwrong/RTSP-Cracker-Pro
感谢大家的阅读祝大家新年快乐,2025年天天出高危,洞洞都速审!
原文始发于微信公众号(地图大师的漏洞追踪指南):RTSP狩猎之旅:从协议解析到黑客实战
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论