博客 / Others/ Linux find 命令实战:高效查找可疑木马与系统文件

Linux find 命令实战:高效查找可疑木马与系统文件

Linux find 命令:查找可疑文件的实用指南

在 Linux 系统运维和安全排查中,find 命令是查找文件的强大工具。当怀疑系统存在可疑文件(如木马、后门)时,可以结合文件修改时间、类型和名称等条件进行精准搜索。以下是几个常用且实用的查找场景和命令。

1. 查找最近30天内被修改的文件

查找当前目录及其子目录下,最近30天内被修改过的所有文件,并列出详细信息。这有助于发现近期可能被篡改或植入的文件。

find ./ -mtime -30 -type f -exec ls -l {} ;
  • -mtime -30:表示修改时间在30天以内。
  • -type f:限定查找对象为普通文件。
  • -exec ls -l {} ;:对找到的每个文件执行 ls -l 命令,显示详细信息。

2. 查找并列出所有 .txt 文件

查找当前目录及其子目录下所有扩展名为 .txt 的文件。

find ./ -name "*.txt" -print

在现代系统中,-print 是默认动作,通常可以省略。

3. 查找并删除所有 .txt 文件

警告:此命令会直接删除文件,请谨慎使用! 建议先使用不带 -exec 的命令预览要删除的文件列表。

find ./ -name "*.txt" -exec rm -rf {} ;
  • -exec rm -rf {} ;:对找到的每个文件执行 rm -rf 命令进行强制删除。

4. 查找最近30天内被修改的 .php 文件

这是安全排查的典型场景,用于查找近期可能被植入恶意代码的 PHP 文件。

find ./ -name "*.php" -mtime -30 -type f -exec ls -l {} ;

修正说明: 原文命令中的 -typef 应为 -type f(中间有空格)。已修正。

5. 查找特定时间窗口内被修改的 .php 文件

查找修改时间在30天以内,但超过1天(即1天前到30天前之间)的PHP文件。这有助于缩小排查范围,聚焦于某个历史时间段。

find ./ -name "*.php" -mtime -30 -mtime +1 -type f -exec ls -l {} ;
  • -mtime +1:表示修改时间在1天以前。
  • 组合条件 -mtime -30 -mtime +1 表示“修改时间在1天到30天之间”。

修正说明: 原文命令中的 -execls 应为 -exec ls(中间有空格)。已修正。

安全排查进阶建议

  • 结合文件权限查找: 可使用 -perm 参数查找具有可疑权限(如777)的文件,例如:find ./ -type f -perm 777
  • 查找可疑隐藏文件: 使用 find ./ -name ".*" 查找所有隐藏文件。
  • 先预览后操作: 在执行任何删除或修改操作前,务必先使用 -exec ls -l-print 预览结果,确认无误。
  • 结合其他工具: 对于找到的可疑文件,应使用杀毒软件、strings 命令或在线病毒扫描服务进行进一步分析。

熟练掌握 find 命令的用法,能极大提升系统安全审计和问题排查的效率。

发表评论

您的邮箱不会公开。必填项已用 * 标注。