深入理解Linux日志清除
记得在学校里的时候,看图书馆里的书,看到高深的黑客在入侵完事以后不是把全部日志清空,而是擦除关于自己登陆的那部分信息,当时真的以为是不可能的事情,当然了,当时连怎么全部删除日志也不知道,哈哈。
就在这几天,我终于知道了其中的奥秘,心情非常惬意哦,这要归功于偶那英文文档阅读的能力了,在GOOGLE上搜索了很久,一直找不到好的文章,中文方面看了很多关于linux系统日志的全面介绍,这些知识以前都已经具备,没有什么更高的提高,然后就想,是不是英文这方面的资料回非常多呢?于是搜索一下:
modify wtmp ,哈哈,果然都出来了,先后编译了好几个C源代码,如gcc -o cloak2 cloak2.c等等 ,其中wted用的非常顺手,功能也挺强的,就是因为人家有个usage()函数,告诉了你怎么使用,别的程序没有使用文档,只能通过C代码中main里参数定义来看了,倒也不是太难,后来发现一个非常强大的修改lastlog的C代码,可是苦于不知道怎么使用,而且它的文档里面也只是说可以“delete”掉lastlog记录,没有说可以修改(也就是我想要的modify),这时候随意的看着GOOGLE,幸运的是正好被偶看到了这个程序作者写的程序原理,太棒了,通读两遍,OK了,只要在-d 选项后面接上UTC格式的时间即可,而且是秒数才行,呵呵,这东西不看文档鬼才知道啊!
上面这段说的是清除wtmp lastlog 的日志,其他如.bash_history message secury的日志清起来比较简单,因为是文本可编辑的文件,直接操作即可,当然也不要一行行的自己操作,我的做法是登陆系统后先备份.bash_history,然后重新登陆的时候将它考回去,这样历史记录就顺利还原了,我是用脚本SHELL实现的,一次性清除WTMP,修改LASTLOG,还原history,删除脚本,还有用sed 删除message secury的相关日志(主要是sed -e '/我的IP地址/d' /var/log/secury > secury.bak ; mv -f secury.bak /var/log/secury ;sed -e '/我的登陆时间/d' /var/log/message > ……)很简单,就20几行就可以了。
于是登陆linux服务器测试,一切顺利,终于明白怎么清除关于自己的日志了。
通过这次对日志的专门性清除,偶对linux强大的日志也不象以前那么崇拜了,毕竟我这样的烂水平都可以做到入侵完以后只在系统的.bash_history 中留下一个exitt的脚本名,而一般的人看到这个exitt之后还以为是打错了退出系统的命令呢,其实是偶在/sbin下面放的一个大大的脚本,而且这个脚本最后一句还是:
rm -f /sbin/exitt
简直就是“天空没有鸟的痕迹,但我已经飞过”啊,强烈崇拜自己了,嘿嘿。