我们正在运行一个内部有100个站点的专用服务器。 其中一些网站是非常不安全的,箱子pipe理得不好。 有人进来了,弄乱了一堆东西,通过玷污一些网站,要钱等等来缠着我们。
我们做了很多的修复,但是还有一些他可以进入的后门。我们find并删除了一些黑客控制面板的文件,但是由于这个文件被称为contactUs.php,所以不可能知道这些文件的所有实例都被删除了。
我意识到这是一个非常广泛的话题,可能难以回答的问题,但是我们会采取哪些步骤来弄清楚这个人如何进入系统?
这是一个主要运行PHP网站的Fedora机器。
老实说,如果你经营一家公司,我不会试图研究攻击者,我只是locking他们,继续前进。 与这样的人进行斗智斗勇的时间,麻烦和挫败感是不值得的。 一些想法摆脱他们:
mod_php运行PHP脚本,因为这是孩子们的玩法,要利用不得不授予Web服务器对系统各个部分的写入权限所导致的不可避免的权限问题。 使用suexec或suphp。 example (对于站点example.com ),则可以使用名为example-cgi (或等效)的用户运行其dynamic内容, 。 然后只允许example-cgi用户写入访问文件系统树的那些需要它们的部分。 (这需要修改suexec的权限检查,但这是值得的)。 这样攻击者就不能运行修改网站PHP代码的脚本,而且他们必须更加努力地注入漏洞。 可能还有其他的东西我现在还想不起来,但是这会让你暂时停下来。
一些想法:
如果你能得到他修改过的文件的证据,你可能会得到一个时间戳,你可以在服务器本身或中间盒(防火墙等)上logging一些日志。 如果这个人自己清理完毕,在他login的盒子上有重复的日志或者设置远程login – 这样他就不能抹去证据。 互相关将是棘手的至less可以说,尤其是在你的负载。
除此之外,使用rkhunter,chkrootkit和OSSEC,看看它发生了什么。 或者build立一个蜜jar,看看他是否咬了:)