Linux 日志清除


<<logtamper_v1_1.tgz>>

logtamper 是一款 * 修改 *linux 日志的工具,在修改日志文件的同时,能够保留被修改文件的时间信息 (atime 没改,觉得没必要 ) 。

[root@localhost logtamper]# ./logtamper-static
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu  

logtamper [-f utmp_filename] -h username hostname hide username connected from hostname
logtamper [-f wtmp_filename] -w username hostname erase username from hostname in wtmp file
logtamper [-f lastlog_filename] -m username hostname ttyname YYYY[:MM[:DD[:hh[:mm[:ss]]]]] modify lastlog info

-f 选项:用于指定要修改的文件的路径的,是个可选项。由于不同系统的日志存放路径不一样,可以手工指定。
默认的日志存放地点是:
#define UTMPFILE "/var/run/utmp"
#define WTMPFILE "/var/log/wtmp"
#define LASTLOGFILE "/var/log/lastlog"

-h 选项 : 有时候你和管理员同时在线,管理员 w 一下就能看到你了。使用 -h 选项用户躲避管理员 w 查看,如下:

[root@localhost logtamper]# w
21:27:25 up 5 days, 13:48, 4 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri14 18:24m 0.33s 0.33s -bash
root pts/3 192.168.80.1 21:21 6:22 0.04s 0.04s -bash
root pts/2 192.168.80.1 21:06 0.00s 0.13s 0.00s w
root pts/4 192.168.80.1 21:21 5:52 0.03s 0.03s -bash

我们是从192.168.80.1机器连上来的,现在隐藏下:

[root@localhost logtamper]# ./logtamper-static -h root 192.168.80.1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu 

Seems you're invisible Now...Check it out!

[root@localhost logtamper]# w
21:27:46 up 5 days, 13:48, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - Fri14 18:24m 0.33s 0.33s -bash
[root@localhost logtamper]#

-w 选项:用于清除你的登录日志,现在上的linux日志清除工具做的很粗燥啊,这个可以指定清除某些hostname过来的机器。

[root@localhost logtamper]# last
root tty1 Wed Oct 1 21:30 - 21:30 (00:00)
root pts/4 192.168.80.1 Wed Oct 1 21:21 still logged in
root pts/3 192.168.80.1 Wed Oct 1 21:21 still logged in

wtmp begins Wed Oct 1 06:01:46 2008

清除192.168.80.1的登录日志:

[root@localhost logtamper]# ./logtamper-static -w root 192.168.80.1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu 

Aho,you are now invisible to last...Check it out!
[root@localhost logtamper]# last
root tty1 Wed Oct 1 21:30 - 21:30 (00:00)

wtmp begins Wed Oct 1 06:01:46 2008
[root@localhost logtamper]#

-m 选项:用于修改上次登录地点,我们使用ssh登录的时候可能会注意到这点
login as: root
Sent username "root"
root@192.168.80.128's password:
Last login: Wed Oct 1 21:31:40 2008 from 192.168.80.45
[root@localhost ~]#

如果不修改lastlog的话,管理员下次登录就会提示从我们的机器IP登录。使用-m选项可以编辑这个选项:

[root@localhost logtamper]# ./logtamper-static -m root 1.2.3.4 tty10 2008:1:1:1:1:1
Logtamper v 1.1 for linux
Copyright (C) 2008 by xi4oyu 

Aho, now you never come here before...Check it out!
[root@localhost logtamper]#
当然,这只是个举例,在使用中各位请根据具体信息修改,下次管理员登录,登录界面就成了

login as: root
Sent username "root"
root@192.168.80.128's password:
Last login: Tue Jan 1 01:01:01 2008 from 1.2.3.4
[root@localhost ~]#

深入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 的日志,其他如.bashhistory message secury的日志清起来比较简单,因为是文本可编辑的文件,直接操作即可,当然也不要一行行的自己操作,我的做法是登陆系统后先备份.bashhistory,然后重新登陆的时候将它考回去,这样历史记录就顺利还原了,我是用脚本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

列出所有的历史记录:#history

只列出最近10条记录:#history 10

bash执行命令时不是马上把命令名称写入.bash_history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。

不过,可以调用history -w命令要求bash立即更新history文件。

history -w

内存中记录过往指令数根据环境变量HISTSIZE而定。

.bash_history中的指令数根据环境变量HISTFILESIZE而定。

调往过往指令:

!!:重复执行上一条指令

!a:复执行上一条以a为首的指令

!number:重复执行上一条在history表中记录号码为number的指令

!$:执行上一条命令的最后一条命令去执行

例如:[root@localhost ~]# ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.

[root@localhost ~]# ping !$
ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.

history命令的记录如何删除?

修改/etc/profile将HISTSIZE=1000改成0或1

清除用户home路径下.bash_history

立即清空里的history当前历史命令的记录

history -c bash 去掉 history 记录 export HISTSIZE=0 export HISTFILE=/dev/null 1. 如果你不想记录自己的操作历史,你可以修改 /etc/profile 将 HISTSIZE=1000 改成 0 ,即用户退出 Bash 后,会清除用户 home 路径下 .bash_history 。如果你想记录得更多,可以把 HISTSIZE 的值修改为 2000 或更大。 2. 立即清空 history 当前历史的记录 history -c 3. Bash 执行命令时不是马上把命令名称写入 history 文件的,而是存放在内部的 buffer 中,等 Bash 退出时会一并写入。不过,你可以调用‘ history -w ’命令要求 bash 立即更新 history 文件。 history -w

Bash shell 在“ ~/.bashhistory ”(“ ~/ ”表示用户目录)文件中保存了 500 条使用过的命令,这样可以使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“ .bashhistory ”文件。

bash shell 应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。

网管还应该在 "/etc/skel/.bashlogout" 文件中添加下面这行 "rm -f $HOME/.bashhistory" 。这样,当用户每次注销时,“ .bash_history ”文件都会被删除 . 1. 删除所有的日志: find /var -type f -exec rm -v {} \\; (最后的分号也是必须命令的一部分) 2. 设置 /etc/logrotate.d/syslog 文件控制日志文件的大小。如果实在想自己清空的话, > /var/log/message。 也可以将此命令加入到cron任务中。