自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 问答 (6)
  • 收藏
  • 关注

原创 [翻译]Exploiting CVE-2015-0057 ——Part 1

前言​ NCC的关于CVE-2015-0057漏洞分析的文章写的十分详细,但是是英文的,这里再一边翻译一边阅读一下吧。这里是第一部分的内容,大致说了如何利用漏洞触发点来构造一个新的堆溢出漏洞利用,其中还包括一些前置知识。传送门漏洞点​ 下面的代码显示了一个相当微妙的bug,下面的代码为win32k!xxxEnableWndSBArrows的汇编:没打补丁前:text:FFFFF97FFF1B157D mov r8d, r13d.text:FFFFF97FFF1B1580 mov rdx,

2020-05-27 18:11:31 592 1

原创 [翻译] Kernel Attacks through User-Mode Callbacks

前言本篇属于前置知识,在后续的CVE复现中需要使用到。原文为英文,一边翻译一边记笔记了!尽量用中文描述的浅显易懂一些。原文传送门1. 背景知识1.1 Win32k.sys介绍​ Win32k本质上由三个主要组件组成:图形设备接口(GDI)、窗口管理器(用户)和支持XP/2000和Longhorn (Vista)显示驱动程序模型的DirectX api(有时也被认为是GDI的一部分)。窗口管理器负责管理Windows用户界面,例如控制窗口显示、管理屏幕输出、从鼠标和键盘收集输入以及向应用程序传递

2020-05-26 23:36:54 744

原创 CVE-2018-8120 漏洞分析复现-Day2-完成

0x00:前言昨天在最后复现的时候还差一点点,已经知道了漏洞点但是还没有完成利用。使用之前在0 day安全上学到的任意地址写漏洞技术似乎不是那么好直接的使用。其实是需要用到滥用GDI bitmap这个技术,今天来学习!参考文章传送门传送门0x01:GDI bitmap本技术重要的部分在于,当创建一个bitmap时,我们可以泄露出其在内核中的地址。这一泄露在Windows10的v1607版本之后被打上了补丁。当创建一个bitmap时,一个结构被附加到了父进程PEB的GdiSharedH

2020-05-25 22:07:14 688

原创 CVE-2018-8120 漏洞分析复现-Day1

0x00:前言对于HEVD靶场的调试告一段落,接下来尝试对一些真实的漏洞进行分析复现。参考:freebuf0x02:背景1. 漏洞描述部分版本Windows系统win32k.sys组件的NtUserSetImeInfoEx()系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限执行任意代码。2. 受影响的版本以下软件版本受到影响。未列出的版本要么超过其支持生命周期,要么不受影响。要确定软件版本或版本的支持生命周期,请查阅Microsoft支持生命周期。W

2020-05-24 21:23:24 1052 1

原创 Windows内核漏洞学习-内核利用程序之池溢出

0x00:前言昨天阅读了内核池的一些原理,与Linux堆还是有很多相似的。今天继续调试HEVD中池溢出攻击。参考的原文:传送门0x01:漏洞原理漏洞源码:NTSTATUS TriggerPoolOverflow(IN PVOID UserBuffer, IN SIZE_T Size) { PVOID KernelBuffer = NULL; NTSTATUS Status = STATUS_SUCCESS; PAGED_CODE(); __try {

2020-05-24 00:45:00 757

原创 [翻译]Windows内核漏洞学习-内核池攻击原理

前言在练习HEVD的内核池溢出漏洞之前,首先先需要了解一下内核池溢出的一些攻击方法和原理。这里对kernelpool-exploitation进行翻译阅读一下。kernelpool-exploitation正文ListEntry Flink OverwriteWin7在从ListHeads[n]分配池块(对于给定的块大小)时,使用的安全算法验证的是ListHeads[n]的列表条目结构,而不会去验证即将unlink的实际块的结构。因此,在一个free的块中覆盖它的Flink可能会导致ListH

2020-05-22 22:09:40 795

原创 [翻译]Windows 内核池原理 (win7 x86)

0x00:前言查了一下好像没看到啥关于内核池原理的翻译,国外的一个PPT有详细说Win7池溢出的原理。内容比较长,今天来翻译阅读一下Win 7内核的池部分的原理。Kernel Pool Exploitation on Windows 7 0X01:正文1 内核池的基本属性内核池被分为 Non-Paged Pools, Paged Pools, Session Pools等类型。每个池都由一个池描述符所定义该结构为 POOL_DESCRIPTOR 。通过该结构我们可以追踪有多少

2020-05-21 15:47:35 1057

原创 Windows内核漏洞学习-UAF

0x00:前言本章所提到的漏洞为UAF(释放后利用),这也是目前我所接触到的第一个复杂一点的内核漏洞。参考文章:传送门0x01:漏洞原理NTSTATUS FreeUaFObject() { NTSTATUS Status = STATUS_UNSUCCESSFUL; PAGED_CODE(); __try { if (g_UseAfterFreeObject) { DbgPrint("[+] Freeing UaF Object

2020-05-20 18:43:56 878

原创 Windows内核漏洞学习-内核利用程序之整数溢出

0x00:前言这是最后一个简单的漏洞利用了,话不多说直接开始吧。0x01:漏洞原理这里是漏洞程序源码:NTSTATUS TriggerIntegerOverflow(IN PVOID UserBuffer, IN SIZE_T Size) { ULONG Count = 0; NTSTATUS Status = STATUS_SUCCESS; ULONG BufferTerminator = 0xBAD0B0B0; ULONG KernelBuffer[BUFFER_

2020-05-19 18:36:01 544

原创 Windows内核漏洞学习-未初始化栈变量利用

0x00:前言今天继续学习HEVD的未初始化栈变量漏洞利用,根据我的经验,只要是没涉及到堆的,难度应该都是不大的。原文讲的肯定比我好,我这里主要描述出调试过程。传送门1-外文翻译成中文原文传送门2-看雪一位原创0x01:漏洞原理首先看漏洞源码:NTSTATUS TriggerUninitializedStackVariable(IN PVOID UserBuffer) { ULONG UserValue = 0; ULONG MagicValue = 0xBAD0B0B0;

2020-05-18 14:35:31 754 1

原创 Windows内核漏洞学习-空指针解引用

0x00: 前言​ 在看雪论坛看到许多关于HEVD的Windows内核漏洞教程,其中有一个是翻译国外的一个系列,感觉讲的很好,接下来就会跟着他将这个HEVD系列的漏洞走一遍了。昨天学了栈溢出,其实以前就学过,只不过没有操作过内核态的,今天继续学习空指针解引用,也是比较简单的漏洞,方便入门。传送门0x01: 漏洞原理首先看漏洞程序源码NTSTATUS TriggerNullPointerDereference(IN PVOID UserBuffer) { ULONG UserValue

2020-05-17 16:48:07 1281

原创 Windows内核漏洞学习-栈溢出(无GS)

0x00: 前言在上一节中,将HEVD的环境配置完成,接下来进行内核漏洞的调试复现。为什么首先做栈溢出呢,因为我以前学过一些Pwn知识,栈溢出算是最简单的漏洞了。使用的环境为:Windows7 x86 虚拟机系统双机调试环境HEVD靶场环境0x01:漏洞原理栈溢出原理栈溢出,即在局部变量拷贝时,没有控制好拷贝进局部变量的长度。而局部变量又是保存在栈中的,一旦长度过长,就会导致数据溢出淹没栈环境,覆盖EBP甚至返回地址。HEVD漏洞原理分析给出实验漏洞代码。这里安全和不安全的操作都对比给

2020-05-16 18:16:10 973

原创 Windows内核漏洞学习-HEVD的使用

HEVD的使用HEVD简单介绍和下载​ HEVD是一个漏洞靶场,里面有大量写好的漏洞,主要用它来学习漏洞的利用。在Github上就可以找到该项目,下面贴一下下载传送门,我用的是1.2版本。https://github.com/hacksysteam/HackSysExtremeVulnerableDriver/releasesHEVD安装​ 下载好之后,程序有有漏洞和无漏洞两个版本。使用有漏洞的x86版本,根据前面学习到的驱动编程知识,将它安装到Win7 32位环境中。在安装时候选择自动执行,然后

2020-05-15 21:19:46 2562

原创 《0day 安全》-22章-内核漏洞利用技术

内核漏洞利用技术22.1 利用实验之 exploitme.sys​ 首先给出实验代码,这里的代码经过作者微小的修改,但是基本与书上一致,看懂这里的代码需要有一点驱动编程基础。#include<ntddk.h>#define DEVICE_NAME L"\\Device\\ExploitMe" #define DEVICE_LINK L"\\DosDevices\\ExploitMe" #define FILE_DEVICE_EXPLOIT_ME 0x00008888 #define

2020-05-14 19:23:44 694

原创 探索ring0-内核漏洞概述 和 实验环境配置

探索ring0内核漏洞概述内核漏洞的分类​ 运行在ring0上的操作系统内核、设备驱动、第三方驱动能共享同一个虚拟地址空间,可以完全访问系统空间的所有内存,而不像用户态进程那样拥有独立私有的内存空间。由于内核程序的特殊性,内核程序漏洞类型也更加丰富。​ 可以从漏洞的严重程度和漏洞的利用原理两个角度来对内核漏洞进行分类。漏洞的严重程度是指漏洞利用后所造成的危害;漏洞的利用原理指漏洞利用过程中使用的原理和技术。​ 按照漏洞严重程度依次可以分为:远程拒绝服务、本地拒绝服务、远程任意代码执行和本地权限提升

2020-05-13 18:02:21 676

原创 20-5-12没学

今天主要把论文肝完了,虽然我的论文是真的水刚刚交了初稿有一些疲惫。前面学习驱动编程的目的主要是为了学习内核漏洞打基础,感觉差不多了,剩下的只有遇到了再回来补了。接下来一段时间的学习计划从《0day 安全》第二版这本书开始入门一下Windows漏洞,之前我已经学习过了栈溢出的部分,打算主要从堆的溢出开始学,或者去看看栈溢出还有什么忘记了的。先看看吧。后续再从hevd靶场实际漏洞。希望把这两步走完就能正式开始看CVE了。。。顶...

2020-05-12 22:23:23 180

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day6

11.6 读写操作的过滤11.6.1 设置一个读处理函数​ 文件系统有多种操作,但是读写操作仍然是最重要的。比如杀毒软件对文件内容的读写进行监控,可以达到扫描病毒的目的。简单一点就是,文件在被读取时,杀毒软件扫描其中是否含有病毒特征码,就可以防止一些病毒从硬盘被加载到内存中执行;如果任意文件在被写入到磁盘时,也可以检测其中写入的内容是否含有病毒特征码,这样就可以防止病毒被写入硬盘,也就可以防止硬盘上的文件被感染。​ 在之前的代码中已经绑定了文件系统卷,而所有的文件都是保存在卷上的,所以处理截获到的主功

2020-05-11 22:00:36 449

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day5

文件系统的过滤与监控11.5 文件系统卷设备的绑定11.5.1 从IRP中获得VPB指针​ 回忆前面说到的文件系统控制请求中的挂载请求。主功能号为 IRP_MJ_FILE_SYSTEM_CONTROL,次功能号为 IRP_MN_MOUNT_VOLUME 的IRP。对这种挂载卷的IRP的处理,调用了函数 SfFsControlMountVolume 这个函数的代码。在其中实现了绑定文件系系统卷的功能。​ 从这个IRP的信息中,如何得到文件系统的卷设备呢? 在 irpSp->Parameters.

2020-05-10 14:10:12 365

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day4

文件系统的过滤11.4 文件系统控制设备的绑定11.4.1 生成文件系统控制设备的过滤设备接下来要生成过滤设备,这里再次用到设备拓展。下面给出过本过滤设备设备拓展的数据结构。typedef struct _SFILTER_DEVICE_EXTENSION{ //绑定的文件系统设备(真实设备) PDEVICE_OBJECT AttachedToDeviceObject; //与文件系统设备相关的真实设备,这个在绑定时使用 PDEVICE_OBJECT StorageS

2020-05-09 23:24:23 417

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day3

文件系统的过滤与监控11.3 设备的绑定前期工作11.3.1 动态地选择绑定函数​ sfilter 有一个有趣的地方是,使用了动态加载的方法来使用内核函数。只有高版本的Windows系统上才有IoAttachDeviceToDeviceStackSafe 这个函数。如果我们直接使用这个函数,那么在低版本的Windows系统上就会直接加载失败。因此,使用动态加载此类函数的好处就是,即使在低版本的Windows上也能成功加载。​ 在动态加载该函数时,如果失败则会使指针为NULL,而此时即使为NULL,我

2020-05-08 23:02:47 388

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day2

文件系统的过滤与监控文件系统的分发函数11.2.1 普通的分发函数​ 上一节仅仅生成了控制设备,开发文件过滤驱动的主要工作还是撰写分发函数。在 DriverEntry 函数代码中,DriverObject 是参数驱动对象指针,现在来指定几个分发函数。SfPassThrough 负责所有不需要的处理,直接下发到下层驱动的IRP。for(i=0;i<IRP_MJ_MAXIMUM_FUN...

2020-05-07 13:48:15 493

原创 《Windows内核安全与驱动编程》-第十一章文件系统的过滤与监控-day1

文件系统的过滤与监控​ 文件系统过来吧的目标,是捕获Windows系统对文件的种种操作行为,比如文件的创建、打开、读写、目录的创建、打开、枚举、改名、删除等。捕获这些操作,能够实现许多强大的功能,比如检查病毒、数据加密、数据备份、安全监控等。​ 不要把文件系统驱动和存储驱动和混淆。硬盘是典型的存储设备,只负责数据的读与写;而文件系统则不管数据是如何读写到硬盘或其他设备上的,它只负责数据是如何在...

2020-05-06 11:32:43 658

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day4

10.3.6 bitmap 的作用和分析​ 在之前我们多次看到了bitmap,但是却一直不知道它是什么,它的作用是干嘛。接下来我们去看,但是具体的bitmap 的实现很复杂,如果没有特殊兴趣的话,可以只看它的接口说明,而不管具体的实现过程。​ 顾名思义,bitmap就是一个位图。它实际上是一些内存块,这些内存块的每一位用来标识一个磁盘上的最小访问单位,一般情况下是一个扇区。每一位可以被设置或者...

2020-05-05 22:16:19 334

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day3

磁盘的过滤10.3 驱动分析10.3.5 DeviceIoControl 请求的处理​ 该请求的处理函数是 DPDispatchDeviceControl ,作为一个磁盘过滤设备,理论上是不需要对 DeciceControl 做任何处理的,只需要转发给下层设备即可。但是这里本驱动需要截获一个特殊的请求——IOCTL_VOLUME_ONLINE,这个请求是由Windows系统发出的,它本身的作...

2020-05-04 22:56:32 354

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day2

磁盘的过滤10.3 驱动分析10.3.3 PnP 请求的处理​ 作为一个卷过滤驱动 PnP 请求处理是非常重要的,因为 Windows 操作系统在某些时刻会向存储设备发出专门的请求,如果没有进行正确的处理,将会造成系统无法正常关机等一系列问题。​ 在收到 PnP 请求之后,由于在 DriverEntry 中对 PnP 请求的处理函数特别设置成了 DPDispatchPnp 函数,所以这个函...

2020-05-03 21:23:15 467

原创 《Windows内核安全与驱动编程》-第十章-磁盘的过滤学习-day1

文章目录磁盘的过滤10.1 磁盘过滤驱动的概念10.1.1 设备过滤和类过滤10.1.2 磁盘设备和磁盘卷设备过滤驱动10.1.3 注册表和磁盘卷设备过滤驱动10.2 具有还原功能的磁盘卷过滤驱动10.2.1 简介10.2.2 基本思想10.3 驱动分析10.3.1 DriverEntry 函数10.3.2 AddDevice 函数明日计划磁盘的过滤10.1 磁盘过滤驱动的概念10.1.1 ...

2020-05-02 23:11:43 1351

原创 《Windows内核安全与驱动编程》-第九章-磁盘的虚拟-day-3.md

磁盘的虚拟9.5 FAT12/16 磁盘卷初始化9.5.2 Ramdisk 对磁盘的初始化​ 在上一节中说到,在 Ramdisk 驱动中的 EvtDriverDeviceAdd 类函数里会调用 RamDiskFormatDisk 函数对所分配的用于做磁盘镜像的内存空间进行初始化。上一小节介绍了磁盘卷结构,接下来学习如何初始化这个空间。​ 首先看一下这个函数的本地变量声名。//一个指向磁盘...

2020-05-01 21:56:54 393

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除