从昨天开始,我对内核模块进行了一些小的改进–我将其制作为rootkit!

我所说的“ rootkit”是一个内核模块,一旦将其放入内核,任何知道正确命令的无特权用户都可以成为root。

使用方法如下:

bork@kiwi > sudo insmod rootkit.ko
bork@kiwi ~/w/h/kernel-module> echo $$ # PID of my shell17792bork@kiwi ~/w/h/kernel-module> echo $$ > /proc/buddyinfo
root@kiwi #

然后我是根,基本上,它接受回显的所有整数 /proc/buddyinfo并使该PID归root拥有。

这个怎么运作

因此,显然每个文件都有一个struct file_operations控制文件读写时发生的事情。例如,如果您正在编写设备驱动程序,那么重要的设备驱动程序代码就在那儿。由于内核可以执行任何操作,因此它可以更改那些文件处理程序并执行有害的操作。

所以。已经有一个名为的文件/proc/buddyinfo。我实际上不知道它的作用,但这是只读的。

  1. 提供write文件处理程序给/proc/buddyinfo

  2. 在处理程序中,使用已编写的PID获取任务

  3. 将该任务的所有者更改为与PID 1相同的所有者,PID 1始终init由root拥有

  4. 在内核日志中打印“您已经被黑客入侵:将PID $ PID设为root”。


也许明天我会改进rootkit,以便人们可以通过网络利用我的计算机,而不仅仅是登录时。