文件时间的区别?
01
Modify:最后一次修改文件内容的时间
Access:最后一次访问文件内容的时间
Change:最后一次文件属性变化的时间
modify修改和change变化的区别是,修改侧重人为修改(用户控制),变化侧重客观变化(系统控制)。
02
Modify:文件内容从内存到硬盘中
Access:文件内容从硬盘到内存中
Change:文件属性从内存到硬盘中
03
改变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。
04
查看MAC时间:stat 文件名
查看mtime:ls -l 文件名
查看atime:ls -lu 文件名
查看ctime:ls -lc 文件名
显示详细时间:ls --full-time
按mtime排序,由近到远:ls -lt
按mtime排序,由远到近:ls -ltr
按atime排序,由近到远:ls -lut
。。。
05
上面都是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:
-
date -s "2023-11-22 01:02:03.123456789":篡改系统的日期和时间
-
touch 文件名:篡改文件的mtime和atime和ctime
-
ntpdate ntp.aliyun.com:恢复系统的日期和时间(或用“date -s 时间”来恢复)
Windows篡改“修改时间”和“访问时间”:
-
date 2023/11/22:篡改系统的日期
-
time 01:02:03:篡改系统的时间
-
copy 文件名 +,, :篡改文件的“修改时间”
-
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、如果历史命令日志还在,可以查看是否存在篡改时间的记录,来判断文件时间是否被篡改过。
原文始发于微信公众号(OneMoreThink):应急响应中的文件时间:mtime、atime、ctime
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论