我有一台装有 IIS6、SQL Server 2005、MySQL 5 和 PHP 4.3 的 Windows Server 2003 SP2 机器。这不是生产机器,而是通过域名向世界公开的。机器上启用了远程桌面,并且有两个管理帐户在其上处于活动状态。
今天早上我发现机器已经注销,登录文本框中仍然有一个未知的用户名。经过进一步调查,我发现已经创建了两个 Windows 用户,已卸载防病毒软件,并且少量 .exe 文件已放入 C: 驱动器。
我想知道的是,我应该采取哪些步骤来确保这种情况不会再次发生,以及我应该关注哪些领域来确定进入途径。我已经检查了 netstat -a 以查看哪些端口是打开的,那里没有任何奇怪的地方。我确实在 MySQL 的数据文件夹中找到了未知文件,我认为这可能是入口点,但我不确定。
我非常感谢对服务器黑客进行良好的事后分析的步骤,以便我将来可以避免这种情况。
调查后审查
经过一番调查,我想我发现了发生了什么。首先,机器在 08 年 8 月到 09 年 10 月的时间范围内没有在线。在此期间发现了一个安全漏洞,即MS08-067 漏洞。“这是一个远程代码执行漏洞。成功利用此漏洞的攻击者可以远程完全控制受影响的系统。在基于 Microsoft Windows 2000、基于 Windows XP 和基于 Windows Server 2003 的系统上,攻击者可以利用这个漏洞通过 RPC 没有身份验证,可以运行任意代码。” 2008 年 10 月发布的 KB958644 安全更新修复了此漏洞。
由于当时机器处于离线状态,错过了这次更新,我相信这个漏洞在 09 年 10 月机器重新上线后不久就被利用了。我发现了对 bycnboy.exe 程序的引用,该程序被描述为后门程序,然后会对受感染的系统造成严重破坏。机器上线后不久,自动更新安装了补丁,关闭了远程控制系统的能力。由于后门现已关闭,我相信攻击者随后在机器上创建了物理帐户,并且能够再使用该机器一周,直到我注意到发生了什么。
在积极搜索恶意代码、.exes和.dlls,删除自托管网站和用户帐户后,机器现在再次处于工作状态。在不久的将来,我将监控系统并查看服务器日志,以确定事件是否重复发生。
感谢您提供的信息和步骤。
进行验尸本身就是一门黑色艺术。每次都有些不同,因为实际上没有两次闯入是相同的。考虑到这一点,下面是我推荐的流程的基本概述,并针对您的情况提供了一些具体说明:
如果您要涉及执法,您通常会执行第 2 步。您执行第 3 步,这样您就可以在服务器重建后查看信息,而无需阅读您在第 2 步中创建的映像副本。
第 4 步的详细程度取决于您的目标:与追查谁窃取了一些有价值的数据相比,堵住漏洞是一种不同的调查 :)
恕我直言,第 6 步至关重要。您不会“修复”受感染的主机:您擦除它并从已知的良好状态重新开始。这样可以确保您不会错过盒子上留下的一些讨厌的金块作为定时炸弹。
这绝不是一个完整的尸检大纲。我将其标记为社区 wiki,因为我一直在寻找对流程的改进——我不经常使用它:-)