首页
社区
课程
招聘
[原创]Garlic文件智能分析系统预告版
发表于: 2016-5-12 20:39 12609

[原创]Garlic文件智能分析系统预告版

2016-5-12 20:39
12609
www.asm64.asm/garlic   demo版本 正式版本还需要一段时间。。
附加个图片

----------------------------上面为2016年12月14日更新
garlic软件文件分析系统是用来分析未知文件格式的一种利器。
没有信息安全就没有国家安全,而漏洞挖掘也号称信息安全领域的最高境界。
在漏洞挖掘领域,文件格式类的漏洞是影响最广,挖掘最难的一类漏洞。
而fuzzing测试为文件格式类漏洞挖掘方法主力军。fuzz测试的流程一般是研究文件公开的协议结构,
通过结构变异工具而去构造畸形文件。那么问题来了,如果文件结构是未知的我们该怎么办?
据了解,业内人员一般都通过逆向程序来了解未知结构的结构约束信息。这不但需要大量的时间,而且需要大量的人力。最重要的是该方法不能复用。也就是说当我们对A未知结构花费了数天甚至数个月才了解了他的结构信息后,除了可能挖掘A产品本身问题以外(或许你什么也挖掘不到),没有任何的收益。明天当您需要对B产品进行挖掘的时候,你还要重新来一遍。而未知文件结构那么多,您要逆到何时?
未知文件结构真的就让我们束手无策吗?真的没有一块软件来分析未知文件结构吗??

大家好,我是garlic,我生于2016年的4月1日。我今天6周了,也就是42天了。
牛刀小试,今天我来表演一下我是怎么识别未知结构的,就拿zip压缩包为例子吧。
假如我们现在要挖掘杀毒软件处理zip压缩包的安全问题。
在传统的漏洞研究中,如果你要挖掘程序处理zip压缩包的安全问题时候,必须对压缩包的文件结构学习后方可进行fuzz测试。如果该结构是公开的还好,如果是非公开的,那么我们只能去找IDA老大哥进行逆向分析了。而今天我的到来,就让IDA老大哥休息一下吧。
废话不多说,开始。
首先我们先构造10个文件,文件内容随便写,文件名字随机命名。如图1 图2:


然后我们用winrar 分别对这10个样本进行压缩,选择zip压缩格式。压缩方式是存储。把这10个压缩包分别命名为0.zip--9.zip,压缩后如图3 图4。


好了,这时候该我上场了。动态分析今天用不到,今天直说静态分析就好了。先点击读取样本,然后点击静态分析,大约等待1秒即可分析出结果。
如图5

下面就是我们的分析结果,以0.ZIP为例子输出。

告诉你一个秘密:[如果括号内为DWORD或者WORD类型,中括号表示该结构不会变化,而大括号表示该结构会根据样本而变化。其他的很容易理解,我就不班门弄斧啦。

50 4B 03 04 [0000000A] [0000]

[3 byte (FuzzNum)] 48

[Crc32(44,54)]{0000000A} {0000000A} {0000000E}

[FuzzBlock(30,54)]


50 4B 01 02 {001F} {0000000A} {0000} [3 byte (FuzzNum)] 48

[Crc32(44,54)]{0000000A} {0000000A} {000E} {00000024}

{00000000} {00000020} {00000000}

[FuzzBlock(100,114)]{000A} {00000020} {0000} {0001} {0018}

[3 byte (FuzzNum)] 7C

[3 byte (FuzzNum)] 01

[7 byte (FuzzNum)] 01

[7 byte (FuzzNum)] 01


50 4B 05 06 {00000000} {0001} {0001} {00000060} {00000036} {00000000}


图6是传统的文件结构分析方法,我有她漂亮吗?




哦,我的家在http://www.asm64.com/garlic/42day.html欢迎做客

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 2
支持
分享
最新回复 (21)
雪    币: 60
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
+1 很赞~
2016-5-12 20:50
0
雪    币: 538
活跃值: (269)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
这个分析工具的思路很赞啊!666
这种思路除了文件格式以外,在网络协议上也是可以用的,曾经在分析网络协议的时候也使用了类似的分析思路,分析起来很快。
2016-5-12 22:07
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
关键是有时候,A产品没有提供把其他文件变成A结构的功能~

PS:
我的意思是万一只有一个样本文件,格式好像还得继续逆~
2016-5-12 22:23
0
雪    币: 191
活跃值: (848)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
5
支持大光头
2016-5-12 23:03
0
雪    币: 18
活跃值: (1059)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
6
光哥,我爱你!
2016-5-12 23:19
0
雪    币: 538
活跃值: (269)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
你说这个场景一般在Fuzz的时候很少见吧
他这个场景是这样的:
我有一个目标软件 x,x输入a后能得到一个b(前提:b没有做复杂加密或其他特别复杂的操作)

思路是:
我们可以通过构造一些特征不同(文件名/大小/内容等不同)的a1,a2,a3...然后得到b1,b2,b3...,因为a是我们自己构造的,所以我们可以拿这些所有a的特征在b中进行暴力搜索,如果成功的话就会获得这些特征的偏移、长度等。基本上通过不断构造不同特征的a然后进行分析,我们上就可以分析出b的文件格式了。
还有就是可以对生成的出来的所以b进行差异比较,获取一些比较固定的特征
2016-5-12 23:22
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
8
可能我没有说清楚,最终是这样的
对于这个例子来说,不需要A,若干个B就可以。。
我上面的操作只是说明这些zip压缩包不同而已,对于例子来说研究的格式是zip格式,和zip内的数据是什么格式并没有关系。
(原谅我语文不及格,给大家造成误解)

当然,如果a的格式知道了,对b是有帮助的,但是这不属于本例讨论范围。
静态分析结合动态分析也是有更好的效果的,在后续我会继续介绍
2016-5-12 23:35
0
雪    币: 538
活跃值: (269)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
其实是我自己胡乱理解的啦,期待后面的动态分析。
2016-5-12 23:44
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
10
后续你会发现,这个东西不止适用于fuzz。
其实这个东西本来就不是fuzzer,和fuzzer无关。
2016-5-13 08:34
0
雪    币: 292
活跃值: (810)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
11
支持光刃牛!
2016-5-13 10:19
0
雪    币: 8076
活跃值: (3944)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
12
支持下,有志者事竟成!
2016-5-13 13:08
0
雪    币: 11
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
13
马克,挺不错的东西、
2016-5-13 13:28
0
雪    币: 10
活跃值: (231)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
14
网站页面打不开啊,
2016-5-13 14:09
0
雪    币: 10
活跃值: (231)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
求个工具下载地址可好
2016-5-13 14:11
0
雪    币: 379
活跃值: (1901)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
16
感谢光牛的分享
2016-5-13 23:50
0
雪    币: 191
活跃值: (848)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
17
好像还没有正式发布
2016-5-27 23:25
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
18
www.asm64.asm/garlic  demo版本
2016-12-14 22:33
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
19

评论已删除

最后于 2022-3-5 13:56 被光刃编辑 ,原因:
2022-3-5 12:24
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
20

评论已删除

最后于 2022-3-5 13:56 被光刃编辑 ,原因:
2022-3-5 12:25
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
21


(软件属于光刃个人所有,未经授权使用软件均属于违法行为!!!本人保留追究法律责任的权利!)

最后于 2022-3-5 13:55 被光刃编辑 ,原因:
2022-3-5 12:36
0
雪    币: 612
活跃值: (3799)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
22
今天已经发布到4.21版本了。 最新版本的链接如下http://www.asm64.com/IFFA/VIP/IFFA_4.2_readme.pdf
2022-5-15 14:48
0
游客
登录 | 注册 方可回帖
返回
//