TP-Link的C2和C20i型号易受命令注入(经过验证的root权限的RCE),DoS,不正确的防火墙规则的攻击。
产品描述
TP-Link是中国的计算机网络产品制造商,生产诸如路由器和IOT设备。
漏洞摘要
直到TP-Link C2和C20i的最新固件版本为止(0.9.1 4.2 v0032.0 Build 160706 Rel.37961n),HTTP管理接口中都存在命令注入,经过身份验证的攻击者可获取具有root权限的远程shell。
攻击者可以通过Dos来攻击HTTP服务器,而且默认情况下,WAN接口上的防火墙规则过于宽松。
详述 - 具有单个HTTP请求的RCE
使用所谓的“Diagnostic”页面,攻击者可以在使用ping工具的远程主机上运行包括telnetd在内的任何命令:
在验证时(参考base64格式的credentials),直接发送这个HTTP请求就可以启动路由器25 / tcp端口上的telnetd服务,而不需要许可:
攻击者也可以使用backsticks来执行命令:
结果:
用这个RCE,攻击者就可以编辑 /dev/mtd3 来转存、修改配置。 配置是XML格式,位于MTD(64K)的起始位置(从偏移0x10开始)。
如果攻击者在u-boot分区的头部随机写字符,发送这个字符串,会使路由器无法完成引导,被阻塞掉:
详述 - DoSing HTTP服务器
在验证(请参阅base64格式的凭据)时,直接发送此HTTP请求将导致远程HTTP服务器崩溃:
详述 - Iptables的许可规则
通过在/var/tmp/dconf/rc.router中编写命令并在此文件上使用system(),可以在/lib/libcmm.so中生成缺省iptables规则。
/var/tmp/dconf/rc.router:
默认情况下,每个接口上的SNMP端口都是打开的:
可以使用iptables在路由器上验证:
你也可以查看/var/tmp/dconf/rc.router来检测。
庆幸的是,尽管SNMP配置可以通过隐藏的main/snmp.html网页来修改,但有迹象显示,snmpd已经从防火墙的镜像中移除了。
详述 - 杂谈
这些二进制文件(/usr/bin/cos, /usr/bin/tmpd, /lib/libcmm.so)都是设计的很糟糕的程序,大量的system()函数都是以root权限运行。
/usr/bin/cos 是一个在 /etc/init.d/rcS (cos &)结尾运行的拥有root权限的守护进程: 它使用系统函数启动所有的守护进程 (httpd ntpc dnsProxy dhcpd dhcpc snmpd upnpd diagTool voip_server voip_client pjsua cwmp wlNetlinkTool pppd dyndns igmpd zebra ushare smbd vsftpd telnetd, noipdns hostapd ipsecVpn radvd mldProxy racoon wscd...)
/usr/bin/tmpd是一个root权限的守护进程,它监听了 127.0.0.1:20002端口.
/lib/libcmm.so是包含所有主系统函数的二进制文件 ,比如(system reinitialisation [admin:$1$$iC.dUsGpxNNJGeOm1dFio/:0:0:root:/:/bin/sh], wifi configuration, debugging with TFTP[hi dutserver!], VPN configuration, ifconfig interfaces, insmod /lib/modules/pptp.ko, ...)
`Vsftpd` 的部分默认密码是弱口令:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)