freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

DLINK DCS-5020L无线云摄像机远程代码执行漏洞分析
secist 2018-05-18 13:00:22 559761

简介

本文主要是向大家演示,如何找到物联网(IOT)设备中的漏洞。查找以下命令注入的过程可以分为3个步骤,有点类似于100 point CTF challenge:下载二进制文件,运行字符串,跟踪系统调用到原点的输入。

DLINK DCS-5020L

“DCS-5020L无线N Day&Night云台/倾斜云台摄像机是一款日夜型网络摄像机,可轻松连接到您现有的家庭网络,并支持在各种移动设备上进行远程观看。 它具有平移,倾斜和数码变焦功能,可让您使用单台相机查看更为广阔的区域,内置Wi-Fi扩展器,轻松扩展无线覆盖范围,夜视距离达5米,声音和运动检测终极的安心无忧,H.264视频压缩为高质量的图像。“

提取固件

与任何物联网设备一样,我们需要做的第一件事就是(如果我们有权访问它)从固件映像中提取文件系统。而对于这种设备,第一次binwalk扫描不会显示任何东西:

1.png

我们正在寻找的是某种形式的嵌入式文件系统,比如squashfs。如果找不到它,通常是因为它被使用了分层压缩。 我们需要做的就是使用-M选项,递归运行binwalk。最终,我们在2层压缩下发现了cpio文件系统。

2.png

让我们来查看下负责Web服务器的httpd二进制文件。

文件名:alphapd

Md5sum: ea622a926c435e4637f4852536aafa8c

漏洞

就像文章开头所说的那样,首先我们在二进制文件上运行字符串,看看会发生什么:

3.png

这些看起来像是传递给系统的命令。这里的'sed'命令非常有趣,看起来好像是从某个地方输入的。下一步是跟踪输入,看看我们是否可以控制它。

我们可以看到这里有两个引用我们感兴趣的字符串的函数。

4.png

反过来,每个函数都在setFormDefineManagement中被引用:

5.png

这些都是我们可以发送请求的POST表单。 例如,如果我们以下面的形式更改密码,我们向setSystemAdmin发出POST请求:

6.png

应该注意的是,您需要拥有管理员凭据才能访问此页面,稍后再介绍。还有一点需要注意的是,setSystemUserModify表单总是返回一个404,所以我们坚持分析setSystemAdmin。

因此,从sub_42DCCC开始,代码将从非易失性RAM以及websGetVar中取值。

7.png

这里的一个关键信息是对CheckSystemVar的调用,这段代码调用websGetVarCheck来处理大量的输入值,包括AdminID。

8.png

然后websGetVarCheck调用checkVarString,如下所示:

9.png

这显然只是一个switch/case结构。我们感兴趣的值是AdminID,可以看到它的值必须小于13个字节。

10.png

所以我们知道AdminID的约束是它必须少于13个字节。完成所有这些后,通过格式字符串传递给我们的AdminID参数来调用DoSystem。

11.png

很显然,攻击者可以使用一个简单的payload来躲避'sed'命令,比如‘`touch a`’。 另一个例子是AdminID=a’`telnetd`’,它允许用户登录为“a”,并将此视作新的root帐户:

12.png

注意,我们使用空密码登录。

进一步说明

我们还发现,我们可以通过在大多数密码字段中发送长密码,来对web server segfault。如果我们发送198个字节,服务会发生段错误,并且会导致总线错误。

不过可惜的是,我找不到让gdbserver进入设备的方法,因此也无法转储核心文件并抓取它。

以下是使用210A的DDNSPassword参数向/setSystemNetwork发出POST请求的示例。 

13.png

掌握凭据的攻击者可以利用该漏洞,在摄像机的Web界面上导致其拒绝服务。如果我们能找到在设备上调试二进制文件的方法,也有可能做到RCE。

影响

目前,这些设备中有近7000个连接到互联网:

14.png

MISC

受影响的版本 - 固件1.14.09

受影响的二进制文件 - Alphapd - ea622a926c435e4637f4852536aafa8c

补丁 - DLink的公告

TIMELINE

2017.11.21 - 向厂商披露,收到William Brown的回复,并发送给研发部门

2017.11.29 - MITRE CVE请求,分配CVE 2017-17020,然后发送给Dlink并更新它们。 W. Brown询问公开披露时间,我们告诉他没有时间限制,只有在补丁发布后才会被公开披露。

2018.4.27 - Dlink的解决方案正式上线

2018.4.27 - 博客上线并更新了CVE

*参考来源:fidusinfosec,FB小编 secist 编译,转载请注明来自FreeBuf.COM

# IoT # DLINK
本文为 secist 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
secist LV.9
每个人的心中都有一个梦。。
  • 369 文章数
  • 267 关注者
ATTCK-PenTester-Book:根据ATT&CK知识体系编制的长达400页的渗透手册
2020-02-10
Sniffle: 蓝牙5和4.x LE嗅探器
2019-11-23
Docem:向docx odt pptx等文件中嵌入XXE或XSS Payload
2019-11-11
文章目录