我可以采取什么步骤来确定我的服务器是否已被黑客入侵?

我可以采取什么步骤来确定我的服务器是否已被黑客入侵?

可能重复:
如何查明我的服务器是否受到了威胁?

最近,我收到了一条来自 .ru 域名的“无法送达的邮件已退回发件人”消息,我确信这条消息不是我或我编写的任何代码发送的。我使用 Google Apps 收发电子邮件,有问题的服务器是云托管提供商上的原生 Ubuntu 10.04.1 服务器。我正在寻找一份检查清单,列出可以采取哪些措施来确定我的服务器是否已被入侵。到目前为止,我已经通过开放中继测试(它不是开放中继),并运行netstat -anps aux确定只有我想要监听端口的程序正在运行(SSH、Tomcat、MySQL、Postfix(由于我的云服务提供商的工作方式,我认为我无法禁用 Avahi))。并且我已经运行cat /etc/passwd以确保没有任何未知用户。我还应该做什么吗?

答案1

您收到的邮件很可能是“反向散射”,即使用您的电子邮件地址发送垃圾邮件并被 .ru SMTP 服务器退回的结果。不一定是因为您的服务器被入侵并且电子邮件从该服务器发送。

答案2

运行诸如 wireshark 之类的嗅探器并查找可疑的连接,但我不认为您受到了损害。

很可能有人只是将您的电子邮件地址冒充为“发件人”。这样做很容易。当他们发送垃圾邮件时,任何被拒绝的邮件都会返回给您(也称为反向散射)。许多电子邮件服务器会在 NDR(退回)中返回带有完整标题的电子邮件,因此您可以确定是否是这种情况。

如果您确实发现可疑邮件来自不属于您的服务器,那么我建议您在电子邮件中继中添加发件人身份验证。在这种情况下,您需要您的记录参考 google 的 spf 记录。

http://www.google.com/support/a/bin/answer.py?answer=178723

答案3

第一步是查看是否有人从您的服务器发送垃圾邮件。

首先查看您的邮件日志!我习惯使用 exim,但我确信步骤是一样的。查看您的邮件队列,看看是否有任何邮件排队。大量的垃圾邮件总是会让您几天都无法投递,因为垃圾邮件列表总是有无效条目。

还解析邮件日志。对于 exim,我使用 grep '<=' /var/log/exim_mainlog | awk '{print $5}' | grep \@ | sort | uniq -c | sort -nk1 来查看不同人发送了多少条消息。

最后,检查退回邮件的标头,看看邮件是否确实来自您的某台机器/实例。您可能只需要 SPF 记录。

现在您很可能已经清楚了解您的服务器是否正在到处丢失邮件。

如果您发现垃圾邮件,请尝试查看发送垃圾邮件的邮件用户。更改该用户的密码。通常随机垃圾邮件来自 php 脚本,php 通常在邮件完整标题中包含 X-Script-Sentby:(或其他内容)标题,您可以使用它来查找负责的脚本。

大多数情况下,你会发现一些随机的 php 脚本会随处发送邮件。偶尔我会看到有人通过 horde(这有点难以追踪)或 outlook 或使用其他只需要密码的客户端发送垃圾邮件。

如果邮件来自你的服务器,而你不确定从哪里来,你也可以在 php.ini 中输入 disable_function=mail

被 root 是最不可能的情况,更有可能的是某个随机的 php 应用程序被黑客入侵。如果您确实被 root 了,请尝试 rkhunter 或其他程序,黑客也倾向于使用奇怪的脚本名称,并且黑客留下的 php 脚本往往是 eval(base64_decode(gunzip( 压缩的,因此如果您 grep -r eval $docroot,通常可以找到恶意脚本。最后,clamav 在拾取恶意 php 黑客脚本方面还不错。

答案4

如果无法物理访问系统或系统周围的基础设施,那么您就没有太多选择。第一个假设是,受感染系统上的任何工具也可能受到感染。如今,受攻击的系统通常会安装 root 工具包或远程控制软件(我已经离开这个领域一段时间了),这将使识别变得更加困难,并且通常会破坏常见的操作系统实用程序和命令。

1)使用外部实用程序对系统进行端口扫描2)您可以尝试移动一些静态链接的二进制文件(ps、netstat 等的附加副本)并使用它们来验证端口、帐户和进程(静态链接意味着它不会使用二进制文件外部的任何东西(例如来自系统的共享库)。3
)您是否考虑过有人可能使用指向您的返回地址发送了一条消息?(反向散射……有一个术语!)

相关内容