实战中的那些视频安全(二)

admin 2021年12月27日01:42:07评论156 views字数 3639阅读12分7秒阅读模式

概述

视频安全是一个老生常谈的话题,但是仍然应该被持续引起重视。记得15年看玄武实验室的红蓝对抗宣传视频,TK教主一声令下,使用我们新研究的技术(Badbarcode)。视频我已经找不到了,实际上也是通过内网中翻到的照片才知道目标使用条形码扫描器。这也说明在红蓝对抗中,视频安全可不止是个口子,或者是后渗透中权限维持(交叉编译mips后门)的一种方法,它更是一种信息收集的方法(物理入侵效果更为显著)。

本篇介绍视频云平台信息泄露篇的拓展和未授权访问篇

上篇提到了视频安防平台key的泄露,那么深入思考和联想,其实摄像头大多使用RTSP的协议族群。同样的,在视频厂商对客户的定制化需求二开过程中存是否在着泄露问题?

我们对RTSP协议在github进行了搜索,发现确实存在此问题。


分布情况

github分布

使用特定搜索语法得到67,564个rstp视频流相关仓库代码,其中文本类型第一,C++第二,C第三,Roff Manage第三。

实战中的那些视频安全(二)


fofa分布

protocol="rtsp" && country="CN"

目前FOFA系统最新数据(一年内数据)显示中国范围内共有4,405,638个RSTP服务对外开放。

实战中的那些视频安全(二)

区域分布统计

实战中的那些视频安全(二)

原理分析

RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。

RTSP五步会话原理如下

step1:
C->S:OPTION request //询问S有哪些方法可用
S->C:OPTION response //S回应信息中包括提供的所有可用方法

step2:
C->S:DESCRIBE request //要求得到S提供的媒体初始化描述信息
S->C:DESCRIBE response //S回应媒体初始化描述信息,主要是sdp

step3:
C->S:SETUP request //设置会话的属性,以及传输模式,提醒S建立会话
S->C:SETUP response //S建立会话,返回会话标识符,以及会话相关信息

step4:
C->S:PLAY request //C请求播放
S->C:PLAY response //S回应该请求的信息
S->C:发送流媒体数据

step5:
C->S:TEARDOWN request //C请求关闭会话
S->C:TEARDOWN response //S回应该请求

wireshark实战抓包,获取最开始的几步认证即可。

OPTIONS rtsp://207.62.193.8:8554 RTSP/1.0
CSeq: 1
User-Agent: Lavf58.29.100

RTSP/1.0 200 OK
Server: StarDot H264 Server
CSeq: 1
Public: DESCRIBE,OPTIONS,PLAY,SETUP,TEARDOWN

DESCRIBE rtsp://207.62.193.8:8554 RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: Lavf58.29.100

RTSP/1.0 200 OK
Server: StarDot H264 Server
CSeq: 2
Cache-Control: no-cache
Content-Length: 289
Content-Type: application/sdp

利用与检测方式

观察一个比较完整rtsp格式

rtsp://user:[email protected]/xxx/xxx

因此检测的时候主要分几种类型:

1、rtsp未授权访问

2、404需要爆破路径

参考提取:https://blog.csdn.net/weixin_30445169/article/details/99396374

3、401需要账密认证

参考github泄露以及常见弱口令字典

写了一个针对上面三种情况的rtsp协议检测工具。

工具思路:

1、先对所有地址进行存活检测。

2、对于存活的地址,如果返回200,则存在未授权访问,返回401则进行帐密爆破,返回404则先进行路径爆破,路径爆破成功则进行帐密爆破。

3、字典可在github上面收集+常见弱口令

构造socket包

func genOPTIONS(url string, seq int, ua string) string {
    msgRet := "OPTIONS " + url + " RTSP/1.0rn"
    msgRet += "CSeq: " + strconv.Itoa(seq) + "rn"
    msgRet += "User-Agent: " + ua + "rn"
    msgRet += "rn"
    return msgRet
    }

func genDESCRIBLE(url string, seq int, ua string) string {
    msgRet := "DESCRIBE " + url + " RTSP/1.0rn"
    msgRet += "CSeq: " + strconv.Itoa(seq) + "rn"
    msgRet += "User-Agent: " + ua + "rn"
    msgRet += "Accept: application/sdprn"
    msgRet += "rn"
    return msgRet
    }

socket通信

func Handler(serv models.Service) int {
    ua := "LibVLC/2.0.3 (LIVE555 Streaming Media v2011.12.23)"
    addr := fmt.Sprintf("%v:%v", serv.Ip, serv.Port)
    conn, err := net.DialTimeout("tcp", addr, vars.Timeout)
    if err != nil {
    return 0
    }
    conn.SetReadDeadline(time.Now().Add(vars.Timeout))
    conn.SetWriteDeadline(time.Now().Add(vars.Timeout))
    seq := 1
    msg := genOPTIONS(serv.Url, seq, ua)
    data := make([]byte, 255)
    _, err = conn.Write([]byte(msg))
    _, err = conn.Read(data)
    if err != nil {
        return 0
    }
    seq += 1
    msg = genDESCRIBLE(serv.Url, seq, ua)
    _, err = conn.Write([]byte(msg))
    _, err = conn.Read(data)
    if err != nil {
        return 0
    }
    if strings.Contains(string(data), "200 OK") {
    return 200
    }
    if strings.Contains(string(data), "401 Unauthorized") {
        return 401
    }
    if strings.Contains(string(data), "404 Not Found") {
        return 404
    }
return 0
}

运行截图

实战中的那些视频安全(二)

通过VLC media player可直接访问

实战中的那些视频安全(二)

实战中的思路总结

rtsp

发现各个地区均存在不同程度的rtsp未授权访问、弱口令的情况。

另外加入其他的关键字配合搜索在github往往有意外的惊喜;由于泄露了不少是内网的地址,在内网渗透中换个思路“寻求外界的帮助”往往可以有有所突破。

扫描工具项目地址:https://github.com/darkarmorlab/rtspscan/releases/tag/v1.0

应用层

除了rtsp协议,一些web应用也存在未授权访问、弱口令的情况。

未授权

实战中的那些视频安全(二)

弱口令:admin/12345

实战中的那些视频安全(二)

单个摄像头设备的漏洞分析和利用方式此处就不展开了,但是往往把这种不经意发现的未授权和目标做一些关联会让你渗透更加顺畅。

 

PS:某去掉了自己的标识,但是在它公网同网段发现了此类IOT设备,后续渗透中也证明了是他们的资产。


实战中的那些视频安全(二)

扫码关注玄甲
玄甲实验室是默安科技旗下的技术研究团队,团队由长期在一线的攻防专家组成。团队主要致力于Web渗透,APT攻防、对抗,红队工程化,从底层原理到一线实战进行技术研究,深入还原攻与防的技术本质。

本文始发于微信公众号(玄甲安全实验室):实战中的那些视频安全(二)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月27日01:42:07
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战中的那些视频安全(二)https://cn-sec.com/archives/477540.html

发表评论

匿名网友 填写信息