Linux二进制日志修改技术

Linux二进制日志修改技术

Linux二进制日志包含如下:

命令 日志文件 功能 utmpdump支持
last /var/log/wtmp 所有成功登录/登出的历史记录
lastb /var/log/btmp 登录失败尝试
lastlog /var/log/lastlog 最近登录记录

下面以修改last日志为例:

linux修改last日志

image-20241231155356950

修改last日志,需修改/var/log/wtmp文件,但/var/log/wtmp 文件时二进制,通过下面命令将二进制文件转换为可编辑文件 wtmp.file

1
utmpdump /var/log/wtmp >/var/log/wtmp.file

image-20241231155415669

编辑/var/log/wtmp.file 删除部分login记录,或修改登录记录,比如删除所有113.140.2.134 IP的相关的记录:

1
sed -i "/113.140.2.134/d" wtmp.file

image-20241231155426043

修改完成后通过如下命令重新生成last二进制文件:

1
utmpdump -r < /var/log/wtmp.file > /var/log/wtmp

image-20241231155436021

修改完成,可用last命令查看修改结果。wtmp文件可用utmpdump 在二进制与正常可编辑文件之间转换

再次查看last,已无113.140.2.134的登录日志

image-20241231155452534

其他二进制日志同理

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文件的格式很大程度上取决于输入格式。 此工具不是为正常使用而编写的,而是仅用于调试