以下是通过crontab排查挖矿木马定时任务的方法:
一、查看crontab任务列表
普通用户crontab查看(Linux系统)
- 对于每个用户,都有自己的crontab任务列表。使用命令crontab -l可以查看当前用户的crontab任务。如果存在可疑的任务,例如频繁指向一些未知脚本或者可执行文件的定时任务,就有可能是挖矿木马的定时任务。例如,如果看到类似*/5 * * * * /home/user/malicious_script.sh(每5分钟执行一次名为malicious_script.sh的脚本)这样的任务,而这个脚本来源不明或者名称可疑,就需要进一步调查。
系统级crontab查看(Linux系统)
- 在Linux系统中,系统级的crontab文件通常位于/etc/crontab以及/etc/cron.d/目录下。查看/etc/crontab文件内容,它包含了系统级别的定时任务设置。可以使用命令cat /etc/crontab查看文件内容。对于/etc/cron.d/目录下的文件,可以使用ls /etc/cron.d/列出文件,然后逐个查看文件内容,如cat /etc/cron.d/some_cron_file。如果发现其中有指向可疑脚本或可执行文件的定时任务,可能是挖矿木马相关的任务。
类Unix系统(如Solaris等)的crontab查看
- 在Solaris系统中,查看用户crontab任务可以使用crontab -l命令(与Linux类似)。对于系统级的定时任务,可能需要查看/var/spool/cron/crontabs/目录下的相关文件,根据不同用户查看对应的文件内容。同样,对于可疑的定时任务设置要保持警惕。
二、分析crontab任务内容
检查任务执行的脚本或可执行文件
- 当查看crontab任务时,重点关注任务执行的脚本或可执行文件的路径和名称。如果是一些不常见的、没有明确用途或者来源不明的文件,很可能是挖矿木马相关的。例如,一个名为xmr_miner.sh(xmr是门罗币的缩写)的脚本在crontab中被定时执行,这是一个非常明显的挖矿木马可疑迹象。
- 对于看似正常的脚本,如backup.sh,也要检查其内容。可以使用文本编辑器(如vi或nano)打开脚本文件,查看其中是否存在调用挖矿程序或者可疑网络连接的代码。例如,脚本中可能存在类似curl http://malicious_mining_pool.com/start_mining(连接到恶意矿池启动挖矿)或者./mining_binary(执行名为mining_binary的挖矿二进制文件)这样的代码。
查看任务的执行时间和频率
- 挖矿木马为了获取更多的收益,通常会设置较为频繁的定时任务。如果发现某个任务每几分钟甚至几秒钟就执行一次,而这个任务又不是系统正常运行所必需的高频任务,就需要怀疑它是否与挖矿木马有关。例如,一个正常的数据备份任务可能每天执行一次或者每周执行几次,但如果在crontab中发现一个名为data_sync.sh的任务每2分钟就执行一次,且经过分析这个任务并没有合理的数据同步需求,那么它可能是挖矿木马的伪装任务。
三、检查crontab任务的来源
检查文件权限和所有者
- 查看crontab任务相关脚本或可执行文件的权限和所有者。如果一个脚本的所有者是未知用户或者是被篡改后的用户,且权限设置不合理(如可执行权限被赋予了不应该有的用户),这可能是挖矿木马入侵后设置的。例如,一个脚本原本应该只有root用户可执行,但发现其他普通用户也有执行权限,同时这个脚本在crontab中被定时执行,就需要深入调查。
查看文件的创建和修改时间
- 使用ls -l命令查看文件的详细信息,其中包括文件的创建和修改时间。如果发现某个与crontab任务相关的文件是在近期突然被创建或者修改的,尤其是当系统近期没有进行正常的软件更新或相关配置更改时,这可能是挖矿木马植入的迹象。例如,一个名为mining_task.sh的脚本在一天前被创建,并且在crontab中被设置为定时执行,而系统之前并没有与挖矿相关的业务需求,那么这个脚本很可能是挖矿木马相关的。