分类目录归档:C/C++

一个矩形pwn掉整个内核系列之一 – zone的舞蹈

一个矩形pwn掉整个内核系列之一 – zone的舞蹈

一个矩形pwn掉整个内核?这听起来很马德里不思议,然而这真实地发生在了今年3月份温哥华的Pwn2Own赛场。这一系列文章会向大家分享我们这次沙箱逃逸用到的Blitzard CVE-2016-1815的发现和利用经历。我们通过三步走最终完成了这个利用,本文将先问大家介绍第二和第三步 – kalloc.48的舞蹈kalloc.8192 重剑无锋,在最后一篇文章中,我们会回到本源,介绍这个漏洞的起因。

继续阅读

The Journey of a complete OSX privilege escalation with a single vulnerability – Part 1

The Journey of a complete OSX privilege escalation with a single vulnerability – Part 1

In previous blog posts Liang talked about the userspace privilege escalation vulnerability we found in WindowServer. Now in following articles I will talk about the Blitzard kernel bug we used in this year’s pwn2own to escape the Safari renderer sandbox, existing in the blit operation of graphics pipeline. From a exploiter’s prospective we took advantage of an vector out-of-bound access which under carefully prepared memory situations will lead to write-anywhere-but-value-restricted to achieve both infoleak and RIP control. In this article we will introduce the exploitation methods we played with mainly in kalloc.48 and kalloc.4096.

First we will first introduce the very function which the overflow occurs, what we can control and how these affect our following exploitation.

继续阅读

使用Win32 API获取当前活动TCP/UDP连接端口对应进程信息

闲的蛋疼,写的小程序,首先感谢Sakura的帮助~

参考文献地址:GetTcpTable2的MSDN说明,其中的例子很详细,GetExtendedXXXTable虽然函数调用方式不一样但拿到的连接信息调用方式是一样的。

主要使用的API: GetTcpTable2和GetExtendedUdpTable(GetExtendedTcpTable)

继续阅读

GDI+下的桌面截图并保存

虽然说是GDI+,但是只在最后保存文件的时候用到了。。。取页面信息还是GDI的那一套,这个是因为GDI+中没有C#的方便的CopyToScreen函数。。。

第一个函数GetEncoderClsid属于GDI+,根据类型参数返回编码方式,然后调用GDI+ Bitmap对象的Save函数保存文件。

GDI核心函数是BitBlt和GetDIBits,首先获得桌面窗口的DC,创建兼容的DC并选入兼容Bitmap,使用bitblt拷贝位图数据,通过兼容DC中的bitmap对象构造位图文件头信息,GetDIBits参考该文件头信息填充缓冲区,将兼容DC中的值写入位图文件,最后再调用GDI+进行保存。

GDI+可以提供转化到png bmp gif jpeg tiff等多种格式,而不仅仅是GDI的bmp。

以下是代码,注意调用时要首先初始化GDI+,否则可能在GetEncoderClsid中会出现Access Violation

继续阅读