我有一台 Web 服务器,在 Parallels Automation 11.5 环境中运行许多不同的网站(标准 vhosts 设置,大多数网站基于 Joomla,少数为 wordpress 和其他非 CMS 网站)。Web 服务器上的 apache 版本为 2.2.15,多个 PHP 版本都存在同样的问题。
我们的网站遭到了多次黑客攻击,我们的服务器正在变成一个垃圾邮件发送机器人。据我目前所知,恶意人员能够上传 PHP 文件,通常是上传到 docroot,但有时会上传到 images 文件夹,遵循 wn.php (w12345678n.php) 命名模式,据我所知,这是 WSO Web Shell。然后,该人似乎使用该 Web Shell 将注入/恶意代码添加到网站的其余部分。
令我感到奇怪的是,这些网站以 FastCGI 形式运行,因此所有文件都归特定帐户(bob_ftp 等)的 FTP 用户所有,但 WSO shell php 文件被放置在 apache:apache 所有权下的 Web 服务器上。
我猜这些文件是通过某种 Apache 漏洞添加的,但我没有找到罪魁祸首。有人能告诉我如何锁定这些恶作剧吗?最好是通过关闭漏洞,但目前我只想找到某种方法来减轻损害,这样我就不必在这上面浪费太多时间了。
答案1
文件是在运行该进程的用户下创建的。如果它们归 apache 所有,并且位于 apache 可写的目录中,那么请问问自己,为什么 apache 需要在该区域“完全”写入。进一步收紧文件权限:chown root、chmod o-wrx 等。Apache 通常只需要读取权限,而不需要所有权。
验证 /etc/passwd 中的唯一 uid,apache 的 uid 可能有重复的隐藏在那里。
顺便说一句:如果您允许 FTP 用户编写可执行文件,那么请考虑使用 chroot。