0x00 前言
这周去成都出差啦,没太多时间写文章,就给大家介绍一款经典的小工具吧。2008年至今,历久弥新。
logtamper是一款*修改*linux日志的工具,在修改日志文件的同时,能够保留被修改文件的时间信息(atime没改,觉得没必要)。
Logtamper v 1.1 for linuxCopyright (C) 2008 by xi4oyu
0x01 原理
(1)Linux下有几个查看登陆情况的命令:
$ w ,who(查看当前在线用户)
图为我的虚拟机,tty指终端,即虚拟机软件界面登陆。pts是虚拟终端,是我用物理机ssh连上去的,所以当前共在线两个用户。
who和w命令功能类似。
$ last(查看登陆日志)
可以看到每一次的登陆用户,ip,时间,最后显示该用户是否还在线(still logged in)。
$ lastlog(查看用户上一次登陆情况)
同时每次登陆会自动显示该用户上次登陆的情况。(2)Linux系统一切皆文件
基于这个原则,这几个命令也是有对应的日志文件的。
w和who对应 /var/run/utmp
last对应 /var/log/wtmp
lastlog对应 /var/log/lastlog
(3)清除日志
清理日志时可以使用:$ echo > /日志路径 命令直接清空所有日志,但有时候空白日志比异常登陆日志更容易被管理员警觉。
直接修改日志文件,清除我们自己的那一条登陆记录才是更好的选择。但这些日志文件都是二进制格式,修改起来很不方便,这就是这个工具存在的意义:一键清除某条特定登陆日志。
0x02 使用方法
(1)拷贝到目标机器上后,先添加可执行权限
$ chmod +x logtamper
(2)运行一下看看提示
$ ./logtamper
(3)参数分析
一共有4个参数-f、-h、-w、-m
【hwm对应三种模式】:
h——隐藏w、who命令中的记录。
w——清除last命令中的记录
m——修改lastlog命令中的记录
【f对应日志的路径,是可选项】:
根据原理可知,清除记录其实是去修改对应的日志文件,一般日志文件都在固定的路径下,如果遇到特殊的机器(比如管理员改了日志路径),则可以用-f参数指定日志的路径。不过一般这个参数都不需要加。
(4)使用范例
【范例1:清除w、who命令中的记录】:
$ ./logtamper -h root 192.168.108.1
运行前:
运行后:
【范例2:清除last命令中的记录】:
$ ./logtamper -w root 192.168.108.1
运行前:
运行后:
【范例3:清除lastlog命令中的记录】:
$ ./logtamper -m root 127.0.0.1 pts/1 2019:12:21:10:58:9
运行前:
运行后:
重新登陆一下试试:
0x03 后记
utmp、wtmp和lastlog是比较常用的日志,如果不清理会比较明显,很容易被管理员发现。
但登陆日志绝不仅仅存在于这几个文件中,/var/log目录下还有很多文件也会记录一些登陆信息,只不过不太常用,很少有管理员会去看,比如messages、secure等。如果追求更加隐蔽,也记得手动清除这些日志。
需要注意的是,lastb命令可以查看登陆失败日志,而使用ssh命令行连接时,如果忘记输入用户名,是会自动填入本机的管理员用户的。小心不要留下自己电脑的用户名哦。
lastb命令对应文件为/var/log/btmp
工具下载地址见文末留言,直接用里面的logtamper就行了,其他的是源码,环境问题导致无法直接运行时可以自己重新编译一下。
END.
欢迎留言~
欢迎关注~
欢迎点赞~
我是小黑,喵~