D-Link DIR-842家用路由器被发现Telnet密码存在爆破可能【From腾讯玄武实验室】
原文链接:D-Link Router CVE-2021-27342 Vulnerability Writeup
GitHub链接:Exploit for D-Link telnetd vulnerability CVE-2021-27342
补充:面向web应用的SQL注入和XSS漏洞黑盒测试工具(WASec)
作者在买到一个D-Link DIR-842路由器后发现使用admin用户登录web界面可以打开Telnet服务,通过Telnet服务可以以admin身份远程连接路由器,可以执行高权限的任何事,所以可以找一找Telnet中的漏洞。
作者使用黑盒测试的方式发现了一个漏洞,可以利用这个漏洞暴力破解Telnet的密码。作者发现路由器的Telnet认证使用一种反暴力破解的机制,即当用户输入密码错误的情况下,会返回一个延迟的响应,来限制用户尝试猜测密码的速度。这就引入了一个基于时间的侧信道攻击。
路由器的Telnet认证方式为,若输入密码正确,则立即返回;而当输入密码错误,则会延迟3秒,并返回登录失败的响应。作者利用这一特性,进行密码的暴力破解,即若没有在0.05s(可以认为是立即返回,该数值会根据网络情况变化,不过肯定是要在3s以内)内获得登陆成功的响应,就说明该密码错误,那么立即重新建立一个连接进行其他密码的尝试。这就避免了3s的延迟等待,加快了破解的速度。
作者还利用以上破解的密码登录Telnet,并获取了admin权限,即远程登录了路由器,并将telnet服务二进制程序代码copy到本地【作者的这一系列操作值得参考】。借助IDA反汇编,查找sleep的交叉引用,发现了延迟3s的关键函数sleep_zzz_nap_time。该函数在调用时,参数为3,并且在执行后返回登陆失败的响应。源代码与黑盒测试发现的特性完全一致。
现在还不知道作者是如何进行黑盒测试的,本人对这一方面缺乏研究,待之后学习。