YARA是一款用于检测、分析各种恶意代码的软件,它配备一个短小精悍的命令行搜索引擎,它由纯C语言编写,优化了执行的效率。规则语法的简单明了和布尔逻辑使YARA成为一个完美的IOC。它已经集成到恶意软件沙箱,蜜罐客户端,取证工具以及网络安全工具中。
YARA恶意代码检测分析工具支持的平台
YARA支持多平台,可以运行在Windows、Linux、Mac OS X,并通过命令行界面或yara-python扩展的Python脚本使用。
网站恶意代码检测工具基本功能
垃圾邮件分析
让我们看一下垃圾邮件分析的应用场景。如果你的团队需要在事件响应过程中分析可疑的邮件消息,你极有可能会发现携带恶意宏的文件或重定向至漏洞利用工具的站点。olevba.py是一款流行的分析可疑微软office文档的工具,它属于oletools工具包的一部分。当分析嵌入的OLE对象来识别恶意活动时,它会使用YARA功能(更多内容可参看)。在应对漏洞利用工具时,thug一款流行的低交互式蜜罐客户端,模拟成web浏览器,也会使用YARA来识别漏洞利用工具家族。在上述两种场景中,事件响应团队之间交换YARA规则可以大大增强垃圾邮件的分类和分析的能力。
取证分析
另一种值得一提的应用场景是取证。Volatility一款非常流行的内存取证工具,可以支持YARA扫描来查明可疑的对象,比如进程、文件、注册表键值或互斥体(mutex)。相对于静态文件的规则,因为它需要应对加壳器和加密器,分析内存对象的YARA规则通常可以获得更广的观察范围。在网络取证领域,yaraPcap使用YARA扫描网络数据包文件(PCAP)。类似于垃圾邮件分析的应用场景,使用YARA规则进行取证可以起到事半功倍的作用。
终端扫描
最终,还有值得留意的应用场景是端点扫描。不错,在客户端计算机上进行YARA扫描。由于YARA扫描引擎是跨平台的,我们完全可以在Windows系统上使用Linux系统上开发的特征规则。唯一需要解决的问题是如何分发扫描引擎,下发规则,以及将扫描结果发送到某个中心位置。Hipara,一款C语言开发的主机入侵防御系统,可以实现基于YARA规则文件的实时扫描,并将报告结果发回到某个中心服务器。另一种解决方案是自己编写python脚本来调用YARA模块,同时使用REST库实现推拉(pull/push)的操作。
YARA怎么用
YARA实战检测网站恶意代码
1、环境准备
在实战之前,我们需要一个Linux系统环境和下列工具:
需要用到:pescanner.py
此外你需要一个段恶意代码来分析,你可以从Malwr.com网站上获取样本:
警告:样本是一个真实的恶意软件,确保分析是在可控、隔离和安全环境中进行,比如临时性的虚拟机。
2、场景模拟
在周三下午4点,你的邮箱接受到一份事件报告的通知邮件。它似乎是一个可疑的HTTP文件下载(文件哈希值为f38b0f94694ae861175436fcb3981061)命中了网络IPS的特征库。你迅速检查IPS报警的详情,查看它是否把样本存入待深入分析的临时仓库中。你可以发现文件已被成功的保存下来,且文件类型是PE(可执行文件),绝对值得一看。下载文件之后,你需要进行初始的静态分析:利用Google和Virustotal查询这个哈希值,分析PE文件头来寻找恶意的企图。
3、挑战
创建匹配下述条件的YARA规则:
1. 与调试信息相关的可疑字符串
2. text区块的MD5哈希值
3. 高熵值的.rsrc区块
4. GetTickCount导入符号
5. Rich签名的XOR密钥
6. 必须是Windows可执行文件
4、静态分析
第1个挑战是寻找与调试信息相关的字符串,尤其是我们可以搜索pdb文件(程序数据库文件)的路径。我们使用strings命令输出文件中的ASCII字符串。

在大量输出中,dddd.pdb字符串显得格外显眼,这个字符串可能正是我们要找的。记住,如果字符串确实与调试信息有关,它应该属于RSDS头的一部分。让我们使用99136偏移作为中心输出样本的部分字节。

RSDS字符串的出现让我们确信dddd.pdb是与调试信息相关的字符串。接下来,我们需要计算.text区块的哈希值,为此我们需要使用hiddenillusion版本的pescanner.py,并把样本的名称作为参数。


pescanner.py输出一个有关PE头结构的扩展报告,其中包含区块(Section)列表及相应哈希值。记录下来.text区块的哈希值(2a7865468f9de73a531f0ce00750ed17),接下来我们需要利用该值创建YARA规则。
同时在pescanner.py的报告中,我们发现.rsrc具有非常高的熵值。这是一个非常可疑的指标,表明代码经过高度的混淆。创建规则时一定要记住这条信息,因为它帮助我们应答挑战的第3项。最后,报告也列出了导入符号,其中我们可以看到GetTickCount,一个非常有名的反调试计时函数。这可以帮助解决挑战的第4项。顺便提一下,报告也提到了文件类型,表明是它一个PE32文件,满足挑战的最后一项。
最后,我们需要着手处理用于编码Rich签名的XOR密钥,有关Rich签名的更多信息参看此文。你可以通过两种方式来检查密钥的存在与否:通常你可以转储样本前面的字节,足以覆盖PE文件的DOS头即可,Rich签名开始于文件的0×80偏移处,而XOR密钥位于紧随Rich字符串之后双字(Dword)。

记住x86字节顺序是little-endian,因此你需要调整双字(Dword)的字节顺序,所以XOR密钥的值为0x887f83a7或十进制2290058151。

接下来就简单了,让我们一起使用如下内容创建名为rule.yar的YARA规则文件。通过使用–print-module-data参数,YARA将会输出PE模块的报告,其中包括rich_signature区块和十进制形式的XOR密钥值。
- PC官方版
- 安卓官方手机版
- IOS官方手机版













Apifox(Api调试管理工具)2.1.29.1 绿色版
小乌龟代码管理工具(TortoiseGit)2.13.0.1 中文免费版
SoapUI破解版5.7.0 最新版
小皮面板(phpstudy)8.1.1.3 官方最新版
Ruby3.0(ruby运行环境)3.0.2 官方版
gcc编译器( MinGW-w64 9.0.0绿色版)免费下载
宝玉编辑助手0.0.05新版
火花编程软件2.7.2 官方pc版
猿编程少儿班客户端3.1.1 官方版
Restorator 2009中文版单文件汉化版
十六进制阅读小工具
IT码农工具软件1.0 中文免费版
python爬虫实战入门教程pdf免费版
Postman Canary(网页调试软件)官方版7.32.0绿色免费版
大耳猴少儿编程客户端1.1.2 官方免费版
excel批量sql语句(通过excel构建sql工具)1.0 免费版
软件添加弹窗和网址工具1.0 中文免费版
天霸编程助手2.1 单文件中文版
ida pro 中文破解版(反编译工具)7.0 永乐汉化版64位
VBA代码助手3.3.3.1官方版
Node.js开发实战教程百度云完整版【36课】
猿编程电脑端3.9.1.347 官方PC版
蒲公英 Android SDKV4.1.11 官方最新版
蒲公英iOS SDK2.8.9.1 官方最新版
WxPython中文可视化编辑器1.2 简体中文免费版
Python代码生成器1.0 中文免费版
C语言代码实例助手1.0 免费版
c primer plus第6版中文版高清版
C++ Primer Plus 2021电子版最新版
notepad++7.8.2 中文免费版
wpe pro Alpha 0.9a 中文绿色版




Microsoft Spy++9.10 中文绿色版
源代码保护工具(Dotfuscator Professional
MDB数据库管理软件1.0 中文免费版
源码安全监测工具(Fortify SCA 2016)【附cr
RTX ServerSDK 2015官方最新版
阿猫串口调试助手2.4.0.0绿色免费版
精易论坛SQL语句生成器2.1 绿色最新版 【
java开源报表系统(JasperReports Library)6
独立团游戏作坊窗口分析工具【VIP全套教程及