深入分析网络智能摄像头的RTSP协议安全风险

网络摄像头作为现代安防体系的关键组成部分,已经广泛应用于各类场所,包括交通枢纽、教育机构、企业办公区、零售商场等公共和私人领域。它们主要负责提供实时视频监控,以加强安全性并防范事故。随着物联网(IoT)技术的不断发展,网络摄像头的功能日益智能化,不仅可以进行图像捕捉,还能进行事件检测、自动跟踪和数据分析等操作。
然而,随着技术的进步,网络摄像头的安全风险也日益凸显。由于这些设备经常配置为通过公网进行远程访问,因此它们本身存在安全漏洞、不当的安装和配置,以及缺乏持续的维护和更新,使其成为网络攻击的易目标。黑客可能会利用这些漏洞进行数据泄露、侵犯隐私,甚至发动更广泛的网络攻击。
网络摄像头所面临的威胁不仅限于黑客的恶意入侵,还包括软件缺陷、固件漏洞、默认密码的滥用以及不安全的网络通信协议等。在评估网络摄像头的安全性时,需要从设备、软件和网络三个层面来探讨潜在的风险和防御措施。
设备层面涉及网络摄像头的物理安全性和固件更新;软件层面关注摄像头的操作系统和应用程序的安全性;而网络层面则包括设备的网络配置、数据传输加密和访问控制策略等。只有全面理解并采取综合性的安全策略,才能有效地提升网络摄像头的安全防护能力,保护其免受网络威胁和滥用的危害。   

01

关于RTSP协议

RTSP(实时流协议)是一个网络控制协议,设计用于娱乐和通信系统中控制流媒体服务器。该协议用于建立和控制媒体会话中的时间同步流。RTSP 提供了一个可扩展框架,使得能够实现对实时数据,如音频和视频的控制。与HTTP不同,RTSP提供了对流数据的实时控制功能,比如可以随意快进或倒退。
RTSP 主要用于以下场景:
①视频监控系统
②会议系统
③媒体播放器与媒体服务器之间的交互
RTSP 协议通常运行在 TCP 或 UDP 协议之上,使用的端口是554。它允许客户端发送播放、暂停和停止等控制指令,以及进行实时播放位置的调整。
RTSP 与 RTP(实时传输协议)通常一起使用,其中 RTSP 负责控制和信令,而 RTP 负责数据的实时传输。
RTSP(Real Time Streaming Protocol)定义了多种方法(也称为命令或操作),用于客户端与流媒体服务器之间的通信。以下是RTSP协议中定义的一些常见方法:
①OPTIONS:用于查询服务器支持的方法和功能,客户端可以向服务器发送OPTIONS请求,以确定服务器所支持的操作。   
深入分析网络智能摄像头的RTSP协议安全风险
②DESCRIBE:用于获取流媒体会话的描述信息,包括媒体类型、编解码器信息、媒体流地址等。
深入分析网络智能摄像头的RTSP协议安全风险
③SETUP:用于建立客户端和服务器之间的传输通道,包括传输协议(如RTP/UDP或RTP/TCP)、媒体流地址和端口等参数。

深入分析网络智能摄像头的RTSP协议安全风险

④PLAY:用于开始播放流媒体数据,客户端发送PLAY请求后,服务器开始向客户端发送媒体数据。
深入分析网络智能摄像头的RTSP协议安全风险
⑤PAUSE:用于暂停播放,暂停后可以通过发送PLAY请求来继续播放。
⑥TEARDOWN:用于关闭流媒体会话,释放相关资源。
⑦ANNOUNCE:用于向服务器发布新的媒体流,通知服务器有新的媒体流可用。
⑧RECORD:用于开始录制媒体数据,告知服务器将数据录制到指定的存储位置。
⑨REDIRECT:用于重定向客户端到另一个RTSP服务器或媒体流地址。
这些方法构成了RTSP协议中客户端和服务器之间的基本通信机制,通过这些方法可以实现对流媒体数据的控制和管理。

1.1 RTSP认证方式  

RTSP(Real Time Streaming Protocol)支持多种认证方式,用于保护流媒体服务器资源,以下是一些常见的RTSP认证方式:

①基本认证(Basic Authentication):

基本认证是最简单的一种认证方式,客户端发送用户名和密码的组合给服务器,以进行身份验证。这种方式的安全性相对较低,因为用户名和密码会以明文形式发送,容易受到中间人攻击的威胁。   

②摘要认证(Digest Authentication):

摘要认证是一种更安全的认证方式,它使用哈希算法来保护用户的密码。服务器向客户端发送一个随机数(称为nonce),客户端使用该随机数、用户名、密码等信息计算一个哈希值,并将其发送给服务器进行验证。由于密码在传输过程中不以明文形式发送,摘要认证比基本认证更安全。

③OAuth认证(OAuth Authentication):

OAuth是一种开放标准的认证协议,用于授权第三方应用程序访问用户的资源。在RTSP中,可以使用OAuth认证来实现对流媒体资源的安全访问控制。

④TLS/SSL认证(Transport Layer Security/Secure Sockets Layer Authentication):

TLS/SSL是一种基于公钥加密的安全传输协议,可以在RTSP连接上使用TLS/SSL来保护通信的安全性。客户端和服务器可以通过证书进行身份验证,确保数据在传输过程中不被窃听或篡改。
⑤IP地址认证(IP Address Authentication):
IP地址认证是一种简单的认证方式,服务器只允许特定IP地址范围的客户端访问资源。这种方式适用于需要限制特定网络或子网访问的场景。

1.2 RTSP流路径

RTSP(Real Time Streaming Protocol)中的路径指的是流媒体资源的标识符,用于客户端请求服务器上的特定媒体流或会话。RTSP路径通常由URL的路径部分表示,类似于HTTP URL中的路径。
RTSP URL的一般格式为:rtsp://<服务器地址>/<路径>    
路径部分指定了服务器上的特定资源或媒体流。路径可以是相对路径或绝对路径,具体取决于服务器的配置和资源的存放方式。通常情况下,路径由斜杠(/)分隔成不同的部分,每个部分表示一个资源或目录。
|例如,一个RTSP URL可能是这样的:rtsp://example.com/live/stream1

在这个URL中,路径部分是/live/stream1,表示服务器上的一个名为stream1的实时媒体流,位于live目录下。客户端可以使用这个URL来请求并播放该媒体流。

02

shodan搜索网络摄像头

 在shodan 使用语法 port:554 has_screenshot:true 进行搜索

深入分析网络智能摄像头的RTSP协议安全风险

打开VLC media player,配置流地址

深入分析网络智能摄像头的RTSP协议安全风险

播报rtsp流
深入分析网络智能摄像头的RTSP协议安全风险

03

摄像头rtsp安全测试

3.1 探测存活

使用nmap探测存活,命令:nmap -A –open -T4 -sV ip -p 554
深入分析网络智能摄像头的RTSP协议安全风险
编写python脚本扫描554端口,发送arp包获取mac地址,获取网卡厂商名称。

深入分析网络智能摄像头的RTSP协议安全风险

运行结果:   

深入分析网络智能摄像头的RTSP协议安全风险

3.2 获取认证方式

获取rtsp协议认证方式,可以发送options和describe请求进行,如下图所示,获取到认证方式为401 Basic和Digest, 如果返回的状态码为200,说明存在未授权访问。

深入分析网络智能摄像头的RTSP协议安全风险

编写python脚本发送options和describe请求获取rtsp认证方式和未授权检测。
def get_auth_method(host, port):                sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)                try:                    # print("check alive: {}:{}".format(host, port))                    sk.settimeout(15)                    sk.connect((str(host), port))                    headers = "OPTIONS rtsp://{}:{}/ RTSP/1.0rn".format(host, str(port))                    headers += "CSeq: 2rn"                    headers += "User-Agent: LibVLC/3.0.18 (LIVE555 Streaming Media v2016.11.28)rnrn"                    sk.send(headers.encode())                    msg_recv = sk.recv(1024).decode()                    if 'RTSP/1' in msg_recv:                        dd = "DESCRIBE rtsp://{}:{}/ RTSP/1.0rnCSeq: 3rnUser-Agent: LibVLC/3.0.18 (LIVE555 Streaming Media v2016.11.28)rnrn".format(                            host, port)                        sk.send(dd.encode())                        msg_recv = sk.recv(1024).decode()                        # print(msg_recv)                        if '200 OK' in msg_recv:                            return (host, port, '未授权')                        if 'WWW-Authenticate: Basic' in msg_recv:                            return (host, port, 'basic')                        if 'WWW-Authenticate: Digest' in msg_recv:                            return (host, port, 'digest')                        else:                            return (host, port, 'unsupported')                except Exception as e:                    pass                finally:                    sk.close
深入分析网络智能摄像头的RTSP协议安全风险

3.3 爆破用户名、密码和流路径  

rtsp协议认证主要有Basic和Digest两种,它的rtsp url通常是这样的 rtsp://username:[email protected]/live/stream

深入分析网络智能摄像头的RTSP协议安全风险

我们可以通过字典穷举的方式,爆破用户、密码与rtsp流路径,rtsp流的路径可以通过ispyconnect进行收集,它包含了市面上几乎所有摄像头的rtsp流路径。

深入分析网络智能摄像头的RTSP协议安全风险

准备好字典后,我们就可以编写Python脚本进行自动化的爆破,代码的主要逻辑是通过遍历username、password、rtsp流路径进行爆破。

深入分析网络智能摄像头的RTSP协议安全风险

深入分析网络智能摄像头的RTSP协议安全风险

3.4 主流摄像头rtsp安全检测    

笔者在淘宝网上购买了几款销量比较高的摄像头测试rtsp安全问题,发现大多数摄像头存在空密码,弱口令、对爆破不做防护,rtsp密码泄露等问题。
检测结果如下图:   
深入分析网络智能摄像头的RTSP协议安全风险
​各类品牌摄像头安全问题:

3.4.1 警卫视摄像头

型号:qs-qy

连接密码:密码默认为空

rtsp连接地址:

rtsp://ad[email protected]:554/live/ch00_1

深入分析网络智能摄像头的RTSP协议安全风险

3.4.2 乐橙摄像头

型号:LC-S2D
rtsp密码:摄像头底部安全码    
rtsp连接地址:
rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
深入分析网络智能摄像头的RTSP协议安全风险

3.4.3 tp-link摄像头

设备型号:TL-IPC44AW
rtsp密码:默认为空
rtsp连接地址:
rtsp://[email protected]:554/stream1    
深入分析网络智能摄像头的RTSP协议安全风险

3.4.4 萤石摄像头

设备型号:CS-C6
rtsp密码:摄像头底部安全码
rtsp连接地址:
rtsp://admin:R[email protected]:554/h264/ch1/main/av_stream
深入分析网络智能摄像头的RTSP协议安全风险      

3.4.5 乔安智联摄像头

设备型号:JA-C10E
rtsp密码:空密码
rtsp连接地址:
rtsp://[email protected]:554/live/ch00_1
深入分析网络智能摄像头的RTSP协议安全风险

3.4.6 帝防摄像头

设备型号:JA-C10E
rtsp连接地址:
rtsp://admin:[email protected]:554/onvif1    
深入分析网络智能摄像头的RTSP协议安全风险

3.4.7 Cubetoou摄像头

设备型号:Q88
rtsp连接地址:

rtsp://admin:[email protected]:554/onvif1

3.4.8 icam365摄像头

设备型号:GI-2304
rtsp连接地址:
rtsp://admin:[email protected]/live.sdp
思路:
①指纹识别    
发送rtsp请求,根据server头找到设备型号为TAS-Tech
深入分析网络智能摄像头的RTSP协议安全风险
②查找设备rtsp地址和密码
在ispyconnect (https://www.ispyconnect.com/camera/tas-tech),上找到rtsp地址和密码。
连接地址为:rtsp://admin:[email protected]/live.sdp

深入分析网络智能摄像头的RTSP协议安全风险

04

总结

 

网络摄像头在现代安防体系中扮演着重要的角色,摄像头的RTSP协议作为流媒体传输的重要组成部分,也存在着一系列安全挑战,对摄像头的RTSP协议进行安全分析和测试是确保网络摄像头安全的重要一环,通过深入理解协议特点和安全风险,以及采取相应的安全措施,可以有效提升摄像头系统的安全防护能力,避免被黑客攻击和滥用。  

原文始发于微信公众号(山石网科安全技术研究院):深入分析网络智能摄像头的RTSP协议安全风险

版权声明:admin 发表于 2024年4月15日 上午11:24。
转载请注明:深入分析网络智能摄像头的RTSP协议安全风险 | CTF导航

相关文章