最近,我在我的一些服务器上发现了一些问题,其中一个帐户通过过时的脚本遭到黑客攻击,并且黑客在帐户内上传了一个 cPanel / FTP 暴力破解 PHP 脚本。
PHP 文件读取 /etc/passwd 来获取用户名,然后使用 passwd.txt 文件尝试强行进入 127.0.0.1:2082。
我正在想办法阻止这种情况。除了“GET /path/phpfile.php”之外,它不会发布任何内容,所以我无法使用 mod_security 来阻止这种情况。
我一直在考虑将 /etc/passwd 的权限更改为 600,但我不确定这会对我的用户产生什么影响。
我也考虑过将本地主机连接速率限制为:2082,但我担心 mod_proxy 会受到影响。
有什么建议么?
答案1
运行某种形式的身份验证,不查看 /etc/passwd 中的用户名,例如 LDAP。另外,我建议激活 SELinux,这样此类黑客攻击在第 1 步就被阻止了(httpd 无法使用默认规则读取 /etc/passwd),但 cPanel 讨厌任何锁定系统的高级尝试。
答案2
首先要启用気液剤,这将有助于保护 cPanel 免受暴力破解。 绝不更改 /etc/passwd 和 /etc/shadow 的权限,它们设置成这样是有原因的。SELinux 将添加一个额外的安全层确实可以阻止漏洞利用代码执行,但可能无法阻止这种攻击。将端口号从 2082 更改为 2083 或类似值,他们使用的脚本可能不是那么智能。
mod_security 很棒但它不会采取任何措施来阻止这次攻击。
您还可以强制执行更好的密码规则。尝试使用 THC-Hydra 进行暴力破解,如果任何帐户被破解,请禁用它们并强制用户选择更好的密码。
答案3
因此,首先要做的是修复/删除那些让黑客拥有上传 cPanel/PHP 脚本特权和能力的过时脚本。之后的一切都是笨拙(糟糕的修复)围绕真正的问题进行,并且您将继续遇到各种问题,直到问题得到纠正为止。
系统预期/etc/passwd
是世界和组可读的(即644
或444
但这可能仍然会破坏一些东西),而/etc/shadow
它存储密码哈希值应该限于600
(所有者可读写,组和所有人都无权访问 o+rw,g-,a-
)。
由于没有使用过 cPanel,我不知道是否可以通过 PAM 身份验证模块对其进行限制,从而限制密码检查尝试的速率,使密码暴力破解尝试变得徒劳无功。我想到的 PAM 模块称为“pam_faildelay
减慢多次尝试的速度”。
我不知道焦油坑使用样式解决方案Apache 和 mod_security将成为限制 cPanel 登录访问速率的一种手段。