IRFuzz:一款基于YARA规则的文档文件扫描工具
时间:2022-07-28
本文章向大家介绍IRFuzz:一款基于YARA规则的文档文件扫描工具,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
工具介绍
IRFuzz是一款基于YARA规则的扫描工具,可以帮助广大研究人员扫描文档以及文件。
目前,该工具适用于Linux和macOS操作统平台。
依赖组件
1、Yara:仅使用了该项目最新发布的源代码,我们需要编译并安装它,或者直接通过pip命令来安装yara-python。
2、Yara规则:广大研究人员可以点击【https://github.com/Yara-Rules/rules】下载Yara规则,或导入自己自定义的规则集。
3、Python依赖。
该项目使用了pipenv来管理依赖组件,如需安装依赖组件并激活虚拟环境,请运行下列命令:
$ pipenv install
$ pipenv shell
工具下载
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://github.com/oxiqa/IRFuzz.git
工具运行
$ python -m watchd.watch ~/tools/IR/ -y rules/maldocs --csv csvfile.csv
支持的功能
使用inotify扫描新的文件;
如果不支持inotify,则使用轮询方式扫描文件;
支持自定义扩展;
删除模式将删除匹配的文件;
递归目录扫描;
使用yara字符串和ctime枚举匹配的Yara函数;以CSV格式存储扫描结果;
自定义扩展
$ python -m watchd.watch ~/tools/IR/ -y rules/maldocs --csv csvfile.csv --extensions .zip,.rar
匹配YARA规则
首先,点击【这里】生成令牌。然后运行下列命令,并在网站中配置匹配警告提醒,这里支持Telegram或电子邮件:
$ python -m watchd.watch ~/tools/IR/ -y rules/maldocs --csv csvfile.csv --extensions .php --token tokenhere
删除匹配的文件
$ python -m watchd.watch ~/tools/IR/ -y rules/maldocs --csv csvfile.csv --delete
轮询(如果不支持inotify)
$ python -m watchd.watch ~/tools/IR/ -y rules/maldocs --csv csvfile.csv --polling
添加—poll选项可以强制使用轮询机制来检测数据目录中的修改,这种方式与操作系统底层机制相比,速度要慢很多,但针对SMB文件系统的话,则只能使用这种方式。
默认支持的扩展
Microsoft Office Word支持的文件格式:
.doc .docm .docx .docx .dot .dotm .dotx .odt
Microsoft Office Excel支持的文件格式:
.ods .xla .xlam .xls .xls .xlsb .xlsm .xlsx .xlsx .xlt .xltm .xltx .xlw
Microsoft Office PowerPoint支持的文件格式:
.pot .potm .potx .ppa .ppam .pps .ppsm .ppsx .ppt .pptm .pptx .pptx .pptx
zipdump.py
IRFuzz使用了zipdump.py来对ZIP压缩文件进行分析。
项目地址
IRFuzz:【https://github.com/oxiqa/IRFuzz】
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python 技巧篇-字符串灵活处理:字符串过滤、字符串拼接,字符串切片,特殊、超长字符串的处理实例演示
- Python 技巧篇-开头注释怎么写最好,开头注释需要包含什么,开头注释的重要性
- 在CentOS8下安装Python3和ansible
- 开发一个属于自己的Spring Boot Starter
- 如何让Tomcat使用APR连接器
- VueJS中使用前端虚拟接口Mock.js
- CentOS7下源码安装MySQL 8.x
- 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法
- Jmeter接口压测快速入门
- 超简单!Qt Designer插入图片,styleSheet加入图片,Qt加入背景图片
- 关于领域模型转换的那些事儿
- Windows图标显示异常解决方法。桌面图标异常,开始菜单图标异常,任务栏图标异常。图标缓存位置。
- Python基本语法与数字类型
- Qt Designer设置背景图片、颜色不影响其它组件小技巧,控件层级设置,组件的继承,styleSheet设置样式。
- 搭建高可用的Harbor