Apache error_log 显示哪个命令输出

Apache error_log 显示哪个命令输出

Apache 的 error_log 显示如下行:

--- snip ---
which: no ruby in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no locate in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no suidperl in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no get in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no fetch in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no links in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no lynx in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no lwp-mirror in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no lwp-download in (/sbin:/usr/sbin:/bin:/usr/bin)
which: no kav in (/sbin:/usr/sbin:/bin:/usr/bin)
--- end ---

该架构如下:

互联网 -> 负载均衡器 -> Varnish -> Apache

负载均衡器后面有多个 Web 服务器,我已经使用 rkhunter 检查了其中至少一个(关联),没有发现任何可疑的东西。

版本:

  • CentOS 5.7
  • Varnish 2.1.5
  • Apache 2.2.3
  • PHP 5.2.17

这是否意味着有人通过 Apache 执行了该命令?怎么会这样?

太感谢了。

答案1

很明显,您已被黑客入侵。黑客可能会对上述命令感兴趣,因为他们发现了一个漏洞,可以让他们以 apache 用户身份执行命令(可能是通过 Web 应用程序漏洞)。例如,links 和 lynx 会让攻击者下载其他程序,lwp-* 也是如此。合法的 Web 应用程序永远不会执行这些命令,因此一定是攻击者执行的。

此主题对于具有类似签名的攻击——这实际上是一种权限提升。

第一件事是让系统离线 - 这是一个权衡的决定,但由于您不知道系统的所有权是否完整,所以这是安全的做法。

您应该尝试找出被黑客入侵的时间 - 例如将 4 周前的备份恢复到单独的系统上,并与昨晚的备份进行比较。这应该是整个机器的备份,因为攻击者可能已经获得 root 权限。

一旦知道了被黑客入侵的时间,您就可以从攻击前进行的备份中进行恢复(但仍保持系统离线,以便无法再次利用)。漏洞仍然存在,因此如果系统在线,攻击者可以再次进入 - 因此您还需要快速找到并关闭漏洞 - 昨晚的完整机器备份很重要,这样您就可以找到他们是如何进入的。

我该如何处理受到感染的服务器?以获得关于如何从黑客攻击中恢复的更完整的建议。

祝你好运。

相关内容