人生小满,仍当忙(芒)种,这是我520这天看过最经典的一句话,没有之一,感谢i春秋这句有温度的话。
好久没有发公众号了,谢谢大家一直没有取关过,这个号没有做过宣传,只想作为一个类似博客的地方跟大家分享一些我的技术(尽管有很多文章已经发在别的平台上了。)
近些天忙于wooyun众测,一直没时间来发这篇文章,今天看到了标题这句话,感觉忍不住想把它发出来,接下来我是想分享一下我未来的一些个人计划。
在此之前,想说点别的事情,2015年KCon,我知道了Seebug这个平台,KCon2016转瞬即至,也就是说我来到Seebug已经一年的时间了,算上我还未审核的3个漏洞详情,我在Seebug已经提交了100个漏洞详情了,其实有一件事一直没有说,其实每次我将漏洞详情提交之后,都会总结归类将它们放在一起,形成了一个Seebug的二进制漏洞报告集。
紧接着我在这个过程中,做了一个二进制漏洞分析的脑图,其实比较基础,但也是我做调试分析的一些经验总结,刚开始我没有想到会有那么多人转发,后来转发量还是很大的,还有余弦,蒸米,gainover等等偶像转发,有点儿受宠若惊,今后会继续完善这个脑图。
其实这就是我这篇公众号最主要想做的事情,接下来我会将我调试的这100个漏洞中的典型漏洞做一个总结,分类型总结配合一些讲解,与脑图结合效果会更佳~
还有一个要提前预告一下,我在明年的乌云峰会,可能会有机会做一次二进制漏洞挖掘分析的分享议题,如果真的有机会的话我也会好好准备,届时会带来一些更有意思的东西,接下来进入正题。(有些东西,比如漏洞的触发场景还是想等到适合的场合当面讲解,所以下文只涉及到类型和基本原理)
首先是ring3级别,也就是应用级,这类应用问题很多,有可能出现在主程序中,也有可能出现在动态链接库中,但是在PoC的帮助下,一般可以通过崩溃现场的情况来迅速定位触发位置。但这里有一个要特别说明一下,崩溃位置可能处于A.dll中,但是漏洞成因可能会由B.dll,C.exe共同造成。
首先是本地代码执行,这类漏洞主要出现有两点,我个人评价第一点是低危,它会在某些输入框输入畸形数据时触发。
https://www.seebug.org/vuldb/ssvid-90988
另外linux下我也有一个漏洞分析,这个分析的软件比较高端,但也是由于输入造成的漏洞形成,但是我在这个漏洞中详细讲解了linux下漏洞分析的一些技巧。
https://www.seebug.org/vuldb/ssvid-79073
另一个是高危,可以归结为打开这个文件,就会造成漏洞的发生,这个利用场景常见于apt攻击中,比如钓鱼邮件等等,但其中分类有很多。
首先要说的是拒绝服务漏洞
比如我在wooyun提交的wps漏洞,就是因为空指针引用导致的拒绝服务,wps office专门针对这个漏洞在5月1日发布了一版更新。
http://wooyun.org/bugs/wooyun-2016-0201097
然后就是一些本地文件格式的漏洞了,我分析过的主要是浏览器,播放器等等。
另一个拒绝服务漏洞
https://www.seebug.org/vuldb/ssvid-74493
比较适合新手看的缓冲区溢出漏洞
https://www.seebug.org/vuldb/ssvid-88914
https://www.seebug.org/vuldb/ssvid-70268
https://www.seebug.org/vuldb/ssvid-87413
接下来是一些比较复杂的缓冲区溢出漏洞
https://www.seebug.org/vuldb/ssvid-82737
https://www.seebug.org/vuldb/ssvid-88893
接下来是一些比较复杂的分析了,Out-of-bounds read漏洞先跳过,这类漏洞其实一般不能造成任意代码执行(除非可以越界写),但是它厉害的地方在于可以造成bypass aslr,这也是我未来的一个小目标之一,接下来会说明。
整数溢出漏洞
https://www.seebug.org/vuldb/ssvid-79821
释放后重用漏洞,这类漏洞在浏览器中比较常见,IE为最,这里分享的是IE和火狐的几个漏洞分析。
https://www.seebug.org/vuldb/ssvid-82236
https://www.seebug.org/vuldb/ssvid-86169
https://www.seebug.org/vuldb/ssvid-91275
https://www.seebug.org/vuldb/ssvid-88752
接下来进入远程代码执行部分,这类分析中,以ftp为最,首先是缓冲区溢出造成的代码执行。
https://www.seebug.org/vuldb/ssvid-90646
https://www.seebug.org/vuldb/ssvid-71856
https://www.seebug.org/vuldb/ssvid-84592
几个黑客工具也有躺枪,但都不一定是缓冲区溢出造成的,但大多数是因为对于传输数据控制不严造成的。
https://www.seebug.org/vuldb/ssvid-91406
https://www.seebug.org/vuldb/ssvid-90921
https://www.seebug.org/vuldb/ssvid-60241
linux下的lshell也会出现问题,这个也涉及到源码审计分析
https://www.seebug.org/vuldb/ssvid-91244
当然少不了拒绝服务漏洞,但这类漏洞多数只会造成目标服务崩溃,影响倒不如接下来会提到的内核级别的某些拒绝服务漏洞影响大。
https://www.seebug.org/vuldb/ssvid-70463
这里另外要分享一些比较有意思的远程代码执行漏洞
https://www.seebug.org/vuldb/ssvid-89293
然后就是ring0级,也就是内核级别的漏洞了,这里windows的拒绝服务还有提权我还没有分析过,但是最近我找到了Netfairy,他写了一个windbg脚本好像很好用,是监控token替换来快速定位漏洞现场的,接下来分享几个linux和windows的。
首先是经典的MS08067,这个漏洞作为很多人的入门漏洞调试,网上分析报告也很多了。
https://www.seebug.org/vuldb/ssvid-88222
https://www.seebug.org/vuldb/ssvid-90749
https://www.seebug.org/vuldb/ssvid-90620
https://www.seebug.org/vuldb/ssvid-91149
然后最后要说一些后门漏洞分析,这也是最近正在做的
https://www.seebug.org/vuldb/ssvid-91513
https://www.seebug.org/vuldb/ssvid-88785
最后附送一个shellcode分析,作为结尾,这个shellcode相对低级,但讲解了一下如何搭建一个shellcode调试环境,实际上,shellcode在整个调试时,尤其是静态分析时,是处于.data段,很多软件都不能将.data段作为代码段分析,因此需要用一些小技巧还原。
https://www.seebug.org/vuldb/ssvid-68879
好了!大概总结了一下漏洞的分类,和我分析过的实例,更多的内容可以去Seebug看看我提交的内容。
接下来想说一下我未来的一些小计划和小目标,第一个计划是,这两天在做漏洞分析的过程中遇到了两个有意思的漏洞,其中一个就是之前的Out-of-bounds read,可以造成bypass aslr,而另一个则是一个uaf,其实这种情况下,在win7或者以上版本的二进制攻防中,aslr一直是一个永恒的话题,所以我就有一个想法,能不能将两个漏洞结合,从而在win7以上的系统上稳定触发代码执行呢?
如果能够完成这个构造,我想把整个分析,调试,exp构造的过程形成一片文章发布在drops上,这是我一直想做的事情。
第二个计划是重点,我打算利用闲暇的时刻好好总结归类自己分析过的漏洞,漏洞类型,我会逐步向Seebug申请公开我所有的漏洞详情和大家分享,这样不用花KB也能看到我分析的内容,这样一来是可以指正我在分析过程中的错误,二来可以好好分享一下分析的内容。
然后我会配合这些漏洞,用C来写一些适合这个漏洞类型的DEMO,用最简单的方式来复现这个漏洞的原理,这也是我未来可能会在某些议题中分享的内容,就不说了,之前我用C完成了一个UAF漏洞的DEMO模型,已经被很多小伙伴要走了,如果有需要的还可以找我要。
最后发现已经过12点了,520已经过去了,但是妹子们的521却来了,祝大家天天开心!Good night!