Windows 8.1 + IE 11 Exploit

Windows8.1_IE11_Exploit

首先这个方法并不是我发现的,其次这个方法也不是第一次公开。思想来源于《A browser is only as strong as its weakest byte Exodus Intelligence》。感谢作者这么好的思路。主要实现了,当存在任意内存地址写时,可实现绕过所有保护机制,达到任意代码执行的效果。并且也要感谢@bluerust,不是你非常信任的将这种HeapSpary的方法发给我,也就不会有接下来的探讨及深入的研究(期间各种乌龙着实很有乐趣)。我的第一版只包含信息泄漏功能的代码只用了7行javascript。

简单说一下这个方法比较有意思的地方吧,因为IntArray类型的数组在存储数据时高位不能为1。否则其会以double形式存储。这就导致我们在使用其存储shell code时需要编码(解决高位为1的问题)。而我比较喜欢用字符串来存储我的shell code,这样就可以将我以前的shell code不需要修改直接拿来使用了。

解决这个问题,我的思路主要是,先释放一个IntArray对象,然后使用一个ObjectArray类型的对象进行占位。这个ObjectArray对象内部保存着存储了shell code字符串的指针。这样就可以再进行一次信息泄漏来实现读取字符串的地址了。而因为IE 11内部存储字符串使用的是Js::LiteralString对象进行存储的。所以直接读取的其实是Js::LiteralString对象的地址而不是存储了shell code的BSTR的地址。解决这个问题我使用了一个技巧 ...

more ...

2013年总结

2013_year

感受 :

一转眼13年就过去了,今年收获了很多也学习了很多。想想应该总结一下了。今年主要做的是 Windows 相关的安全研究。觉得超出了预定目标不少,看来年中时还是保守了。今年增加了不少对安全的理解。并且思路与技术都有所提高,同时相比去年学习的速度也提高了不少。总之还是很不错的一年。

记录 :

  • 深入分析30多个软件漏洞。
  • 成功挖到了一些0day。
  • 开发了一些Exploit。
  • 在一次安全大会上做了演讲。
  • 参加了7个国内大型安全会议 (学到了很有有意思的技巧)。
  • 写了1万多行代码 (穷尽几个月的业余时间,前后四次重构,觉得不会再变了)。
  • 看了45本书籍,包括专业书、自传、心理学、数学等 (相比某牛的三位数好少,感到羞愧)。
  • 去了3个不同的城市。
  • 两次回家看望父母。
more ...

A Bug Hunter's Diary

a_bug_hunter_diary_head

这本书确实是一本不错的漏洞挖掘相关书籍,作者以风趣幽默的语言讲解了其对漏洞挖掘与利用的过程(此书为某大牛推荐。依稀记得推荐时,明确说道这本书现在还未有中文译版但是很多大牛已经在等了。随即果断看了一遍英文版)。全书总共分为8章,除了第一章的基础介绍之外每章重点介绍一个漏洞。分别为发现漏洞、利用漏洞、负责任的披露及跟踪修正漏洞情况等对漏洞进行介绍。这确实是一本漏洞挖掘及代码审计方面的好书(作者尤其对源码分析感兴趣)。虽然全书正文才180页但是其所涉及的东西还是非常多的,并且虽然多处的重点技术只是几句话带过,但是要想充分了解相关内容并达到熟练使用相关技巧的程度,着实需要花上一些时间。 总之本书是本短小精悍,不可不读也不可只读一遍的好书。

注:最终我发现了0day哦

本书主要篇幅都在介绍通过源码审计进行漏洞挖掘的方法。其提出的一些思路,虽然看似简单但确实是多年分析经验的总结。其直接简洁的描述方式一定会给你一些启发。并且明显能看出作者是故意精心挑选了不同类型的软件和系统的漏洞使得可以了解不同类型的漏洞及其利用的方法。当然这本书也没有涵盖所有的漏洞类型,但是没关系重点是作者提出的一些观点与技巧。

本书作者发现漏洞的方法大致归纳如下:

  1. 分析软件或系统功能
  2. 根据功能识别输入数据
  3. 跟踪输入数据分析程序逻辑

1、分析软件或系统功能

因为现在的软件及系统的功能不断增多、体积不断膨胀、内部逻辑也不断的复杂化。最终导致的问题就是更多的漏洞。那么如何寻找这些漏洞呢?不难想到通过最复杂的并且最难实现的功能入手,因为越复杂的越庞大的代码则越有可能出现问题。而寻找复杂功能的最好的途径就是官方文档,无论是阅读官方网站的功能说明还是阅读程序的使用手册都是很好的有助于你更快的了解这个程序或系统的手段。接着就是确定要跟踪重点分析的位置了。

2、根据功能识别输入数据

这一步就非常简单了,因为只有你可以控制的数据才可能使其变为漏洞,否则也只能算是缺陷吧。其实常见软件的输入数据的种类是非常多的比如参数文件 ...

more ...

掘金黑客

nuggets_hacker

最近在阅读掘金黑客这本书,先是在一位好友的博客中看到。他做了一份完美的年度总结,相比之下我这一年则平淡无奇。随即我在网上简单看了一下这本书的目录就买了。这也让我有了多写一些东西的机会。

这本书主要讲的是一位黑客是如何从一名平凡的对技术有着灼热追求的孩子成长为一名传奇的地下犯罪组织首脑的路程。这本书让我体会到现今的网络安全已经不仅仅是技术层面的对抗,更多的是多方面的犯罪形式的对抗。网络安全不仅是贪图暴利的犯罪组织或个人的工具,更是国家之间信息战争的有力武器。虽然书中主要讲述的是美国80年代末到20世纪初期的信用卡犯罪,但是延伸至现代的复杂网络其主要的攻击形势和牟利方法并没有太多的变化。大多是利用系统漏洞寻求进入一些关键机构的机会。然后通过对其所盗取信息来获得经济上的利益。如今虽然技术不断的更新,系统更加安全,防毒软件的能力不断的提升,但是其安全性仍未比多年前的系统有较多本质的差别。仍有很多可攻破的方式,虽然其利用的复杂度有很大程度的提高,但是随之提高的单个覆盖面较广的漏洞价值也引起了很多安全从业人员的关注。

书中介绍的联邦探员通过在犯罪组织的圈子内安插卧底来捣毁犯罪组织的方法也很正常。其在大多数与经济利益有关的犯罪侦破当中都被经常使用。伪装成卖家、伪装成买家、伪装成合作者等都可以较好的用作破案手段。因为多数的罪犯过程中无一例外的都会存在某种目的。大多数为经济利益,而通过其资金流动渠道着手即可渗透进其犯罪网络摸清其组织脉络最终将其一网打尽。

而从罪犯的角度来看,现今的安全设备,系统布丁,漏洞的公开,白帽子工程师们不懈的努力则将网络罪犯们的门槛不断的提高。他们会越来越难并且越来越珍惜自己手中的武器(0 day)。使之价值最大化,因此也逐渐的改变了网络攻击的形态由最开始的大批量的漏洞利用脚本攻击。变为有针对性的,需要对目标做深入监测、勘察、测试的高级APT攻击。并且其使用的恶意程序已经由最开始的后门程序变为高度复杂的 p2p 形势的僵尸网络控制程序。或在全球的多个国家拥有数以百计的C&C服务器的控制程序。其能获得的价值也可想而知 ...

more ...