【工具篇】Firmwalker车联网实用小工具介绍

news2024/10/1 1:23:46

hollk

前言
firmwalker这个小工具在工作中也一直在用,正好领导说要写一篇这个工具的分析说明文章,经过询问可以发表博客。由于一直在用,所以末尾优劣势部分存在一些主观想法。

编写不易,如果能够帮助到你,希望能够点赞收藏加关注哦Thanks♪(・ω・)ノ
PS:文章末尾有联系方式,交个朋友吧~

本文链接:https://hollk.blog.csdn.net/article/details/129039641
防爬链接,未经允许请勿转载

概述

Firmwalker是一个纯shell语言编写的脚本工具项目,主要适用于物联网中固件文件系统检索扫描工作。可以在https://github.com/craigz28/firmwalker中下载项目源码,项目目录结构如下:

在这里插入图片描述

使用方法

首先下载firmwalker项目至本地并进入项目目录:

git clone https://github.com/craigz28/firmwalker && cd firmwalker-master

为firmwalker.sh赋予执行权限:

chmod +x firmwalker.sh

使用格式如下:

./firmwalker.sh {被测试文件系统根目录} {扫描结果输出路径}

例:./firmwalker.sh ~/work/squashfs-root/ ~/work/result/firmwalker.txt

功能介绍

在实际物联网、车联网渗透测试过程中,firmwalker主要在前期信息搜集阶段进行使用。根据在文件系统中进行关键字检索,获取可能具有价值的敏感数据或文件。其中firmwalker可以实现的主要功能有:

检索etc/shadow和 etc/passwd

根据data目录中passfiles文件记录的passwdshadow*.psk进行关键字检索。

在这里插入图片描述

检索Unix-MD5 hashes

根据firmwalker.sh中提供的正则表达式检索文件系统中的Unix-MD5 hashes。

在这里插入图片描述

枚举etc/ssl目录下内容。

根据firmwalker.sh中提供的ls命令枚举etc/ssl目录下内容。

在这里插入图片描述

搜索 SSL相关文件,例如.pem、.crt 等。

根据data目录中sslfiles文件记录的*.crt*.pem*.cer*.p7b*.p12*.key进行关键字检索。

在这里插入图片描述

搜索 SSH相关文件

根据data目录中sshfiles文件记录的authorized_keys *authorized_keys*host_key*host_key*id_rsa*id_rsa*id_dsa*id_dsa**.pub进行关键字检索。

在这里插入图片描述

搜索配置文件

根据data目录中files文件记录的*.conf*.cfg*.ini进行关键字检索。

在这里插入图片描述

寻找数据库文件

根据data目录中dbfiles文件记录的*.db*.sqlite*.sqlite3进行关键字检索。

在这里插入图片描述

寻找脚本文件

根据firmwalker.sh中提供的*.sh作为关键字进行检索。

在这里插入图片描述

搜索其他 .bin文件

根据firmwalker.sh中提供的*.bin作为关键字进行检索。

在这里插入图片描述

查找关键字,例如 admin、password、remote 等

根据data目录中patterns文件记录的upgradeadminrootpasswordpasswdpwddropbearsslprivate keytelnetsecretpgpgpgtokenapi keyoauth进行关键字检索。

在这里插入图片描述

搜索物联网设备上使用的常见网络服务器

根据data目录中webservers文件记录的apachelighttpdalphapdhttpd进行关键字检索。

在这里插入图片描述

搜索常见的二进制应用,例如 ssh、tftp、dropbear等

根据data目录中binaries文件记录的sshsshdscpsftptftpdropbearbusyboxtelnettelnetdopenssl进行关键字检索。

在这里插入图片描述

搜索 URL、电子邮件地址和 IP地址

根据firmwalker.sh中提供的正则表达式进行检索URL、电子邮件地址和IP地址。

在这里插入图片描述

支持使用 Shodan CLI调用 Shodan API(实验性)

在这里插入图片描述

优劣势(主观)

优势

通过在实际工作中对firmwalker的使用,得出如下四点优势说明:

l 可移植性强

由于firmwalker项目是纯shell脚本,因此具备多平台可移植性特点。在无法获取固件文件系统的情况下,firmwalker可以直接拷贝至设备内部终端使用。

l 体积小

去除不必要的eslintrc扩展json文件、项目logo、README文件,主体功能文件仅占86k存储空间,如果将/data/目录下匹配字段写进firmwalker.sh主执行文件中,整体存储空间占比可以压缩至更小。在存储空间有限的物联网设备中,小体积工具更容易在设备终端中直接运行。

l 速度快

由于firmwalker为脚本工具,因此不需要调用复杂的动态链接库进行功能实现,大部分工作仅依靠系统命令直接完成,因此扫描整个文件系统的速度很快。

l 正常情况下敏感数据文件检索相对全面

在firmwalker.sh工具中集成了多种敏感文件的检索功能,相比于手动逐个敏感文件检索,firmwalker检索范围更加全面。可以在车联网渗透测试中的系统安全以及数据安全部分发挥巨大作用。

遇到的问题

Firmwalker在具备如上四点优势的同时,也存在一下五点劣势点:

l 非正常情况下存在漏报

Firmwalker从技术实现的角度来看,主要原理是对关键字匹配。当关键字被开发者有意修改为其他字符时,firmwalker由于没有启发式算法协助,将无法对修改后的关键字进行扫描检索,导致漏报。

当关键字在二进制文件中不以字符串数组形式存储,而是以字符拼接形式存储的情况下,firmwalker无法检索完整关键字,导致漏报。

l 存在误报情况

Firmwalker常用grep命令进行关键字检索,当非敏感二进制文件的字符串表中存在部分关键字时,firmwalker仍判定该二进制为敏感文件,导致误报。

l 部分功能鸡肋

Firmwalker具备静态代码分析功能,但静态分析的主体功能并不是在脚本中,而是调用eslint工具进行实现。在设备终端中可能没有足够容纳eslint的空间,如果可以容纳eslint,安装和执行的限制都很大,这和firmwalker轻量化的特点背道而驰。并且有更加强大的开源工具可以替代执行静态分析功能,例如FACT。

l 检索IP、URL、Email时间过长

由于IP、URL、Email是根据正则表达式进行检索,匹配速度低,导致整体扫描时间增加。个人在车联网测试过程中会将这三项扫描注释掉。

l 无单项敏感数据文件操作功能

在单独增加、修改、删除/data/目录下某文件中的关键字后,无法对操作的关键字进行单独检索扫描,只能整体执行一遍。当然,可以通过注释的方式去掉不需要检索扫描的部分来缩短扫描时间,但实际上增加了工作量。

总结

Firmwalker作为一个脚本工具,具备轻量化、多平台适配、检索敏感文件全面等特点。虽然存在一些小问题,但也都是在极特殊情况下才会显现而出。整体来开,firmwalker在车联网渗透测试中,可以大大缩减工作量,从而快速定位敏感数据文件,在系统安全以及数据安全方面具有独特的作用。

交个朋友吧~
扫描下方二维码,一起讨论研究👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/348519.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud, SpringCloud-Alibaba,Nacos概述

目录 SpingCloud概述 1.SpringCloud是什么? 2.SpringCloud和SpringBoot的关系 3.SpringCloud-Alibaba概述 3.1.Netflix公司项目进入维护模式 3.2.Spring Cloud Alibaba是什么? 3.3.Spring Boot和Spring Cloud的版本号说明 3.Nacos总结 SpingCloud概述 1.Spri…

蓝桥杯刷题——基础篇(一)

这部分题目,主要面向有志参加ACM与蓝桥杯竞赛的同学而准备的,蓝桥杯与ACM考察内容甚至评测标准基本都一样,因此本训练计划提供完整的刷题顺序,循序渐进,提高代码量,巩固基础。因竞赛支持C语言、C、Java甚至…

【JAVA八股文】算法、数据结构、基础设计模式

算法、数据结构、基础设计模式1. 二分查找2. 冒泡排序3. 选择排序4. 插入排序5. 希尔排序6. 快速排序7. ArrayList8. Iterator9. LinkedList10. HashMap1)基本数据结构2)树化与退化3)索引计算4)put 与扩容5)并发问题6&…

从lettcue插件看skywalking

lettcue 的写操作是异步的。io.lettuce.core.RedisChannelWriter.write进行写入,io.lettuce.core.protocol.RedisCommand进行异步读取数据 skywalking 插件大体逻辑 在方法执行前,通过ContextManager创建span创建span的同时,判断trace上下文…

零信任-Akamai零信任介绍(6)

​Akamai零信任介绍 Akamai是一家专注于分布式网络服务的公司,它提供了一系列的互联网内容和应用加速服务。关于Akamai的零信任,它指的是Akamai的安全架构中不存在任何一个环节是可以被单独的控制或影响的,因此可以提供更高的安全性。通过使…

ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)

文章目录ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)Text-to-Text 模型ChatGPTLaMDAPEERMeta AI Speech from BrainText-to-Code 模型CodexAlphacodeText-to-Science 模型GalacticaM…

超简单!pytorch入门教程:Tensor

超简单!pytorch入门教程:Tensor 一、pytorch安装 安装pytorch之前,需要安装好python(废话),还没安装过python的宝宝请先移步到廖雪峰的python教程,待安装熟悉完之后,再过来这边。 …

C代码中访问链接脚本中的符号

一、目的在之前的《GNU LD脚本命令语言(一)》、《GNU LD脚本命令语言(二)》我们介绍了GNU链接脚本的知识点,基本上对链接脚本中的SECTION、REGION、以及加载地址与执行地址的关系等内容有了一定的了解。本篇主要讲解链…

工业4.0是如何优化垃圾处理行业的

如今,工业4.0正在影响着制造业和物流等行业,其发展潜力在未来还有望进一步扩大。一些全球领先的垃圾处理公司已经开始在水处理和废物回收等领域应用工业4.0。工业4.0的创新给这个领域带来了一些必要的改进。随着环境危机的加剧,垃圾处理行业面…

2022年最新数据库调查报告:超八成DBA月薪过万,你拖后腿了吗?

数据库管理员属于IT行业高薪职业的一种,近几年关于数据库管理员的薪资统计文章也层出不穷,那么当前,DBA们的薪资究竟到达了怎样的水平呢?墨天轮数据社区发布最新《2022年墨天轮数据库大调查报告》,数据显示超八成DBA月…

《MySQL学习》 全局锁和表锁

一.MySQL锁的分类 二.全局锁 全局锁对整个数据库加锁,可以执行如下命令,整个数据库都将处于只读状态。 Flush tables with read lock ;我们可以执行 unlock table进行解锁 unlock table ;读操作 非读操作(阻塞) 全局锁的典型使…

【并发编程】【2】进程与线程

并发编程 2.进程与线程 2.1 进程与线程 进程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在 指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管…

开源大数据分析工具有几大内容?

在数据越来越重要的今天,数据管理的重要性不言而喻。引用专业的开源大数据分析工具可以为企业实现数字化办公,提升效率,提高数据管理品质和效率。我们今天就一起来了解下开源大数据分析工具的详细内容吧。 一、实现数据分析的重要性 在以前&a…

Java面试——Spring 事务

目录 1.什么是Spring 事务 2.Spring 事务的开启方式 3.Spring事务的实现方式/原理 4.事务传播机制 5.事务隔离级别 6.事务失效的原因 1.什么是Spring 事务 事务在逻辑上是一组操作,要么执行,要不都不执行。 如下: Begin; insert into…

【java】Spring Boot --spring boot项目整合xxl-job

文章目录1、源码下载地址2.文档地址3.源码结构4.初始化数据库脚本5.配置调度中心xxl-job-admin5.1 修改调度中心配置文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties5.2 启动调度中心5.3 访问调度中心管理界面6.创建执行器项目6.3 载入配置…

Framework——【MessageQueue】消息队列

定义 队列是 Apache RocketMQ 中消息存储和传输的实际容器,也是 Apache RocketMQ 消息的最小存储单元。 Apache RocketMQ 的所有主题都是由多个队列组成,以此实现队列数量的水平拆分和队列内部的流式存储。 队列的主要作用如下: 存储顺序性…

BUUCTF-练习场-WEB-第一部分(8道)

[极客大挑战 2019]EasySQL 1payload:1 or 11#是闭合前面的查询语句,or 11恒成立,可以使用or句子绕过判断,#用于注释,注释后面的内容不再执行,所以该sql命令会返回表内所有内容,其实就是实现一个…

JavaSE学习day7_01 面向对象

1. 类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。即各个对象的总称,比如学生是一个类,但是学生有很多个,每一个称之为对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的…

Apifox-接口调用、自动化测试工具

Apifox简介 Apifox 的定位是Postman Swagger Mock JMeter,具有API文档管理、API调试、API Mock、API 自动化测试等功能。可以通过一种工具解决之前使用多种工具的数据同步问题。高效、及时、准确! 安装 Apifox的安装非常方便,直接下载安…

ASEMI中低压MOS管ASE60N10参数,ASE60N10规格

编辑-Z ASEMI中低压MOS管ASE60N10参数: 型号:ASE60N10 漏极-源极电压(VDS):100V 栅源电压(VGS):20V 漏极电流(ID):60A 功耗(PD&…