找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 72|回复: 0

【iotsec-zone】某摄像头存在通用未授权命令执行漏洞

[复制链接]

2万

主题

128

回帖

10万

积分

管理员

积分
105776
发表于 2022-9-23 16:06:20 | 显示全部楼层 |阅读模式 IP:山东省 移动/数据上网公共出口

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
【iotsec-zone】某摄像头存在通用未授权命令执行漏洞

将摄像头与互联网进行连接初始化之后,使用nmap扫描摄像头的开放端口:

可以看到摄像头开放了五个端口,这里关注到80端口,在浏览器中输入http://192.168.2.116:80

发现会302重定向到http://192.168.2.116/home.htm,最终跳转到http://192.168.2.116/xxx/xxx/XXTest.asp

而这个网站什么都没有。因为有官方的手机App,所以在不逆向的前提下可以通过抓包分析手机与云服务的通信状态,其中有一个关于固件升级的包:

  • //---------------------------------------------------------------固件升级
  • POST /xx/xx/query_device_upgrade_task HTTP/1.1
  • Host: www.xxx.com
  • Content-Type: application/json; charset=utf-8
  • Content-Length: 278
  • Accept-Encoding: gzip, deflate
  • User-Agent: okhttp/3.12.8
  • Connection: close
  • {
  •     "header": {
  •         "device_list": [
  •             "xxx"
  •         ],
  •         "seqno": "xxx",
  •         "user_id": "xxx",
  •         "package_name": "xxx",
  •         "language": "zh_CN",
  •         "client_version": "x.x.x.x",
  •         "token": "xxx",
  •         "phone_model": "xxx"
  •     }
  • }
  • //---------------------------------------------------------------响应包
  • HTTP/1.1 200 OK
  • Date: Mon, 04 Jul 2022 00:57:26 GMT
  • Content-Type: text/plain; charset=utf-8
  • Content-Length: 463
  • Connection: close
  • Set-Cookie: xxx=xxx; path=/
  • Set-Cookie: xxx=xxx; path=/
  • Server: elb
  • {
  •     "error_code": "0",
  •     "error_msg": "success",
  •     "body_info": {
  •         "upgrade_task": [
  •             {
  •                 "device_id": "xxx",
  •                 "is_force": "N",
  •                 "main_version": {
  •                     "device_version": "xx.xx.xx.xx",
  •                     "version_type": 0,
  •                     "url": "http://xxx.img",
  •                     "md5sum": "xxx",
  •                     "remark": "1.优化固件功能,提高用户体验。",
  •                     "is_support_sdcard_prealloc": 1,
  •                     "last_app_version": ""
  •                 },
  •                 "sub_versions": [],
  •                 "switchto_sdcard_prealloc": "Y"
  •             }
  •         
  •     }
  • }

即,当摄像头存在固件升级时可以获取固件的URL,将固件下载后因为发现固件过小,所以可以知道是”增量包”而不是”全量包”,在ubuntu中尝试使用firmware_mod_kit的./extract-firmware.sh进行解压:

摄像头使用的架构为MIPS 32位小端序:

来到固件目录,使用grep命令尝试搜索关键字:

goahead中的http://"+location.hostname+"/xxxx/xxx/upload_firmware.asp引人注目,在浏览器中访问:

发现未授权固件上传漏洞。查看增量包中的两个shell脚本,修改其中的startapp:

发现内置的telnetd接口,取消其注释,使用firmware_mod_kit的build-firmware.sh重新打包:

为了避免一些不必要的问题,我们将打包后的固件重命名为原升级包的名称:

使用upload_firmware.asp上传:

再次使用nmap扫描端口:

开放了telnet的23端口,尝试连接:

嘶,需要密码,回到配置文件,修改为telnetd -l /bin/sh &

保存修改后重新打包上传:

重新尝试telnet登录:

拿到root shell,可以使用的命令如下:

命令还不少,有base64、wget等。web目录在:

这能访问的asp页面不少啊,其中就包括前面使用的upload_firmware.asp。关于telnetd:

telnetd -l /bin/sh &:telnetd -l /bin/sh表示直接启动shell,&表示telnet后台运行。并且因为摄像头有云服务,所以它也是通外网的:

因为这个摄像头有base64命令,所以可以通过它来上传或下载文件,比如现在我要下载goahead,对文件进行base64编码:

将编码保存到txt中,然后base64 --decode即可:

总结:
  • 通过流量分析软件/固件的行为,或许是一个很便捷的方法。
  • 厂商不注重对某些网页的鉴权,甚至可以导致任意刷写修改过后的固件。
  • 通过取消注释启动脚本中的telnet服务,即可建立主机与摄像头的telnet链接。
  • 对文件进行base编码即可达到下载传输文件的目的。




转自:iotsec-zone
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|IOTsec-Zone|在线工具|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-5-6 21:54

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表