当前位置:

首页 > 软件教程 > 系统时间被恶意篡改后如何通过 last / wtmp / utmp 找入侵痕迹

系统时间被恶意篡改后如何通过 last / wtmp / utmp 找入侵痕迹

系统时间被恶意篡改后,last命令可能因wtmp日志污染而显示混乱时间。此时需交叉验证多个日志源。utmp记录当前会话,其时间戳基于系统启动时间,相对可靠。btmp记录失败登录,其时间戳不依赖系统时钟,是重要突破口。此外,可结合journalctl日志或进程状态进行关联分析,以发现隐藏会话并锁定真实入侵时间。

系统时间被恶意篡改后如何通过 last / wtmp / utmp 找入侵痕迹

当系统时间被恶意回拨或大幅跳变,常规的审计命令如 last 可能会输出混乱的时间信息,比如显示“Thu Jan 1 00:00:00 1970”或大量登录记录集中在某一天。这并非命令本身出错,而是其读取的日志文件已被污染。攻击者常通过修改系统时间并干扰审计日志来掩盖行踪。面对这种情况,如何穿透迷雾,找到真实的入侵痕迹?关键在于理解不同日志文件的特性并进行交叉验证。

last 命令输出时间混乱?先确认 wtmp 文件是否被篡改

如果 last 显示的登录时间严重失真,问题根源通常在于 /var/log/wtmp 文件。这个文件记录了所有登录和注销事件,但其内部的时间戳依赖于写入时的系统时间。一旦系统时间被恶意修改,后续写入的时间戳自然就是错误的。

更狡猾的攻击者会直接清空或覆盖 wtmp 文件,试图抹除证据。如何判断 wtmp 是否可信?一个快速有效的方法是比对文件的磁盘修改时间与其中记录的最后登录时间。

具体操作如下:

  • 使用 stat /var/log/wtmp 命令查看文件的 mtime,即最后一次被写入磁盘的真实时间。
  • 运行 last -n 1 查看 wtmp 中记录的最新一条登录时间。

如果文件的 mtime 远早于 last 显示的“最新登录时间”(比如相差数小时甚至数天),这就强烈暗示 wtmp 文件很可能被替换或重写过。此时,last 命令的时间排序已不可信,但文件中残留的原始记录条目可能依然存在,只是时间戳错乱了。

绕过时间戳,用 utmp + 进程状态交叉验证活跃会话

当 wtmp 的历史记录不可靠时,我们可以转向另一个关键文件:/var/run/utmp。它记录了当前在线的用户会话,并且有一个重要特性——其时间戳由内核写入,使用的是单调递增的启动时间(boot-time),而非易受篡改的墙上时钟(wall-clock)。这意味着,即使系统时间被回拨,只要会话尚未退出,w 命令(读取 utmp)仍能准确反映真实的在线用户状态。

不过,这里有个陷阱。攻击者常用的非交互式登录(例如执行 ssh user@host /bin/bash)不会在 utmp 中留下记录,因此 w 命令也看不到。这正是许多隐蔽后门采用的手法。

如何揪出这些“隐形”会话?需要结合进程状态进行交叉验证:

  1. 运行 w 命令查看当前在线用户。
  2. 同时,执行 ps aux | grep “sshd:” | grep -v “sshd:” 来查找所有 SSH 守护进程派生的子进程。
  3. 如果发现存在 sshd: 进程,但 w 命令中没有对应的用户,那么极有可能是一个无 TTY 的(no-tty)会话。
  4. 进一步,可以用 lsof -i :22 -sTCP:ESTABLISHED 检查所有已建立的 SSH 连接,并核对其进程 PID 在 ps 输出中是否显示为 notty 或缺少 TTY 字段。

对于使用 systemd 的系统,loginctl list-sessions 命令也是一个有力的补充工具。它基于内核的 session ID,比 utmp 更难被完全绕过。

btmp + lastb 是唯一不受系统时间欺骗的失败登录证据

在所有登录相关的日志中,/var/log/btmp 文件(记录失败登录尝试)堪称“铁证”。它的写入由 PAM 模块触发,最关键的是,其时间戳的生成不依赖系统墙上时钟。内核会使用 CLOCK_MONOTONIC 或基于启动时间的偏移来写入时间字段。

这意味着,哪怕攻击者把系统时间调回到 1970 年,lastb 命令输出的时间戳依然是相对可信的(通常会表现为自系统启动以来的秒数偏移)。使用 lastb -i 选项可以强制解析并显示这些相对时间。

因此,在时间被篡改的场景下,btmp 是寻找入侵线索最可靠的突破口之一:

  • 执行 lastb -n 20 快速浏览最近的失败登录,特别关注那些显示为 invalid user 或来自单一 IP 地址的高频尝试。
  • 使用命令 lastb | awk ‘{print $3}’ | sort | uniq -c | sort -nr | head -5 可以统计出撞库攻击中最常见的源 IP 地址。
  • 如果发现 btmp 文件大小为 0 或已被删除,别忘了检查是否有日志轮转留下的备份文件,例如 btmp-20260128。攻击者常常会忽略这些轮转后的旧日志。

需要注意的是,lastb 命令默认需要 root 权限才能执行。另外,部分 Linux 发行版(如 CentOS 7 及以上版本)默认可能不开启 btmp 记录。可以检查 /etc/audit/rules.d/audit.rules 文件中是否存在 -w /var/log/btmp -p wa 这条审计规则来确认。

当 wtmp 不可靠时,用 journalctl 回溯认证事件原始时间

对于现代的 Linux 发行版(如 RHEL 8+ 或 Ubuntu 20.04+),SSH 的认证事件不仅会写入传统的 /var/log/secure(或 /var/log/auth.log),还会被 systemd-journald 捕获。Journal 日志的优势在于它使用独立的单调递增时间戳,不受系统时间修改的影响,并且精度高达纳秒级。

直接查询 journal 日志,往往比依赖已被污染的 wtmp 更可靠:

  • 使用命令:journalctl _COMM=sshd -S “2026-01-28 00:00:00” –no-hostname -o short-iso | grep -E “(Accepted|Failed)”。这里的 -S 参数指定起始的绝对时间,journald 会按照日志的真实写入顺序返回结果,完美规避系统时间错乱的问题。
  • 如果 journal 日志也被清空,那么可以转而检查 /var/log/secure 文件本身的修改时间(stat 命令),然后使用像 sed -n ‘/Jan 28.*sshd/p’ /var/log/secure 这样的命令,根据日志行内的日期字符串进行手动提取。攻击者要批量替换日志文件中所有的时间字符串,难度会大得多。

这里有一个重要提醒:避免使用像 journalctl –since “2 hours ago” 这样的相对时间查询,因为它仍然会受到当前系统时间的影响。务必使用绝对的 ISO 时间格式。

说到底,最难以伪造的是多源日志在时间上的一致性。例如,如果发现 btmp 中有一条失败记录,几秒后 journalctl 里出现了对应的成功登录日志,同时 ps 命令显示该用户会话进程依然存活,那么这三者共同指向的时间窗口,就基本可以锁定真实的入侵发生时刻。这种跨日志的关联分析,是应对高级隐匿手段的终极武器。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
软件教程
下一篇: 如何打开ASP文件?
相关文章 更多
quicker软件怎么用新手入门操作教程详解
quicker软件怎么用新手入门操作教程详解

详解 Quicker 软件基础用法,包括如何唤出动作面板、创建基于选中文本的搜索动作、管理场景与分组,以及配置专属动作快捷键,提升 Windows 办公效率。

charles配置https证书与抓包设置教程
charles配置https证书与抓包设置教程

详解Windows下Charles HTTPS抓包配置:包括根证书安装信任、SSL Proxying主机设置、浏览器验证及移动端差异处理,确保开发者安全高效地调试加密流量。

爱贝壳内容同步助手怎么关闭功能操作教程
爱贝壳内容同步助手怎么关闭功能操作教程

想知道如何关闭爱贝壳内容同步助手?本教程详解在Chrome和Edge浏览器中停用扩展、限制网页权限及彻底卸载的步骤,帮助你安全暂停同步任务并检查浏览器状态。

vidhub文件源打开慢怎么解决的实用教程
vidhub文件源打开慢怎么解决的实用教程

VidHub添加SMB或WebDAV文件源后加载缓慢?本文详解如何区分媒体库扫描慢与视频播放卡,通过精简扫描路径、验证网络权限及本地下载对比,快速解决文件源响应延迟问题。

reqable全局变量设置在哪里完整操作教程
reqable全局变量设置在哪里完整操作教程

想知道Reqable全局变量设置在哪里?本教程详解环境变量入口位置、全局与自定义环境的区别、变量引用方法及安全检查步骤,助你轻松管理API调试配置。

jmcomic3漫画官网下载安装包下载与使用指南
jmcomic3漫画官网下载安装包下载与使用指南

面向寻找高清无广告漫画资源的读者,jmcomic3漫画app(https://www.jmmanhua.top/)提供海量精品内容与智能推荐。针对用户关心的隐私保护及阅读卡顿问题,本文详解如何通过隐私设置隐藏收藏记录,并从设备内存、网络信号及线路切换三个维度排查加载故障,助您获得流畅纯净的沉浸式阅读体验。

skyvern在windows上使用教程及详细操作步骤
skyvern在windows上使用教程及详细操作步骤

详解如何在Windows环境下使用Docker Compose部署Skyvern。包括LLM密钥配置、本地Web界面登录、API连接检查及首个浏览器自动化任务创建步骤,适合初学者快速上手。

nativerest中文设置下载完整教程指南
nativerest中文设置下载完整教程指南

想在 Mac 上使用中文界面的 NativeRest?本指南详解官方下载渠道、简体中文语言设置步骤、工作区管理及请求调试基础,助你快速配置并上手这款轻量级 API 测试工具。

axglyph教程 如何导出高清图片的详细操作步骤
axglyph教程 如何导出高清图片的详细操作步骤

学习AxGlyph如何导出高清图片。本文详解从画布调整、菜单入口选择、格式对比(PNG/JPG/EMF)到文件保存与检查的全流程,助您获取高质量科研示意图与流程图。

吉光卡片功能设置方法详细图解教程
吉光卡片功能设置方法详细图解教程

想在 iPhone 上把书摘和备忘录变成精美图片?本文详细图解吉光卡片的功能设置方法,包括模板选择、标题日期设置、背景美化及长文自动拆分技巧,助你轻松制作高颜值文字卡片。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
WPS Office macOS版
WPS Office macOS版
macOS

WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,

Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

REAPER macOS版
REAPER macOS版
Mac

REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

WINDOWS 更多
Blender Windows版
Blender Windows版
Windows

Blender 是免费开源的三维创作套件,在 Windows 上提供建模、雕刻、材质、动画、物理模拟、合成、跟踪、视频剪辑及 Cycles、EEVEE 渲染工具。它适合个人创作者、学生和小型工作室,

Autodesk Maya Windows版
Autodesk Maya Windows版
Windows

Autodesk Maya 是面向影视、电视、动画和游戏行业的专业三维制作软件,集多边形与 NURBS 建模、角色绑定、关键帧和动作捕捉动画、Bifrost 特效模拟、材质开发及 Arnold 渲染于一体,

AutoCAD Windows版
AutoCAD Windows版
Windows

AutoCAD 是 Autodesk 推出的专业计算机辅助设计软件,Windows 版支持精确二维绘图、三维实体与曲面建模、图纸标注、布局发布和任务自动化,并包含多套行业专业化工具组合,适用于建筑、机械、电气、工程建设及制造设计人员。