Binwalk:后门(固件)分析利器
http://blog.csdn.net/testing_is_believing/article/details/14091179
Binwalk介绍
Binwalk是一个固件的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。
最简单使用方法很直接; 提供固件文件路径和文件名即可:
$ binwalk firmware.bin

如果单单基于签名匹配的话有些文件类型是无法准确的识别到.
所以检测这些类型签名的文件需要特定插件的配合(通过插件来实现),如果不启用将大大增加扫描时间和占用大量内存
例如,扫描zlib压缩包的时候,得需使用zlib的插件:
$ binwalk --enable-plugin=zlib firmware.bin
过滤功能
包含过滤器
-y选项仅包括指定的搜索文本匹配的结果。搜索字符串(文本)应当使用小写,包括正则表达式,并且可以指定多个-Y选项。 下列搜索结果只包含文本“文件系统”中搜索出来的结果。(也就说使用了 filesystem的Y选项的话结果中只包含文本字符结果)
$ binwalk -y filesystem firmware.bin
排除过滤器
-x选项是排除搜索结果中的指定符合规则的文本(或者字符串)。 搜索字符串(文本)应当使用小写,包括正则表达式,并且可以指定多个-X选项。 下列例子中搜索时将排除“jffs2”字符串:
$ binwalk -x jffs2 firmware.bin
高级过滤器
可以将包含和排除过滤两功能结合使用:
例子:下列搜索结果即包含文本“文件系统”中搜索出来的结果又排除jffs2字符串结果。
$ binwalk -y filesystem -x jffs2 firmware.bin
提取文件
手动提取文件
Binwalk可以提取数据,发现在目标文件中指定提取规则使用 – dd选项。用于提取指定规则的格式是:
<type>:<extension>[:<command>]
从哪里提取:
- type 是签名中描述的小写字符串(支持正则表达式)
- extension 是将数据保存到磁盘时使用的文件扩展名
- command 是当数据已保存到磁盘后可选的命令执行语句
默认情况下,除非备用文件名中指定签名情况意外,文件名是十六进制偏移签名被发现。
下面的例子演示如何使用 – dd选项,将提取任何包含字符串’zip归档文件扩展名的’zip’的签名,并随后执行“解压缩”命令指定提取规则。可指定多个–dd选项:
$ binwalk --dd='zip archive:zip:unzip %e' firmware.bin
要注意占位符的使用 如:“%e’”: 此占位符将被替换为所提取的文件的相对路径时,将执行命令。
自动化(自动)提取
-e选项可以用来执行自动数据提取的基础上提取规则中指定的默认的extract.conf文件:
$ binwalk -e firmware.bin
- 提取选项的工作原理相同,除了你必须指定一个自定义提取规则文件的路径:
$ binwalk -e firmware.bin $ binwalk --extract=./my_extract.conf firmware.bin
递归提取
很多次,提取的数据可能需要进一步binwalk的分析。为了帮助自动化,binwalk可以递归扫描提取的数据和由外部减压或提取工具创建的文件指定-M选项和-e选项一起使用:
$ binwalk -Me firmware.bin
请注意,-M选项将提取的文件8层递归,且忽略外部提取工具可以创建任何目录。
操作码
$ binwalk -A firmware.bin
转换功能
binwalk使用 -C 选项来完成多个不用文件类型转换; 通常最好是使用-l选项来限制这种扫描:
$ binwalk -l -C firmware.bin
比较功能
Binwalk可以生成一个或多个文件的十六进制转储和差别。在文件当中相同字节的是绿色显示,不同的是红色显示,蓝色表示只是有些文件当中的不同部分。
$ binwalk -W firmware1.bin firmware2.bin firmware3.bin
字符串
除了上述基于签名的扫描,binwalk可以对目标文件进行一个智能的字符串分析,虽然不是完全替代的Unix strings一样强大功能,但是binwalk通过应用一些非常简单的验证规则筛选出最“垃圾”的字符串,和忽略一些无顺序的数据块
$ binwalk -S firmware.bin
熵分析
Binwalk 对目标文件可以进行熵分析目标文件,生成原始的熵数据和/或积表示的曲线图的数据:
$ binwalk -E firmware.bin
签名或字符串的分析,以及可以结合熵分析。例如,下面的命令将扫描目标文件,可执行代码和熵图上叠加的扫描结果:
$ binwalk -AE firmware.bin
启发(或者引导式)
Binwalk的启发式扫描作为加密或压缩的高熵的数据块进行分类的尝试。虽然这种类型的扫描是不是100%准确。
在一般情况下,压缩的数据或已使用弱加密算法将有一个整体的高熵的加密,但小有出现断块低熵的数据。已具有较强的熵算法加密的数据不会有这些小块的低熵的数据:
$ binwalk --heuristic firmware.bin DECIMAL HEX HEURISTIC ANALYSIS
-------------------------------------------------------------------------------------------------------------------0x0Compressed/ moderate entropy data, low entropy blocks
0x45400Compressed/ moderate entropy data, low entropy blocks
0x58000Compressed/ moderate entropy data, low entropy blocks
0x5AC00Compressed/ moderate entropy data, low entropy blocks
0x5D400Compressed/ moderate entropy data, low entropy blocks
0x5DC00Compressed/ moderate entropy data, low entropy blocks
请注意,此扫描需要两个周期(一个用于初始熵分析,以及第二更紧密的启发式分析),这需要一定时间来完成的,尤其是目标文件特别打的话花费更多的时间。
插件功能
插件列表
使用 –list-plugins选项能获得可使用的binwalk插件的名称和属性列表:
$ binwalk --list-plugins
启用插件功能
一些插件在默认情况下是禁用的。这些插件可以启用时用该选项 –enable-plugin选项
$ binwalk --enable-plugin=foo firmware.bin
禁用插件功能
一些插件在默认情况下是启用的。这些插件可以禁用时用该选项 –diable-plugin选项
$ binwalk --disable-plugin=foo firmware.bin
或者,所有的插件可以禁用 ,使用该选项:–disable-plugins 选项:
$ binwalk --disable-plugins firmware.bin
日志记录功能
Binwalk日志输出通常是很大,所以它往往是文件保存方式记录
-f选项允许你指定一个日志文件。需要注意的是,如果没有指定-Q选项的话结果会打印到stdout以及日志文件。
$ binwalk -f binwalk.log firmware.bin
日志文件可以CSV格式保存
$ binwalk -f binwalk.log --csv firmware.bin
升级功能
通过 magic files和配置文件,加上使用 -u选项binwalk依靠svn check-in功能轻松升级到最新版本(需要root权限来更新)
$ sudo binwalk -u
如果使用http代理功能,在环境变量中设置http_proxy。
下载地址:http://code.google.com/p/binwalk/
如文中未特别声明转载请注明出自:FreebuF.COM
Binwalk:后门(固件)分析利器的更多相关文章
- 固件分析工具Binwalk
固件分析工具Binwalk 固件是保存在嵌入式设备存储器的程序.它负责设备运行和功能,如路由器等设备.通过分析固件文件,可以了解设备的工作方式,并且确认是否存在漏洞.Binwalk是Kali Li ...
- 施耐德NOE77101后门漏洞分析
固件下载地址: GitHub - ameng929/NOE77101_Firmware 文件目录结构,这里只列出了一些主要的文件信息: ├── bin ├── ftp ├── fw ├── rdt ├ ...
- vxworks固件分析
前言 vxworks 的固件分析流程 1.用binwalk查看固件基本信息并解压固件 2.获取固件相关信息, cpu架构,大小端 3.确定固件的加载地址 4.用IDA加载固件,并修复符号表 5. 分析 ...
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
- 给Clouderamanager集群里安装可视化分析利器工具Hue步骤(图文详解)
扩展博客 以下,是我在手动的CDH版本,安装Hue. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz)(博主 ...
- 给Ambari集群里安装可视化分析利器工具Hue步骤(图文详解)
扩展博客 以下,是我在手动的CDH版本平台下,安装Hue. CDH版本大数据集群下搭建Hue(hadoop-2.6.0-cdh5.5.4.gz + hue-3.9.0-cdh5.5.4.tar.gz) ...
- Xshell高级后门完整分析报告
Xshell高级后门完整分析报告 from:https://security.tencent.com/index.php/blog/msg/120 1. 前言 近日,Xshell官方发布公告称其软件中 ...
- 窗口、消息查看分析利器Spy++
Spy++ —— 窗口.消息查看分析利器 Spy++ —— 窗口.消息查看分析利器 2016年07月15日 00:25:22 阅读数:23170 1,简介 Microsoft Spy++是一个非常 ...
- 一个PHP混淆后门的分析
洒家的朋友的公司的某个站发现最近被上传了一个后门程序.为了取证我们抓取了HTTP请求流量,看到了一堆莫名其妙看似经过混淆的请求,响应也是看似base64的乱码.洒家用了2个小时静态分析了一遍,并写了利 ...
随机推荐
- Unity Shader 之 透明效果
透明效果 透明效果一般有两种实现方法: 第一种,使用透明度测试(Alpha Test) 第二种,使用透明度混合(Alpha Blending) 透明度测试和透明度混合机制: 透明度测试(Alpha T ...
- python tesseract 识别图片中的文字的乱码问题(ubuntu系统下)
OCR(Optical Character Recognition):光学字符识别,是指对图片文件中的文字进行分析识别,获取的过程. 首先,需要安装 tesseract-ocr(tesseract O ...
- Eclipse里选中一个变量后,这个类里的该变量不变色了?
Eclipse里选一个变量后,这个类里的该变量不变色了. 1.使用“Alt+Shift+O”对该提示功能的开/关切换 2.可以在以下设置选中后的文本提示颜色 window--> Prefere ...
- [HDU1290]献给杭电五十周年校庆的礼物
[HDU1290]献给杭电五十周年校庆的礼物 题目大意: 问\(n(n\le1000)\)个平面能够将一个三维空间分成几部分. 思路: 公式\(\frac{n^3+5n+6}6\). 源代码: #in ...
- hdu 5206 Four Inages Strategy 判断是否是正方形
Four Inages Strategy Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem. ...
- js判断移动设备
在开发中可能需要去判断用户的设备重定向到相应的网址: 1. 判断 iPhone Android iPod if((navigator.userAgent.match(/iPhone/i))||(n ...
- mui 图片预览
1. 图片放大滑动预览需要 mui.zoom.js mui.previewimage.js 2. 调用 mui.previewImage(); 3. 滑动过程中禁止图片缩放 注释掉下面代 ...
- 通过手机音频口,实现与单片机通讯,做电子签名成功n
手机端的Ukey便携产品, 可以管理证书.加密解密.电子签名 : 1.通讯稳定,生成签名成功率100% 2.证书固化,私钥安全 3.走手机音频接口,通用.跨平台 4.耗电少,自带电池可长期供电,且可充 ...
- LT3759 宽输入电压范围升压 / 负输出 / SEPIC 控制器 可在输入电压低至 1.6V 的情况下工作
引言当今的许多电子设备都需要一个负输出或正输出转换器,有时则是两者均需要.另外,它们还必需采用各种电源运作,包括 USB.墙上适配器.碱性电池和锂电池等. 为了从可变输入电压产生不同极性的输出,电源设 ...
- 关于jQuery中的 offset() 和 position() 的用法
---恢复内容开始--- 在jQuery中有两个获取元素位置的方法offset()和position().position()方法是在1.2.6版本之后加入的,为什么要引入这个方法呢?这两个方法之间有 ...