当前位置:WooYun(白帽子技术社区) >> windows >> 小学生用EasyFuzzer挖掘0day漏洞

小学生用EasyFuzzer挖掘0day漏洞

光刃 (用什么头像好呢?) | 2014-10-16 14:34

扩展阅读;初中生用easyfuzzer1.5挖掘WINXP播放器内存破坏漏洞
http://zone.wooyun.org/content/16593


使用说明:
模板文件:选取正常的文件(在此文件基础上进行变异)
目标路径:存放变异样本的路径。选日志前一定要保证路径存在.
后缀名:填写样本的后缀名
宿主程序:要挖掘软件的路径

挖掘过程:1 进行样本生成
  2 样本生成的文件进行挖掘

图片1.jpg


然后介绍选项窗口
图片2.png


选项窗口包括一些高级选项
异常日志:存放异常信息的日志. 选日志前一定要保证路径存在。
运行时间:对每一个样本处理的生命周期。 不同性能的计算机,和不同的测试目标(浏览器,播放器,还是图片查看器) 对这个数值要求是不同的。数值过大会降低实验效率,浪费能源。数值多小则会让测试无法正常进行。
开启速率:多少时间启动一个开启线程。
合理配置好运行时间和开启速率这2个数值,可以大大提高fuzz效率。
如图:运行时间是开启速率的4倍,基本上程序是在四进程上运行。
引擎1: 适合较小文件的漏洞挖掘 主要用于挖掘整数溢出的漏洞。效率较低,覆盖面较广。
引擎2: 用于较大文件的漏洞挖掘(至少大于1KB),主要用于挖掘缓冲区溢出漏洞。
更多引擎正在开发中。
忽略异常这个选项用于异常误报的处理。这里不再讨论。
更多功能正在开发中。下面用他对sdemo视频工具做fuzz。

2.smv是我提前做个一个标准视频样本。
我们选择引擎2 对他生成畸形样本。
点击生成文件。
几秒钟后一句生成完毕
图片3.jpg

打开文件夹,这里已经生成了大量样本。
图片4.jpg



这时候我们点击fuzzing。


图片5.jpg

已经挖掘一部分了,由于时间问题,我提前结束了fuzz

在logo日志内,我们发现了异常日志 某日志现实687号文件出现异常
图片6.jpg
图片7.jpg


手动验证下,确实异常了。
图片8.jpg



其实这就是一个缓冲区溢出漏洞。
这里貌似不能上传附件
软件获取办法:
www.asm64.com



下面为2014,11,10新增内容:
EasyFuzzer 从1.4版本开始,支持智能fuzz。

智能FUZZ和通用型FUZZ的区别前面的fuzz是通用型FUZZ,在通用型FUZZ中,我们不需要对文件格式做深入了解就可以上手。比较省时省力。适合一些小型程序或者自定义文件格式。因为他们的防护比较弱。
通用型FUZZ优点是节省时间和简单,容易上手。但是对于越来越多的复杂文件格式而言,通用型FUZZ就无能为力了。因为复杂文件格式有大量的校验,结构数据检查等等,通用型的FUZZ生成的畸形样本中很难达到程序逻辑的更深层。这时候,智能FUZZ出来了。
智能fuzz做法如下:
1 学习相应文件的文件格式。
2 把文件格式写成代码,根据代码,智能fuzzer来生成符合代码约束的畸形样本。
3 把这些样本给程序,让程序去执行。
智能型fuzz和通用型fuzz的最大不同就是有代码约束,这样生成的样本就可以达到逻辑的更深层,在短时间内发现通用型fuzz不可能发现的漏洞。
EASYFUZZER支持的类型和语法规则。
到现在(1.4版本)为止,EASYFUZZER支持2种语法规则。分别是数字类型和字符串类型。下面我们分别介绍着两种类型。
_num,参数1,参数2,参数3,参数4; 如:_num,100,1,0,32;
_str,参数1,参数2,参数3 ,参数4, 参数5 ,参数6;  如:_str,helloworld,1,0,0,32,1;


代码设计规范:
如下图:
一 对于1.4版本 在我们的代码编辑区,一共可以编写256条指令,每一条指令的长度最多是256字节。
二 不同的函数的参数量是不同的,函数以_开始,如现在支持的_num和_str,要求小写。参数之间用“,”表示,要求英文半角字符。每一条指令结尾必须用“;”,仍然是英文半角字符。
三 _num有四个参数:
参数一是数值, 支持10进制类型(如 100,1234567,),也支持16进制类型(如100H,deaddeadh,)16进制字母大小写都可以,后面需要加h来和10进制数据加以区分。
参数二是数据是否可以变异,0为可以变异,1为不可以变异。变异是指以后生成的不同的样本中该数值都会进行变化。如果该数值设置成0(可以变异),那么对于参数一设置成什么值也就都没有什么区别了(参数一不进行解析了)
参数三:大小尾。 0表示小尾(小尾表示低位数据存储在低字节地址上),1表示大尾(大尾表示低位数据存储在高字节地址上)。
比如12345678H  如果是大尾,在内存中是12345678,如果是小尾,在内存中是78563412,
参数四:数值的大小,目前支持8位,16位,32位3种类型。  也就是1字节,2字节,4字节。
8位: 如AAH   16位 如AABBH  32位 如AABBCCDDH


以下表示都是正确的:
_num,11111111h,1,0,32;
_num,2222h,1,0,16;
_num,ffh,1,0,8;
_num,254,1,0,8;
_num,12345678h,1,0,32;
_num,AABBh,1,1,16;



三 _str有六个参数:
_str,helloworld,1,0,0,32,1;
参数一:字符串数值。直接填写数值即可如 helloworld。
参数二:该数值是否变化。0表示变化,1表示不变化。
参数三:字符串的长度,单位为字节。
参数四:字符串类型,0表示STR类型,1表示HEX类型。
如123456,如果是0,输出后内存中的数据是313233343536,如果是1,输出后内存的数据是123456.
参数五:前缀的大小。单位是字节数。有效值为0,8,16,32.
前缀用来表示该字符串的长度。如果您不需要该数值,设置成0就可以。
参数六:前缀的格式, 大尾或者小尾。 0表示小尾,1表示大尾。



对于MID文件格式的结构,我们可以粗略的表示成如下形式
_str,MThd,1,0,0,0,0;
_num,0,1,0,16;
_num,6,1,1,16;
_num,0,0,0,16;
_str,MTrk,1,0,0,0,0;
_str,aaaaaaaaa,0,0,0,32,0;
在后面的版本中,我还会支持更多的类型。
详细文档:http://www.asm64.com/readme/readme.mht

分享到:
  1. 1#
    回复此人 感谢
    Smilent | 2014-10-16 14:43

  2. 2#
    回复此人 感谢
    梧桐雨 (‮ofni.uygnotuw‮) | 2014-10-16 15:25

    赞,加精了。

  3. 3#
    回复此人 感谢
    梧桐雨 (‮ofni.uygnotuw‮) | 2014-10-16 15:25

    楼主要是能传一份去百度网盘就更好了。

  4. 4#
    回复此人 感谢
    c4bbage (天津 祈福) | 2014-10-16 15:27

    filefuzz

  5. 5#
    回复此人 感谢
    袋鼠妈妈 | 2014-10-16 15:29

    屋里内存?

  6. 6#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-10-16 15:44

    @梧桐雨 恩,已经上传百度网盘了。http://pan.baidu.com/s/1pJjuoTt

  7. 7#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-10-16 15:49

    1.0测试版 MD5: 7B30423544792883471AAD0BF860EAC1

  8. 8#
    回复此人 感谢
    wefgod (求大牛指点) | 2014-10-16 16:13

    给力啊!是不是我们也可以去刷了

  9. 9#
    回复此人 感谢
    wefgod (求大牛指点) | 2014-10-16 16:15

    这个怎么有点感觉像以前做免杀的时候……

  10. 10#
    回复此人 感谢
    Clouds (接单) | 2014-10-16 16:29

    果然越难看的软件就越神奇.

  11. 11#
    回复此人 感谢
    Clouds (接单) | 2014-10-16 16:32

    我必须友情提示一下不要乱玩

  12. 12#
    回复此人 感谢
    Xser233 | 2014-10-16 16:49

    那么EXP怎么写呢 - -

  13. 13#
    回复此人 感谢
    scanf (www.scanfsec.com 网络尖刀) | 2014-10-16 17:19

    exp怎么写呢?手动?

  14. 14#
    回复此人 感谢
    白非白 (这是什么(t_t))‮(谢感边右) | 2014-10-16 17:35

    你好,班主任,我是小学生~

  15. 15#
    回复此人 感谢
    wkc_2014 | 2014-10-16 17:50

    果然越难看的软件就越神奇.

  16. 16#
    回复此人 感谢
    鸡鸡 (产品经理) | 2014-10-16 17:55

    刘明

  17. 17#
    回复此人 感谢
    RainShine (I'm your angel of music.) | 2014-10-16 18:26

    我是初中生

  18. 18#
    回复此人 感谢
    Neeke | 2014-10-16 19:06

    我幼儿园的

  19. 19#
    回复此人 感谢
    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2014-10-16 20:54

    看来又要出现几个0day了……

  20. 20#
    回复此人 感谢
    zzzzy (我已然别无所求) | 2014-10-16 22:10

    百分百汇编语言编写。。。 看到这一句话就给跪了

  21. 21#
    回复此人 感谢
    帕秋莉 (私は眠りたい wwwww) | 2014-10-16 22:12

    = =..神奇的fuzz工具 以前看了corelan team的文章其实也想自己写一个

  22. 22#
    回复此人 感谢
    c0nt | 2014-10-16 22:44

    软件大小才7KB - -

  23. 23#
    回复此人 感谢
    DM_ (http://x0day.me) | 2014-10-16 22:50

    大家好,我是光刃牛的脑残粉。

  24. 24#
    回复此人 感谢
    mango (待我乌币800万 姑娘嫁我可好) | 2014-10-17 00:16

    那么怎么测试呢???

  25. 25#
    回复此人 感谢
    Jasonfcku (我就是打酱油啊打酱油。。。哎呀,我艹,你打我干嘛?) | 2014-10-17 00:34

    有点像白眉  不过可定制性没白眉强   看我的头像

  26. 26#
    回复此人 感谢
    核攻击 (统治全球,奴役全人类!毁灭任何胆敢阻拦的有机生物!) | 2014-10-19 22:56

    。。。。。。

  27. 27#
    回复此人 感谢
    Yang | 2014-10-22 00:18

    反正我是没看懂。。

  28. 28#
    回复此人 感谢
    0x12 (帽子掉了|多逛,少说话。|小学生                                                                                                                                                                                                                                               ) | 2014-10-22 04:13

    按键是故意放歪的吧

  29. 29#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-10-22 11:52

    EasyFuzzer 1.1已经发布了
    www.asm64.com

  30. 30#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-11-10 12:40

    easyfuzzer 1.4测试版下载地址 www.asm64.com
    支持智能fuzz,不过目前该功能还比较薄弱。

  31. 31#
    回复此人 感谢
    RainShine (I'm your angel of music.) | 2014-11-10 12:54

    @光刃 赞一个

  32. 32#
    回复此人 感谢
    老和尚 | 2014-11-10 13:33

    我果断给这个将来用于商业用途的easyfuzz点个不喜欢、让大众测试只为商业版以后功能能更全面
    QQ图片20141110133309.jpg

  33. 33#
    回复此人 感谢
    Mody | 2014-11-10 15:05

    分享不易,赞光刃大牛

  34. 34#
    回复此人 感谢
    风花雪月 (多喜欢我自己!) | 2014-11-10 15:44

    @光刃 作者来啦!

  35. 35#
    回复此人 感谢
    wefgod (求大牛指点) | 2014-11-10 16:46

    这给力就不到30K的东西

  36. 36#
    回复此人 感谢
    YwiSax | 2014-11-11 02:15

    必须神器~~~

  37. 37#
    回复此人 感谢
    bitcoin (学习是最好的投资!) | 2014-11-12 09:16

    请教下,模板样本怎么弄呢?

  38. 38#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-11-12 10:50

    @bitcoin 模板样本就是样本文件,比如你要搞MP3的播放器,模板根本就是随便一个正常的MP3文件即可。当然为了测试效率,模板文件越小越好。结构包含越多越好。

  39. 39#
    回复此人 感谢
    光刃 (用什么头像好呢?) | 2014-11-12 10:51

    @bitcoin 在上面的例子中,模板文件就是用sdemo2.0  随便录制一个视频就行。这个文件就是模板文件。

    智能化fuzz只需要写代码, 模板文件。

  40. 40#
    回复此人 感谢
    bitcoin (学习是最好的投资!) | 2014-11-12 16:58

    @光刃 谢谢哈!好人啊!

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录

其它内容