阻止Apache执行shell脚本

阻止Apache执行shell脚本

我发现一些 shell 脚本被上传到 Wordpress 插件目录(该插件很有信誉)后由 apache 执行。

顶部-c

25821 www-data  20   0 99108 1268  996 S  779  0.1 105:27.72 ../mine.32 --url=http://vibehacks.net/ --userpass=HI:FRIEND

ps -aufx | grep mine.32

www-data 25819  0.0  0.0   2236   540 ?        S    22:01   0:00  |   \_ sh -c nohup ../mine.64 --url=http://vibehacks.net/ --userpass=HI:FRIEND >./mine.log 2>&1; nohup ../mine.32 --url=http://vibehacks.net/ --userpass=HI:FRIEND >./mine.log 2>&1
www-data 25821  490  0.1  99108  1268 ?        Sl   22:01 120:14  |       \_ ../mine.32 --url=http://vibehacks.net/ --userpass=HI:FRIEND

答案1

尽管您没有说出来,但我认为您已经被黑客入侵并且正在寻找方法防止这种情况再次发生。

如果您将处理程序设置为将目录中的所有内容都视为 CGI,那么我认为您无法控制 apache 将以这种方式执行哪种类型的文件。如果您更改处理程序,以便只有具有特定扩展类型的文件才会被解释为 CGI 可执行文件,攻击者只需更改文件名即可。Linux 将以几乎相同的方式解释任何可执行文件,因此只要它具有 ELF 标头或顶部的 shebang,或者可执行,它的名称实际上并不重要(apache 也不需要关心)。因此,阻止 apache 运行 shell 脚本并不容易(我认为实际上不可能)。此外,真正的问题是攻击者能够将任意文件放入您的机器上的受信任位置。

我建议你先确定这是怎么发生的。使用 wordpress 插件,可能会有几种方式。例如,它肯定是使用被盗的 FTP 帐户或 SSH 帐户上传的。它也可能是通过 rootkit 上传的(这就是我重建任何已弹出的框的原因)。但是,由于它是在 wordpress 中,最有可能的情况要荒谬得多。

当 wordpress 被允许更新自身及其插件,并使用其 Web UI 安装内容时,您就有可能遭遇这种情况。如果有人访问了特权 wordpress 帐户,或欺骗了可从中下载此内容的服务器,或只是将其有效负载添加到插件并等待您更新,那么您就被控制了。尽管 wordpress 似乎喜欢此功能,但我和我认识的信息安全领域的每个人都强烈建议禁用它;apache 永远不应该对其自己的 webroot 具有写访问权限,对于 CGI 位置尤其如此。

答案2

如果你在“Wordpress 插件目录”中找到了文件/脚本,那么你应该从 ftp 日志或系统日志中 grep 该文件/脚本,找到该文件/脚本的 IP 地址和上传的用户身份验证。

然后更改该用户的密码并禁用这些脚本。您可以通过更改权限 000 和 ownship root 来禁用这些脚本。

相关内容