首页
社区
课程
招聘
[翻译]在无线网络摄像头(P2P)WIFICAM摄像头的自定义http服务器中发现多个漏洞
发表于: 2017-6-8 11:36 22711

[翻译]在无线网络摄像头(P2P)WIFICAM摄像头的自定义http服务器中发现多个漏洞

2017-6-8 11:36
22711

作者:通过对摄像头安全性的分析,我发现一个预授权RECroot权限的1250型号摄像头。Shodan列出了185000个易受攻击的摄像头。 “云”协议通过仅使用目标摄像头的序列号,在攻击者和摄像头之间建立明文UDP隧道(以绕过NAT和防火墙)。最终,攻击者可以暴力破解摄像头的凭据。

 

无线网络摄像头(P2PWIFICAM是一款中文网络摄像头,可以远程流式传输。

无线网络摄像头(P2WIFICAM是一款整体设计不佳的摄像头,具有很多漏洞。这款摄像头与很多中国其他的摄像头非常相似。

看起来大部分的摄像头是由一家中国公司在散装(OEM)出售,而买方公司转售他们开发的定制软件开发和提供冠名品牌。无线网络摄像头(P2WIFICAM是其所属品牌之一。

所以,各种摄像头以不同的名称,品牌和功能出售。 HTTP接口对于每个供应商是不同的,但是拥有相同的漏洞。 OEM厂商使用GoAhead(嵌入式Web服务器)的定制版本,并在其中添加了易受攻击的代码。

 

GoAhead表示,GoAhead本身不受漏洞的影响,但是在GoAhead周围进行定制和特定开发的OEM供应商应当对安全漏洞的负主要责任。

由于代码重用,这些漏洞普遍存在于一个巨大的摄像头列表(尤其是InfoLeakRCE)中,它们允许使用具有预认证漏洞的1250多种摄像头型号执行root命令。

漏洞概览:

      1. CVE-2017-8224 - Backdoor account(后门帐户)

      2. CVE-2017-8222 - RSA key and certificatesRSA密钥和证书)

      3. CVE-2017-8225 - Pre-Auth Info Leak (credentials) within the custom http server(在自定义http服务器中预授权信息泄漏(凭证))

      4. Authenticated RCE as root(以管理员身份进行认证,从而远程控制设备)

      5. Pre-Auth RCE as root(以管理员身份预授权,从而远程控制设备)

      6. CVE-2017-8223 - Misc - Streaming without authentication(没有认证流)

      7. CVE-2017-8221 - Misc - "Cloud" (Aka Botnet)(“云”(又名僵尸网络))

     

云管理中的漏洞影响了大量P2P或“云”摄像头。

我(作者)的测试表明影响在摄像头上运行的自定义http服务器的InfoLeak会影响至少1250多种摄像头型号。它们可以用于以root身份执行RCE 因此,这些摄像头可能会受到预认证RCE的影响:

Shodan列出的185000个易受攻击的摄像头

 

默认情况下,这些摄像头开启并运行Telnet服务:

摄像头中存在一个后门帐户:


/system/www/pem/ck.pem包含具有私有RSA密钥的Apple证书:


HTTP接口由自定义http服务器提供。这个HTTP服务器实际上是基于GoAhead的,并由摄像头的OEM供应商修改(导致列出的漏洞)。它允许2种认证:

htdigest认证或在URI中进行身份验证(?loginuse = LOGIN&?loginpas = PASS)。

默认情况下,Web目录包含到配置文件(system.inisystem-b.inicontain凭据)的符号链接:

使用有效凭据,攻击者可以检索配置,如下所示:

要浏览.cgi文件,攻击者也需要进行身份验证:

但是,似乎没有正确地检查.ini文件的访问。 攻击者可以通过在URI中提供一个空的loginuse和一个空的登录名来绕过身份验证:

提供一个POC

此漏洞允许攻击者窃取ftp帐户和smtp帐户(电子邮件)凭据

RCE存在于ftp配置CGI中,在这里这里的一系列不同型号的摄像头充分的证明了这一点。

目录/被定义为只读属性,因此在此目录中不可能进行修改。

命令注入位于set_ftp.cgi中(参见$ftp x.com)):

在执行tcpdump时,我们可以看到x.comDNS解析:

所以,ftp x.com被执行。我们可以使用telnetd的二进制文件启动无身份验证的telnetd访问:

通过测试,我们在端口25 / tcp获得一个root帐户:

/ etc目录属性是只读的。 所以,注入命令不能写入/ etc 注入位于/tmp/ftpupload.sh中:


通过在自定义的http服务器中组合预认证信息泄漏漏洞,然后将Root认证的RCE作为root身份进行验证,攻击者可以在局域网或互联网上实现以root身份进行身份验证。

提供了一个漏洞利用,可用于获取反向连接的root权限的RCE

漏洞利用将:

1.通过连接到目标摄像头的远程自定义HTTP服务器来提取有效的凭据

2.nc接受反向连接

3.执行有效载荷

4.攻击者将使用netcat在第二个终端上收到带有root权限的shell

5.清理配置文件中的有效载荷

它影响到超过1250中摄像头型号。

演示:

第二步:

这里提供一个有效的漏洞利用代码:

或者,你可以在这里得到它 

攻击者可以使用10554 / TCP端口使用运行在摄像头上的缺少认证的RTSP服务,在不进行认证的情况下查看流:

或者:


默认情况下,摄像头使用“云”功能。

你可以使用tcpdump嗅探到摄像头的流量,这是非常可怕的:

摄像头尝试解析www.baidu.comopenapi.xg.qq.com,联系硬编码的IP和主机:

看起来这是“云”的功能,默认情况下启用。 此功能的安全性未被证明。

用户可以通过厂商提供的Android应用程序来管理摄像头: object.p2pwificam.client.apk.

Netcam 360也是类似的:

看起来,摄像头所使用的网络协议非常弱:

1.摄像头使用UDP联系远程服务器,

2.应用程序使用UDP联系远程服务器,

3.应用程序向远程服务器发送请求,询问具有特定序列号的摄像头是否在线,

4.服务器将通过“摄像头不存在”,“ 摄像头离线”或“摄像头在线”进行回复,

5.如果摄像头在线,则应用程序和摄像头之间将自动建立UDP隧道,使用云服务器作为连接部分。

然后,应用程序使用UDP隧道到达摄像头:

1.客户端将向凭据发送HTTP请求(仍然以明文形式)

或者

2. 当凭据有效或无效时,摄像头将通过UDP使用HTTP进行回复。

如果凭证有效,摄像头将回复:

如果凭证无效,摄像头将回复:

3. 如果证书是有效的,那么应用程序将通过发送附加凭据的HTTP请求来获得摄像头的CGI托管文件(?loginuse = valid_userloginpas = valid_pass

如果认证是确定的,所以很容易的转储明文所有的配置!

注意:这个跟踪是使用下面列出的应用程序之一完成的,以确保应用程序共享相同的“云”网络(似乎在摄像头上运行的守护程序不严格遵守HTTP协议 - 注意缺少/ - 但它确实可行!)。

如果认证不正常 摄像头返回:

由于没有检查,攻击者可以简单地对凭据进行暴力破解。

应用程序发送:


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//