目标:
内核层的exploit程序,我们如何来exploit kernel?
意义:
老外掌握了很多这种技术,一些kernel exploit能直接取得权限,众所周知,0层的权限比root权限大多了,而且内核的攻击可以跨平台,比如,内核的问题还可以导致系统的崩溃。
技术实现:
需要对kernel深入了解,在0层做事比应用层难多了,应用层有4g内存可用呢:)
基础知识:
进程的内核路径的概念
cpu所处的四个路径
核心堆栈esp和任务切换的关系
中断返回的处理 iret
种类:
内核的buffer overflow
内核的format string
内核的整形溢出
内核的heap overflow
tcp/ip核心溢出
调试方法:
首先我们的研究的方法就是自己构造一个有问题的内核程序,如何实现呢?当然是写lkm,我们写一个有问题的lkm程序,加载起来,然后我们看如何去溢出它,反正我调的时候系统都不知道当了多少次,因为是内核,所以无法调试,只能凭经验猜测,目前已经能成功溢出除了heap overflow的所有种类的内核程序问题,其中整形溢出,我看了一下内核代码,大量存在问题,所以还是比较有意义的。这里我先给一个有问题的程序,各位高手可以试试,讨论讨论,也算是我为本版奉献的一个课题:
代码:
//test for kernel buffer overflow Vulnerability
//by e4gle
//gcc -O3 -c -I/usr/src/linux/include kbof.c
#define MODULE
#define __KERNEL__
#include
#include
#include 【责编:admin】
--------------------next---------------------