Linux使用cron定时任务被隐藏的解决方法
作者:有莘不破呀
一、问题现象
线上服务器运行过程中,进程有莫名进程被启动,怀疑是有定时任务自动启动,当你用常规方法去查看,比如使用crontab去查看定时器任务,提示no crontab for root
或者使用cat到/var/spool/cron目录下去查看定时器文件,也是提示no crontab for root
使用vim编辑定时器文件,打眼一看看到的似乎也是空白
但是你从cron定时任务日志中确看到有任务确实在执行,这是咋回事?首先你可能想到配置cron还有其他地方,比如/etc/cron.d/ 下、/etc/下,你检查一通,也都没有定时文件,咋回事呢?
二、问题原因
初次遇到这种问题时,按照常规命令检查,输出显然很是诡异,但cron日志有记录定时有任务在跑,就说明肯定是定时器存在,一定还是有问题没检查出来。
还是从当前能看到信息入手,cron的日志里,异常执行的任务中都带有个^M字符有点可疑,这个字符以前在windows上文件见到过。针对这个可疑字符,度娘了下,一下豁然开朗,原来^M在linux上可以表示为回车换行符,当我们使用cat/more等基础命令去查看带有^M的一行字符串时,终端屏幕上会把 ^M 之后的内容在同一行换行后输出,这样就覆盖掉了^M之前的内容,导致看到的前面出现的诡异现象。
三、解决方法
前面我们习惯于用cat/vim,不加任何参数,直接去看文件,内容其实都被掩藏了,很多人可能执行到这一步,就认为这一定就是个空文件,殊不知你再用相同命令,多走一步,你就可以看到事情的真相。例如:
你用 cat 加上-A参数可以读取文件的所有内容
我们用-A读取可疑文件,发现确实有一段定时任务存在
又或者,你在使用VI查看文件时,你多走一步,进入编辑模式,文本内容也会显示在你的眼前
四、经验总结
出现此类情况,通常服务器可能存在被黑客已经攻破的风险,恶意隐藏了程序代码。并且不光在crontab这种场景下,像执行脚本,配置文件等核心文件都有可能被利用隐藏恶意代码。所以防止此类情况的发生,从安全防御的角度来看,我们可以事前增加对一些关键文件的监控,例如监控文件md5值是否一致,当出现md5不一致情况,及时告警处理。
到此这篇关于Linux使用cron定时任务被隐藏的解决方法的文章就介绍到这了,更多相关解决Linux cron定时任务被隐藏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!