Linux二进制日志修改技术
Linux二进制日志包含如下:
命令 | 日志文件 | 功能 | utmpdump支持 |
---|---|---|---|
last | /var/log/wtmp | 所有成功登录/登出的历史记录 | ✅ |
lastb | /var/log/btmp | 登录失败尝试 | ❌ |
lastlog | /var/log/lastlog | 最近登录记录 | ❌ |
下面以修改last日志为例:
linux修改last日志
修改last日志,需修改/var/log/wtmp文件,但/var/log/wtmp 文件时二进制,通过下面命令将二进制文件转换为可编辑文件 wtmp.file
1 | utmpdump /var/log/wtmp >/var/log/wtmp.file |
编辑/var/log/wtmp.file 删除部分login记录,或修改登录记录,比如删除所有113.140.2.134 IP的相关的记录:
1 | sed -i "/113.140.2.134/d" wtmp.file |
修改完成后通过如下命令重新生成last二进制文件:
1 | utmpdump -r < /var/log/wtmp.file > /var/log/wtmp |
修改完成,可用last命令查看修改结果。wtmp文件可用utmpdump 在二进制与正常可编辑文件之间转换
再次查看last,已无113.140.2.134的登录日志
其他二进制日志同理
utmpdump命令介绍:
utmpdump
以原始格式转储UTMP和WTMP文件
命令语法格式
utmpdump [options] [filename]
命令描述
命令utmpdump是一个以原始格式转储UTMP和WTMP文件的简单程序,因此可以检查它们的内容。命令utmpdump从标准输入读取,除非传递filename参数。
命令支持的选项及含义
-f, –follow
随着文件的增长输出被追加的数据。类似于tail(1)的-f选项。
-o, –output file
将命令的输出写入file,而不是标准输出。
-r, –reverse
非转储,而是将编辑后的登录信息写回utmp或wtmp文件。
-V, –version
显示版本信息并退出。
-h, –help
显示帮助信息并退出。
注意事项
在utmp或wtmp条目损坏的情况下,命令utmpdump非常有用。 它可以将utmp/wtmp转储到ASCII文件中,然后可以对其进行编辑以删除虚假条目,并使用以下命令重新集成:
# utmpdump -r < ascii_file > wtmp
但请注意,utmpdump仅用于调试目的。
文件格式
手册utmp(5)的唯一二进制版本是标准化的。文本转储可能在将来变得不兼容。
版本2.28是使用ctime(3)时间戳格式打印文本输出的最后一个版本。较新的转储使用UTC-0时区中的毫秒精度ISO-8601时间戳格式。 从以前的时间戳格式转换可以制成二进制,但尝试这样做会导致时间戳漂移时区偏移量。
注意
您可能不使用-r选项,因为utmp/wtmp文件的格式很大程度上取决于输入格式。 此工具不是为正常使用而编写的,而是仅用于调试