码迷,mamicode.com
首页 > 其他好文 > 详细

智能设备安全吗—Synack逆向Dropcam过程整理

时间:2015-04-22 18:09:29      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:security   arm   dropcam   逆向工程   摄像机   

  Dropcam是多功能的无线网络视频监控摄像头。具备网络直播、网络存储、双向通话等功能,还可以把动态物体出现的时间标记下来。2014年6月,谷歌旗下的Nest公司宣布,以5.55亿美元的现金价格收购Dropcam。目前Dropcam是亚马逊网站上最畅销的安全摄像头,并且已经进入了苹果和百思买公司的零售商店。Dropcam已经成为一种流行的婴儿监控摄像头。当然目前中国版的“dropcam”也开始有了,比如小度i耳目、联想看家宝、小蚁智能摄像机(前阵子躺枪,被称为Dropcam在中国的"合伙人",发现小蚁用的Ambarella(安霸)A7LS处理器,dropcam用的A5系列)、360智能摄像机。

  智能设备或者说物联网设备正在快速的被研究开发出来,给用户带来很好的用户体验,但是另一方面,体验的同时,安全隐私性缺令人担忧,下面整理Synack团队在2014年黑帽大会上的作品—Implanting a dropcam

  企业安全研究公司 Synack 对 16 个常见的物联网设备进行了测试,从 SmartThings 的设备,到 Nest 和 Lyric 恒温器等。结果发现,它们都存在不同程度的安全问题,其中,联网摄像头是最不安全的。

  虽然他们是通过物理接触方式进行攻击,但不排除以后有人可以截获物联网设备,然后更换其中的配件。将来此类攻击可能会不断增加。尤其注意二手货或者返修产品哦~~

  下面是他们对dropcam的逆向攻击步骤:

  1. 物理打开摄像机,通过对dropcam的串口、USB接口进行探测,在物理上连接上dropcam.技术分享
  2. 然后启动dropcam,尝试进入bootloader。这里有两种方式
    • 上电然后点击“enter”键
    • 将串口tx/rx的管脚(pin3 &pin 4)短接
  3. 进入boot后,输入help命令,一般嵌入式开发中使用help可以显示系统可以支持的命令。研究者发现了以下命令:setenv  ,同时对setenv进行命令帮助追踪setenv help  。最终实现对dropcam的boot启动参数的修改如下:
    amboot>setenv cmdline DCSECconsole=ttyS0 ubi.mtd=bak root=ubi0:rootfs rw rootfstype=ubifs <span style="font-family: KaiTi_GB2312;">init=/bin/sh</span>
    该命令表明,设置boot参数到 /bin/sh下
  4. 尝试删除root密码
    # ls -l /etc/shadow
    /etc/shadow ->/mnt/dropcam/shadow
    # more /etc/fstab
    <filesystem> <mount pt> <type>
    /dev/root / ext2
    …
    NFS configurationfor ttyS0
    /dev/mtdblock9/mnt/dropcam jffs2
    # mount -tjffs2 /dev/mtdblock9/mnt/dropcam
    # vi /mnt/dropcam/shadow
    root:$1$Sf9tWhv6$HCsGEUpFvigVcL7aV4V2t.:10933:0:99999:7:::
    # more /mnt/dropcam/shadow
    root::10933:0:99999:7:::

  5. 查看dropcam的arm系统环境
    #uname -a
    Linux Ambarella 2.6.38.8 #80 Aug 2013    armv6l GNU/Linux
    # ps aux | grepconnect
    821 root 0:10/usr/bin/connect
    823 root 0:13 /usr/bin/connect              dropcam specific binaries
    824 root 0:00/usr/bin/connect


  6. 发现dropcam的opensssl使用了之前的漏洞版本1.0.1e。使用heartleech 获取摄像头的私有证书,这样就可以利用该证书做坏事了。 (注:Heartleech 可利用 Heartbleed 漏洞自动提取 OpenSSL 私钥信息。
  7. 发现dropcam的程代码执行漏洞。
    •  Dropcam使用嵌入式linux,里面有busybox.BusyBox是一个可执行程序,它把很多标准Linux工具的简版组合成在一起。 BusyBox 1.20.0之前版本中的DHCP客户端(udhcpc)没有从DHCP服务器响应中正确转义某些shell元字符,导致存在代码执行漏洞。远程攻击者可通过欺骗DHCP服务器以超级用户权限执行任意代码。攻击者可以进行反汇编出dropcam的代码。
  8. 修改IOS 上的Dropcam APP。发起Mitm(man in the middle ) 攻击。技术分享
  9. 克隆dropcam的音频
    思想是:所有的音视频流都得从系统的API接口和IOCTL接口流出到dropcam的云端。
    因此尝试连接音频卡: 
    # arecord   (ALSA声卡驱动的录音程序)
    #LD_PRELOAD=./injectMe.so /usr/biin/connect
    ALSA(Advanced Linux Sound Architecture)可以用来读取读取音频,例如:
    Get audio via snd_pcm_readn()
    通过这种方式,研究者写了一段注入代码,里面读取音频数据,并把它发送到自己的服务器中。
    
    技术分享
  10. 获取视频
    A) 打开设备/dev/iav
    B)  通过ioctl获取h264的参数,  IAV_IOC_GET_H264_CONFIG_EX
    C)  通过ioctl 找到系统构建(BSB)内存映射图     IAV_IOC_MAP_BSB
    D) 通过ioctl 找到DSP 内存映射图            IAV_IOC_MAP_DSP
    E)  通过ioctl 获取流的状态   IAV_IOC_GET_ENCODE_STREAM_INFO_EX
    F)  最后,通过ioctl读取流数据,IAV_IOC_READ_BITSTREAM_EX


  11. 控制视频技术分享

智能设备安全吗—Synack逆向Dropcam过程整理

标签:security   arm   dropcam   逆向工程   摄像机   

原文地址:http://blog.csdn.net/wang_walfred/article/details/45197071

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!