一.简介
环境: 资源服务器是Nginx和php组成的服务,用户可以http://192.168.1.100/one.jpg
方式获取图片。只有负载均衡服务器才有外网地址,并且防火墙只允许80端口访问。
起因: 早上10点半,在查看资源服务器的文件目录时,发现多了一个pc.php,问了一圈发现没人知道这个文件。
二.排查
1.查了一下创建时间和权限,发现是今天早上9点的,权限是www-data,也就是nginx的用户,nginx是禁止登陆的,这就说明可能是通过nginx创建的。
2.查看2台资源服务器的日志,查看负载均衡的也行。可以发现POST提交了脚本,GET去获取脚本,因为资源服务器是安装了php的,访问pc.php,nginx会默认交给php-fpm去执行脚本,从而触发脚本,就像访问https://www.baidu.com/木马.php一样,要是没做一些限制就会运行脚本。
3.通过ps -aux查看发现很多异常进程。查看/tmp目录也发现很多奇怪的文件。通过删除这些东西和重做系统解决,这次危害较小,没有控制其它机器,因为无法登陆,对方也没有提权到root登陆系统做更大危害,但也要注重安全。
三.解决办法
这次只到资源服务器也是因为大体策略做的没问题,对方顶多是传个脚本而没法做更多操作,本次问题很清晰是程序没有做上传限制导致的,禁用post传送文件即可,也可以在nginx上配置禁止执行php文件,只能获取js|css|jpg等文件。