如何做一个服务器黑客验尸

我有一台安装有IIS6,SQL Server 2005,MySQL 5和PHP 4.3的Windows Server 2003 SP2计算机。 这不是一台生产机器,而是通过一个域名向世界展示。 机器上启用了远程桌面,并且两个pipe理帐户都处于活动状态。

今天早上,我发现机器已经注销,用一个不知名的用户名仍然在login文本框中。 经过进一步的调查,我发现已经创build了两个Windows用户,反病毒已经被卸载,一些.exe文件已经被放入C:驱动器。

我想知道的是,我应该采取哪些措施来确保这种情况不会再发生,我应该把重点放在确定进入的途径上。 我已经检查netstat -a来查看哪些端口是开放的,没有什么奇怪的。 我在MySQL的数据文件夹中find了未知的文件,我想这可能是入口点,但我不确定。

我真的很感谢这些步骤来进行一个服务器黑客的好后验,以便我可以在将来避免这种情况。

事后调查回顾

经过一番调查,我想我已经知道发生了什么事。 首先,机器在08年8月到09年10月期间没有上网。 在此期间,发现了一个安全漏洞,即MS08-067漏洞 。 “这是一个远程执行代码漏洞,成功利用此漏洞的攻击者可以完全控制受影响的系统,在基于Microsoft Windows 2000,Windows XP和Windows Server 2003的系统上,攻击者可以利用这个漏洞无法通过RPCvalidation,而且可能运行任意代码。“ 2008年10月发布的KB958644安全更新解决了这个问题。

由于该机器当时处于脱机状态而错过了此更新,因此我认为这个漏洞在09年10月重新上线后不久就被利用了。 我发现引用了一个名为bycnboy.exe的程序,这个程序被描述为后门程序 ,然后在受感染的系统上造成很大的破坏。 机器在线后不久,自动更新安装了补丁,closures了远程控制系统的能力。 因为后门现在已经closures了,我相信攻击者在机器上创build了物理账户,并且能够使用这台机器一个星期,直到我注意到发生了什么事情。

在恶意代码恶意代码,.exes和.dll,删除自己的托pipe网站和用户帐户后,机器现在再次处于工作状态。 在不久的将来,我将监控系统并审查服务器日志,以确定是否重复发生事件。

感谢您提供的信息和步骤。

进行验尸本身就是一种黑色艺术。 每次都有点不同,因为没有两个入侵是相同的。 考虑到这一点,我build议的stream程的基本概述如下,针对您的情况提供了一些具体说明:

  1. 物理断开机器与networking的连接。 (真的,现在就做)
  2. 可选步骤:制作硬盘的二进制映像副本以供将来使用。
  3. 将所有日志文件,有价值的数据等复制到可移动硬盘上
    • 也可以复制你find的任何“黑客工具”
  4. 开始实际的验尸。 在你的情况下:
    • 请注意任何新的或缺less的用户帐户。 看看他们的家庭文件夹是否有任何“有趣”的内容。
    • 请注意任何新的或丢失的程序/二进制文件/数据文件。
    • 首先检查MySQL日志 – 寻找任何“exception”
    • 检查其余的服务器日志。 查看是否可以find正在创build的新用户,他们login的地址等
    • 查找数据损坏或盗窃的证据
  5. 当你发现问题的原因时,请注意如何防止它再次发生。
  6. 擦干净服务器:格式化并重新安装所有东西,恢复您的数据并用#5的笔记插入原始的洞。

如果您打算执法,您通常执行第2步。 您执行步骤3,以便您可以在服务器重build之后查看信息,而无需读取您在步骤2中创build的映像副本。

步骤4得到的详细程度取决于您的目标:只是堵住这个洞是另一种调查,而不是跟踪谁偷走了一些有价值的数据:)

第6步是恕我直言关键。 你不会“修复”一个受到威胁的主机:你擦了它,从一个已知的好状态重新开始。 这可以确保你不会错过盒子上的一些讨厌的金块作为定时炸弹。

这绝不是一个完整的事后大纲。 我将其标记为社区维基,因为我一直在寻求改进的过程 – 我不经常使用它:-)