admin管理员组

文章数量:1487745

应急响应中的文件时间:mtime、atime、ctime

文件时间的区别?

Modify:最后一次修改文件内容的时间

Access:最后一次访问文件内容的时间

Change:最后一次文件属性变化的时间

modify修改和change变化的区别是,修改侧重人为修改(用户控制),变化侧重客观变化(系统控制)。

Modify:文件内容从内存到硬盘中

Access:文件内容从硬盘到内存中

Change:文件属性从内存到硬盘中

改变mtime的命令:

  • vim(修改)、nano
  • 管道符(如:echo >> 文件名)

改变atime的命令:

  • 改变mtime的命令(管道符改变mtime时不改变atime)
  • vim(查看)、cat
  • grep、sed、awk
  • less、more

改变ctime的命令:

  • 改变mtime的命令(ctime会比mtime晚几毫秒)
  • chmod、chown、chgrp
  • mv

mtime改变时atime可能改变所以mtime等于或晚于atime,atime改变时mtime不改变所以mtime早于atime,因此:mtime与atime之间没有明显的先后关系

mtime改变时ctime肯定改变所以mtime等于或早于ctime,ctime改变时mtime不改变所以mtime早于ctime,因此:mtime不可能晚于ctime

查看MAC时间:stat 文件名

查看mtime:ls -l 文件名

查看atime:ls -lu 文件名

查看ctime:ls -lc 文件名

显示详细时间:ls --full-time

按mtime排序,由近到远:ls -lt

按mtime排序,由远到近:ls -ltr

按atime排序,由近到远:ls -lut

。。。

上面都是Linux文件时间的介绍,Windows文件时间“修改时间、访问时间、创建时间”由于没有歧义,就不做介绍了。查看方式是:

查看全部时间:选中文件,单击鼠标右键,选择属性

查看修改时间:dir 文件名 /t:w

查看访问时间:dir 文件名 /t:a

查看创建时间:dir 文件名 /t:c

文件时间在应急响应中的作用?

判断攻击时间,以便围绕攻击时间排查入侵痕迹。

文件时间的可信度?

01 攻击者为什么要篡改文件时间?

干扰防守方应急

02 往前改还是往后改?

往前改到入侵开始前的时间,日志量变大可以拖慢防守方的排查效率,如果历史日志被覆盖了还可以影响防守方的排查思路。

往后改到入侵结束后的时间,由于日志没有入侵痕迹从而可以切断防守方的应急线索。

HVV求快或开始入侵时,可以往前改;APT求稳或完成入侵时,可以往后改。

03 篡改文件时间的方法?

Linux更新mtime和atime和ctime:

  • touch 文件名:若不存在文件,创建空文件;若存在文件,更新mtime和atime和ctime
  • touch -m 文件名:若不存在文件,创建空文件;若存在文件,更新mtime和ctime
  • touch -a 文件名:若不存在文件,创建空文件;若存在文件,更新atime和ctime
  • touch -c 文件名:若不存在文件,不创建空文件;若存在文件,更新mtime和atime和ctime

Linux篡改mtime和atime:

  • touch -t 时间 文件名:篡改mtime和atime,更新ctime(touch -t 202311220102.03 文件名)
  • touch -d 时间 文件名:篡改mtime和atime,更新ctime(touch -d "2023-11-22 01:02:03.123456789" 文件名)
  • touch -r 文件名1 文件名2:篡改mtime和atime成文件名1的,更新ctime

因此,-t只能精确到秒,毫秒/微秒/纳秒都是0,容易被识破,不建议使用;-d和-r可以精确到毫秒/微秒/纳秒,更真实,建议使用。

Linux篡改ctime:

  1. date -s "2023-11-22 01:02:03.123456789":篡改系统的日期和时间
  2. touch 文件名:篡改文件的mtime和atime和ctime
  3. ntpdate ntp.aliyun:恢复系统的日期和时间(或用“date -s 时间”来恢复)

Windows篡改“修改时间”和“访问时间”:

  1. date 2023/11/22:篡改系统的日期
  2. time 01:02:03:篡改系统的时间
  3. copy 文件名 +,, :篡改文件的“修改时间”
  4. copy 文件名 +.. :篡改文件的“修改时间”和“访问时间”

Windows篡改“创建时间”:

命令行无法直接篡改,需要借助工具,一般攻击场景不会为这个细节特地上传工具,此处暂不介绍。

04 如何识别文件时间是否被篡改?

1、如果攻击者偷懒,篡改mtime和atime时,没有精确到毫秒/微秒/纳秒,系统默认会设为000000000。所以如果遇到秒后面全是0的mtime和atime,说明文件时间被篡改过。

2、如果攻击者偷懒,篡改ctime时,只篡改了日期,没有篡改时间,系统默认就从00:00:00开始。所以如果ctime距离0点很近,说明文件时间大概率被篡改过。

3、由于date命令需要root权限才能执行,因此可以通过判断攻击者是否获得root权限,来判断ctime是否会被篡改。如文件上传漏洞时中间件用户是否root权限、date命令是否4000权限等。

4、mtime改变时ctime肯定改变所以mtime等于或早于ctime,ctime改变时mtime不改变所以mtime早于ctime,因此:mtime不可能晚于ctime。所以如果mtime晚于ctime,说明文件时间被篡改过。

5、如果历史命令日志还在,可以查看是否存在篡改时间的记录,来判断文件时间是否被篡改过。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2023-11-22,如有侵权请联系 cloudcommunity@tencent 删除排序权限日志系统内存

本文标签: 应急响应中的文件时间mtimeatimectime