IOT
作为设备本身就是个完整的计算机,需要硬件知识
IOT能干什么?
通过外部路由器打进外网,然后拿到小米音响的shell,进而控制台灯、音响、风扇、扫地机器人的开关(补天杯,IOT全场景的破解)
通过云管理平台攻击企业级AP(纯内网,完全ping不通ip)获取SHELL进而渗透
没有钥匙的情况下,黑掉一台车开走(天府杯)(宝骏的汽车,最新版的系统)
什么是IOT?
从设备侧来说:是可以联网的嵌入式设备,就是一个完成的计算机
什么是嵌入式?
从计算机的角度说:就是能控制更多种类的外设的专用计算机
文章/视频推荐
【朱有鹏】嵌入式1.1ARM那些你得知道的事儿
https://www.bilibili.com/video/BV1L4411t7Df?from=search&seid=11271188295963278674&spm_id_from=333.337.0.0
单片机向左,嵌入式向右
https://blog.51cto.com/astonzhu/2061513
站在2018看单片机和嵌入式芯片方案选型和发展趋势
https://blog.51cto.com/astonzhu/2135684
Arduino、arm、树莓派、单片机四者有什么不同?
https://www.zhihu.com/question/21045562
(应用场景不同的计算机)
现在的冰箱:linux,windows,android
(神秘的程序员们)
了解硬件:去玩我的世界,尝试用红石电路的或门与门非门搭一个冯诺依曼计算机出来
什么是固件?
固化在设备上的软件(通常而言指的是Flash中被固化、执行固定功能的软件)
PC上就是BIOS(虚拟机上让选过)
PC主机:
CPU中内存之下还有一块区域,就是BIOS
固件获取:
1.互联网搜索
(1)官网:DNS,路由器,电视盒子
(2)DIY论坛
(3)搜索
(4)渗透
2.获取更新包
(1)触发更新(被动/主动)
(2)更新检测(FTP/HTTP/HTTPS)
(3)下载固件(update,bin)
3.拆设备(360黑客马拉松IoT破解赛,48小时拆各种设备)
认板子,确认哪个是电源模块,CPU,存储器,存储单元,外部I/O设备,调试接口,然后找到Flash,读取(怎样快速认识:芯片上有印字,然后查找)(论坛:家电维修论坛,我爱音频网,恩山无线论坛,什么值得买)
区分flash的类型,找连接方式
读取:编程器(维修行业术语,用于flash读写)(推荐:EZP xpro v2)
固件解包:binwalk,mount
通过熵值来判断是否加密(binwalk)(加密具有更高熵值)
(私货(拉仇恨):华为大部分都加密,但是小米很多都不加密)
分类截图:
逆向截图:
IDE
分析攻击面:设备对输入进行处理的全流程
输入意味着有接口
处理意味着有逻辑
首先分析有哪些输入:
例:oppo摄像头的TF卡执行漏洞(启动时会读取sd卡,所以在那个路径下挂tf,执行一个反弹shell
嵌入式基本上用c语言(为了效率),为什么不用rust?因为生态没有建好,会c的程序员多
定位程序:找厂商的二进制文件
1.屏蔽操作系统自带的二进制,定位厂商定义的服务
2.开源组件安全,低版本1day漏洞
搜索字符串(非常有用)
递归查找字符串grep -Rn "mqtt" 2 > /dev/null
强网杯 2021 线下 RW Mi Router