物联网之固件提取
2022-9-30 16:31:5 Author: 轩公子谈技术(查看原文) 阅读量:9 收藏

mmp 不小心x掉了,写了那么多都没了,又要从头写

什么是物联网,我就不说了,除了web安全,其他的关于机器的渗透都算是物联网。

固件又是个啥?运行在硬件上的软件,里面的文件系统提取后是二进制文件,也包含相关代码,如php,asp。

固件分析流程

固件提取  电路板截取数据  烧flash  官网下载固件分析  概念范围广,可理解挖0day,如路由器rce文件系统提取  cramfs  jffs2  yaffs2  initrd  Squashfs  ext4文件系统加载  启动项  sh文件文件系统分析  配置文件  密钥文件

binwalk  固件提取工具,除了它还有其他的工具,自行百度

自动识别固件,进行自动提取

binwalk -Me xxx.bin

解压后会出现_xxx.bin.extracted目录

进到目录后就是他的文件系统

这种squashfs的目录就直接是文件系统,如果是jffs2, yaffs2 就需要对文件系统进行提取,通常是用unyaffs工具。

然后对文件系统进行信息收集

使用firmwalker进行信息收集

- etc/shadow 和 etc/passwd- 列出 etc/ssl 目录- 搜索 SSL 相关文件,例如 .pem、.crt 等。- 搜索配置文件- 寻找脚本文件- 搜索其他 .bin 文件- 寻找诸如管理员、密码、远程等关键字。- 搜索物联网设备上使用的常见网络服务器- 搜索常见的二进制文件,例如 ssh、tftp、dropbear 等。- 搜索 URL、电子邮件地址和 IP 地址- 使用 Shodan CLI 调用 Shodan API 的实验性支持

运行脚本即可

emm,真垃圾

我用find都比它找得多

find . -name "*.conf" -o  -name "*.sh" -o -name "*.pem"

查找之后呢,就是找二进制文件进行逆向分析,路径大致在usr/sbin/

具体请看这里D-Link DSL-3782 代码注入漏洞分析

挖day,代码审计,只不过通过汇编和伪代码的方式查找,这就很费时间

命令行参数:argv操作,经典的栈溢出环境变量:getenv()输入数据文件:read() fscanf() getc() fgetc() fgets() fscanf()键盘输入/stdin: read,  scanf   getchar   gets网络数据:read  recv  recvfrom字符串复制:strcpy(char *dest,char *src)  strncpy命令执行:system  execve字符串格式化:strcat格式化字符串:sprintf   snprintf

再然后就是固件模拟,因为没有money买真实设备,就需要模拟器进行搭建,三种模拟方式后续的话,我应该会写出来,可自行百度下面三种方式。

firmadyne

FirmAE

qemu


文章来源: http://mp.weixin.qq.com/s?__biz=MzU3MDg2NDI4OA==&mid=2247487130&idx=1&sn=29e3b2cb39179ee5db767fcbe76c5a15&chksm=fce9a955cb9e2043c6e8a71f85ec012dc1b4972f3844f63773596793342231e125c7ade86018#rd
如有侵权请联系:admin#unsafe.sh