客户网站上的恶意软件 - 有什么想法?

6
我们最近接到一位客户的电话,抱怨他们的网站底部出现了一些“奇怪的代码”。我们检查了源代码,并发现大约800字节的恶意javascript代码被添加到了templates/master文件中,在</html>标签之后。我不会发布该代码,因为它看起来特别恶心。
据我所知,除非有人直接访问服务器和/或FTP登录详细信息,否则无法以任何方式编辑此文件。实际文件本身已被修改,因此排除了任何SQL攻击。除了人们亲自获得凭据并手动修改此文件外,是否还有其他合理的解释?是否有其他人遇到过类似的情况?
7个回答

7
我会检查的地方包括:
  • 文件修改时间(以查看何时发生)
  • HTTP服务器日志以查找异常的GET参数(例如,?foo=exec('...')
  • FTP服务器日志
  • SSH日志(类似情况曾经发生在我身上,是因为有人泄露了他们的密码)
此外,我会立即限制所有网站文件的写访问权限,以防止相同攻击(当然,向量仍然开放,但总比没有好)。

3
如果攻击者没有其他文件访问权限,很可能代码中存在漏洞,允许用户执行任意代码。使用passthru()、exec()和eval()是常见的问题。如果同一台机器上运行了FTP,那么通常会成为一个强大的攻击向量。
我不确定是否可以绝对排除SQL攻击(尤其是与上述漏洞结合在一起的反射攻击),但也不清楚是否会是这种情况。
回答您的问题,攻击可能是自动化的或个人针对性的,难以根据给出的详细程度进行判断。正如其他人所说,尽可能更换密码,限制对服务器的访问,然后开始检查日志以确定何处出错。这将比拆解应用程序本身更成功。

3
另一种常见的情况是,运行FTP客户端的计算机已被入侵,凭据已被嗅探。 - Quentin
我之所以说不使用NoSQL是因为物理文件已被修改。这需要攻击者猜测我们模板文件的位置(尽管并不特别难)。这可能是某种自动化攻击,还是更有可能是个人针对性攻击? - Jeriko

3
你没有具体说明,但如果你是的话,不应该在生产服务器上使用FTP,因为它本质上是不安全的(除其他事项外,它传输凭据的明文,使你容易成为嗅探攻击的目标)。始终使用SFTP。
如果你正在使用普通FTP,则最有可能的攻击向量是这个,特别是因为修改文件是唯一发生的事情。如果你的机器已经完全被入侵,我会期望看到更多的事情发生。

1
几乎可以确定凭据已被泄露,允许某人远程更改代码。服务器是否位于现场?

不,它距离我们大约50公里。这发生在该客户域的三个子域中的两个上。我想我的主要关注点是是否更改FTP密码,还是彻底拆除网站进行测试。 - Jeriko
1
为什么不两者兼顾呢?尽可能更改密码和限制访问,然后开始研究发生了什么事情。 - David Wolever
如果FTP曾被入侵过,那么更改密码很可能对黑客造成的影响不会超过一点点麻烦。请查看我的回答,删除FTP并使用SFTP。 - Cruachan

1

这是我的看法。 使用FTP程序?你的ftp日志文件存储密码、路径等被抓取。密码被解码。

尽量不要在FTP客户端中存储FTP密码。或者像上面那样,使用SFTP。 我们遇到了类似的问题,似乎来自一台计算机的一组FTP登录。此外,由于这台计算机之前有许多奇怪的问题。Javascript无法正常工作,会话超时或被简单地删除。这对我来说表明这台计算机上有什么东西。


0
请务必查找并删除网站中的任何可疑文件。如果黑客已经获得了FTP访问权限,很可能他们在某个地方留下了后门脚本,这将使他们能够通过特定的URL上传/修改您网站上的文件,即使您更改了FTP密码或切换到使用SFTP也无济于事。
如果您正在使用PHP,请尝试运行此处找到的脚本。

0
为了检测现有的恶意代码,我建议您在服务器上使用一个好的反恶意软件扫描引擎来检测网站文件中的恶意代码。很多时候,服务器并不容易受到攻击,但是网站却很容易受到攻击!为了防止这种情况发生,使用一个Web应用程序防火墙,它可以检查每个请求以检测和阻止攻击尝试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接