一、事件起因
公司研发人员声称一台服务器最近经常连接不上,即使连上了也很慢。查看报警记录发现服务器内存和CPU频频报警,而且服务器上莫名多了一堆 cron.php的异常文件,文件删除后过段时间又会重新生成类似的文件,且端口随机。
image image二、排查过程
1、登录服务器后top查看当前服务器资源占用情况,因为研发已经删除过异常文件,新的异常文件还未生成,所以查看一切正常。
image2、鉴于异常进程影响了服务器性能和业务,和研发沟通后,先启用防火墙,只保留必要的业务端口,其他端口全部禁止通信。
image3、文件删除后还会重新生成,首先想到的是定时任务是否正常。
用crontab -l命令查看定时任务,发现定时任务列表为空。
4、查看开机启动项chkconfig,也未见明显异常。
image5、利用ps aux|grep php命令查看php 进程状态,发现很多./cron.php的异常进程在运行。
image6、利用ps -axjf以进程树形式显示当前运行的进程相互关系。
image发现./corn.php进程的PID为24583,且父进程为10655。由图中可知10655为php-fpm。
7、根据进程的PID查找执行的文件及其路径
(1)lsof -p PID
(2)或者cd /proc,然后cd/PID,再执行ls -ail可达到同样效果。
lsof -p 24583查看异常进程的详细信息。
image.gif由文件描述符FD一项中的cwd(current work dirctory,即:应用程序的当前工作目录) 可知,异常进程路径指向了/data/app/web/www.xxx.xx/wp-content/uploads;且由txt可以看出程序代码已被删除。
8、继续查找,在异常进程的文件夹又发现两个异常文件dir94.php和include78.php。
ls -al /data/app/web/www.xxx.xx/wp-content/uploads
image.gif9、将两个异常文件发送到本机查看review,确认为php的字节编码漏洞利用文件。同时在服务器上还发现了后缀为.ico的木马文件。
image.gif image image参考链接:
Byte encoding exploits in PHP files
https://www.conetix.com.au/blog/byte-encoding-exploits-php-files
走近科学:如何一步一步解码复杂的恶意软件
http://www.freebuf.com/articles/system/145105.html
10、删除异常木马文件,同时杀死异常进程。再次查看服务器,没有重新生成异常进程。
rm -rf /data/app/web/www.xxx.xx/wp-content/uploads/dir94.php
rm -rf /data/app/web/www.xxx.xx/wp-content/uploads/dir94.php
kill -9 24583
三、问题分析
通过文件上传时间分析服务器网页日志文件,发现用户是通过上传ico文件,图片中含有php代码,利用Nginx的解析漏洞成功执行木马文件。将Nginx升级至最新版本,删除木马文件,问题解决!
网友评论