grep eth0
eth0: 3Com 3c905B Cyclone 100baseTx at 0xe400, 00:10:5a:63:5b:05,IRQ 10
eth0: Setting promiscuous mode.
device eth0 entered promiscuous mode
看来这些模块都是正常的,但比较狠的就是——device eth0 enteredpromiscuousmode——看来这入侵者架了sniffer开听了,但关键是现在这个入侵者加载了个俺看不到的家伙,有些晕了……咦,对了,看看文件名先……
三、模块介绍
nethide?似乎有点印象……好吧,到俺的一堆破烂里找找……咦,找到一篇knarkhacking的文章,里面有提到nethide,先当下一个来玩玩吧,有个版本号为knark-0.59的,是对LinuxKernel 2.2的,行……咱们先看看这是什么样的内核模块:
除了taskhack.c之处,所有这些文件都是基于knark.o模块的正确加载。
hidef用来隐藏你的文件或者目录,你可以建立一个目录,比如/boot/.pty0,然后键入./hidef/boot/.pty0于是这这个目录便被隐藏起来,并且连du之类的命令也不能找出它来,同样的,子目录下的任何文件也一样地被藏得天衣无缝
ered用来重定向执行某个程序,比如说,你把一个bindsh*ll 的程序拷到/boot/.pty0/bindsh*ll , 然后可以用./ered /bin/ls/boot/.pty0/bindsh*ll 这样的命令,将ls重定向到bindsh*ll , 当然,这样的话,ls是没变,但已经不能正确执行了。如果要清除所有的命令重定向,可以键入./ered -c nethide用来隐藏/proc/net/tcp及/proc/net/udp里的连接进程——netstat就是从这里面获取信息并 输出的,比如你要隐藏端口43981的连接信息,你必须键入:
./nethide ":ABCD "
你就可以象grep-v一样,过滤掉你不想让人看到的
网络连接信息了,比如你用:
netstat -at
可能会有一行连接(ssh)的记录是这样的:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:ssh localhost:1023 ESTABLISHED
我们来看看/proc/net/tcp里面的情况如何:
cat /proc/net/tcp
其中相应的行应该是这样的:
local_address rem_address blablabla...
0:0100007F:0016 0100007F:03FF 01 00000000:00000000 00:0000000000000000
如果我们想隐藏关于127.0.0.1这个IP地址的所有信息,首先就必须把它“翻译”成这种格式,127用十六进制表示是7F,0是00,1是01,于是地址就是0100007F,然后,再跟上端口22是0016,就是: 0100007F:0016了,于是我们键入:
./nethide "0100007F:0016"
便可以将其隐藏得很漂亮了。
rootme 利用这个家伙,你可以不需要suid位,就能拿到root的权限喽:
./rootme /bin/sh
你也可以用这种方式来运行:
./rootme /bin/ls -l /root
这里必须注意,要输入完整的路径名。
taskhack 可以改变运行着的进程的uid,euid,gid,egid等。
./taskhack -alluid=0 pid
这可以把该进程所有的*uid(uid, euid, suid, fsuid)都改成0
你用:
ps aux
关键词:很酷的一篇入侵区分