Linux修改文件更改时间ctime

admin 2024年10月21日18:35:50评论8 views字数 1608阅读5分21秒阅读模式
在应急响应以及入侵检测的过程中,如果文件系统不支持查看文件创建时间,我们通常会取恶意文件时间戳中的更改时间,即ctime作为该文件的时间元素,因为操作系统并没有提供可以更改ctime值的函数接口,反观atime、mtime都可以通过touch命令修改为任意值。例如如下命令:
touch -r file1 file2touch -t 202310012012 file1
通过网络搜索如何更改Linux文件ctime的时候,大多数提供的方式要么是修改系统时间,要么是通过debugfs修改文件。上述两种方式各有弊端,修改系统时间容易引发基础监控告警,debugfs需要先将对应挂载点卸载。那么有没有更加合适的方法修改文件ctime呢?
答案是有,之前的文章讲到过:linux文件的元数据存储于inode中。我们可以通过内核模块修改inode来更新文件的ctime。下面为demo代码,替换文件名和时间戳,保存为modify_file_timestamp.c。
#include <linux/module.h>#include <linux/fs.h>#include <linux/path.h>#include <linux/namei.h>#include <linux/time.h>static int __init modify_ctime_init(void) {    struct path path;    struct inode *inode;    struct timespec64 new_time;    const char *filename = "/root/10-21.txt";    int err;    // 设置新的时间点    new_time.tv_sec = 1516534265; // 2018-01-21 19:31:05    new_time.tv_nsec = 0;    // 获取文件路径    err = kern_path(filename, LOOKUP_FOLLOW, &path);    if (err) {        printk(KERN_ERR "Failed to get path: %dn", err);        return err;    }    // 获取 inode    inode = path.dentry->d_inode;    inode->i_ctime = new_time;    mark_inode_dirty(inode);    printk(KERN_INFO "i_ctime modified successfullyn");    return 0;}static void __exit modify_ctime_exit(void) {    printk(KERN_INFO "Module exitedn");}module_init(modify_ctime_init);module_exit(modify_ctime_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("fengyi");MODULE_DESCRIPTION("A module to modify i_ctime of a file");

    创建Makefile

obj-m += modify_file_timestamp.oall:        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modulesclean:        make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

    执行编译,加载内核模块。

makeinsmod modify_file_timestamp.kormmod modify_file_timestamp.ko

    然后查看文件ctime,已成功修改,如下图所示。

Linux修改文件更改时间ctime

    一些新版的内核可以查看文件的创建时间,那么理论上通过上述方式也可以修改文件的创建时间。同时修改上述代码,可以实现批量修改等等。

原文始发于微信公众号(风奕安全):Linux修改文件更改时间ctime

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月21日18:35:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Linux修改文件更改时间ctimehttps://cn-sec.com/archives/3296410.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息