从昨天开始,我对内核模块进行了一些小的改进–我将其制作为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
。我实际上不知道它的作用,但这是只读的。
提供write
文件处理程序给/proc/buddyinfo
在处理程序中,使用已编写的PID获取任务
将该任务的所有者更改为与PID 1相同的所有者,PID 1始终init
由root拥有
在内核日志中打印“您已经被黑客入侵:将PID $ PID设为root”。
也许明天我会改进rootkit,以便人们可以通过网络利用我的计算机,而不仅仅是登录时。