来源:远方网络 | 2005-8-8 15:40:52 | (有2230人读过)
哇!有黑客![1]- -############################################################
异象:昨夜西风凋碧树
序幕: 話説那日elly與衆人閒談完"黑客趨勢(趣事)"之後,獨自下樓喝茶去了。 鳳簫 聲動,玉壺光轉,正恍惚閒,忽聞手機鈴聲。原是尋到一服務器,正在閒置,可 為所用。於是登錄上去,稍做配置...
PCAnywhere正在登录。
方世玉的老妈的师兄经常说,安全第一,安全第一。上去之后,当然是先看看服 务器的服务配置。运行"Services.msc"打开服务管理器,一眼看去,不对啊... 这里有几位新住客怎么恁得陌生?
============================================================Dcom Services [描述: 空] 已启动 自动 LocalSystemSecure Port Server [同上]Windows Event Logger [同上]============================================================
用小脑也知道第一位肯定是用假身份证登录的!查看详细信息:
============================================================服务名称: dcomsvc显示名称: DCOM Services描述: [空]可执行文件路径: C:\WINNT\system32\Dcomsvc.exe启动类型: 自动============================================================
C:\WINNT\system32 elly在那儿住了那么多年,就没见到过这号兄弟。elly 开始意识到了问题的严重性:系统很可能已经被人入侵了,并且安装了后门!
先看一下当前服务的状态:
============================================================C:\WINNT\cmd>sclist ...running dcomsvc 34567890 DCOM Services running Server Administrator Secure Port Server running Windows Event Logger Windows Event Logger ...============================================================
sclist 列出了当前所有正在运行的Windows系统服务。从服务列表中,我们 最简单直接的先发现了上面三个异常服务。至于怎么发现的么... 第一,他们都没有服务说明(或正确的服务说明),代表他们不是系统自带的服务; 第二,更主要是根据经验啦,一个熟练的Windows系统管理员,对系统中的各项服 务情况是应该做到心中有数洞若观火的;手边至少应该准备好两份文档,第一是 Windows自带的服务列表、功能和状态,第二是每台服务器安装完成之后初始化镜 像状态下的服务列表。
再使用sc query看一下更详细的服务信息:
============================================================SERVICE_NAME: dcomsvc34567890DISPLAY_NAME: DCOM Services(null) TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0============================================================SERVICE_NAME: Windows Event LoggerDISPLAY_NAME: Windows Event Logger(null) TYPE : 10 WIN32_OWN_PROCESS STATE : 4 RUNNING (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0============================================================SERVICE_NAME: CCProxyDISPLAY_NAME: Dell OpenManage (null) TYPE : 110 WIN32_OWN_PROCESS INTERACTIVE_PROCESS STATE : 1 STOPPED (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 1077 (0x435) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x0============================================================
============================================================C:\WINNT\cmd>psservice config dcomsvc Error opening dcomsvc on \\CXL: 指定的服务并未以已安装的服务存在。 ============================================================C:\WINNT\cmd>psservice config "Windows Event Logger" SERVICE_NAME: Windows Event Logger (null) TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 0 IGNORE BINARY_PATH_NAMEE : C:\WINNT\system32\Termsrv.exe LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Windows Event Logger DEPENDENCIES : SERVICE_START_NAME: LocalSystem============================================================C:\WINNT\cmd>psservice config ccproxy SERVICE_NAME: ccproxy (null) TYPE : 110 WIN32_OWN_PROCESS INTERACTIVE_PROCESS START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : "C:\WINNT\AppPatch\app\openmange.exe" -service LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Dell OpenManage DEPENDENCIES : SERVICE_START_NAME: LocalSystem ============================================================
现在,三个服务露出狐狸尾巴来了,第一个程序位于C:\WINNT\system32\Dcomsvc.exe 经过分析是一个sock5代理服务器skserver v1.0,经常被入侵者安装用来作为攻 击其它机器的跳板;第二个程序位于C:\WINNT\system32\Termsrv.exe,它其实 是-- Windows 2000的终端服务程器序,可是它为什么会是这个名字呢?第三个程 序是CCProxy 6.0,一个多功能的应用代理服务器,很显然它也不是管理员正常安装 的。
很明显,现在服务器已经被入侵过了,而且也留下了一个后门和两个用作跳板或其它 非法用途的代理服务器,那么是不是还存在其它没发现的东西呢?请待下回分解...
本章结论: 1.本主机已被渗透入侵; 2.本主机已被安装如下后门: C:\WINNT\system32\Dcomsvc.exe(skserver 1.0) C:\WINNT\system32\Termsrv.exe(TerminalServer) C:\WINNT\AppPatch\app\openmange.exe(CCProxy 6.0) 所要做的事: 所要做的事,是指在每个阶段,我们正常情况下应急处理所需要进行的工作。 在本节中,主要是发现异常状况。 在Windows 2000系统中,当系统可能被入侵时,会有一些异常情况发生,系统管 理员需要有足够的警觉,并且当异常事件发生时迅速定位原因。主要有以下几种情况: 1. 进程异常 2. 服务异常 3. 资源异常 4. 帐户异常 5. 日志异常 6. 网络异常
本章遗留问题: 1. TerminalServer为什么会变了脸? 2. 系统中按现在的情况还可能存在哪些后门途径? 3. 为什么查看Dcomsrv服务信息失败?
正确的途径: 根据上面可能发生的情况,进行异常检查时,可以有一些常用和可选的手段来进 行检查。 1. 进程检查。 任务管理器: 这是Windows 2000系列系统中最常用的进程管理方法了。但 是存在一些缺陷。它也必须运行在图形界面下,而可能某些时候 我们只能在命令行下工作,比如现在--当我只有56k小猫上网的 时候。 ps系列工具: 这是sysinternal公司出品的一系列命令行工具,其中ps和 pslist就可以在命令行下列出系统中的所有进程;在windows -2000 ResourceKit中,也有一个类似的命令,tslist。而 ps系列命令最强大的功能就是不仅能本地执行,还可以通过IPC$ 匿名共享连接管道进行远程执行。 Windows Reskit系列工具: Windows NT/2000 ResourceKit中包含了一 系列非常强大的工具,比如tslist和ptree。其中ptree也是令 一个强大的工具,包含图形界面和明令行两个版本,能够以树状 格式列出进程树和依赖关系,同样它也可以连接远程服务器进行 管理。缺点是--在远程服务器上,你必须先安装ptree服务。
2. 服务检查: 服务管理器: 同样,Windows2000系统中内置了一个服务管理器,它只能运行 在图形界面下。可以在[控制面板]->[管理工具]->[服务]中找到 它,或者通过命令行快捷方式"services.msc"来打开。它能够 查看、停止、启动服务,并且能够有限度的修改一些服务参数。 net.exe: net是Windows 2000系列中内置的一个非常强大的管理命令, 包括服务管理的功能。net start用来查看和启动服务;而 net stop则用来停止服务。不带参数的net start命令将列出 当前系统上正在运行的所有服务。 它最大的缺点就是在服务管理方面功能比较简单,例如无法得知 系统中安装的所有服务,同样也需要管理员对Win2000的服务本身 非常熟悉。 sc.exe: sc最早也是WinNT ResKit中出现的一个更强大的服务管理工具。 在Windows 2003中它已经成为一个内置命令。它可以对Windows 服务做几乎所有的操作:
sc query 查询服务状态,不带参数则列出所有服务; sc config 配置服务参数; sc start 启动一个服务; sc stop 停止一个服务; sc pause 暂停服务; sc delete 删除服务; sc create 创建服务; 同样sc也可以直接在远程机器上连接和执行。使用: sc [hostname] [command]的格式连接远程主机。
psservice: psservice.exe是sysinternal ps系列命令中的一个,它的功 能与参数都基本和sc一致,具体差别看帮助。
4. 帐户异常: 计算机管理: 计算机管理是Windows系统内置的系统管理工具,我们可以在这里 查看到系统用户信息。 net.exe: net user命令可以在命令行模式下管理系统用户帐号和口令。
net user 不带参数则列出所有用户帐号; net user [username] 查看某用户详细信息; net user [username] [password] 修改用户口令; net user [username] /add 添加用户; net user [username] /delete 删除用户; net user ... ... /domain 在域模式下执行。
注意,当系统中发现陌生的用户名,或正常用户帐号口令被修改、滥用等事件都 需要引起注意。
5. 日志异常 当系统各项服务(系统日志、Web日志、ftp日志等)出现异常日志信息时需要注意。 使用系统命令eventvwr.msc可以打开日志查看器; iis日志默认在%SYSTEMROOT%\system32\LogFiles目录下。
3/6. 系统资源和网络 当系统中出现大量的CPU、内存、磁盘空间、网络带宽异常时,可以用各项手段 检测异常原因。
本章Tips: 1. sc命令还有一个姐妹sclist,可以像pslist一样简单的列出所有服务列表。 2. 当使用net start/stop命令管理服务时,可以使用"引号"把包含空格的服务名 包括起来。 3. Windows 2000中服务名字有两种形式,分别是 服务名 (缩写短名)和 显示 服务名(带空格的长名)。在大多数情况下两个名字都是有效的,因而也各有优 缺点,长名易记,但是难写;短名易写,但是难记。可以使用sc命令查询服务 名字对照。 sc GetDisplayName 查询DisplayName(长名) sc GetKeyName 查询KeyName(短名) 当使用包含空格的长名时,有可能shell不能正确解析,可以使用""引号引住。 4. Windows 系列的各项服务都有依赖关系,比如RPC Server就是很多服务的前 置条件,虽已停止服务可能会造成无法预料的后果,可以使用sc命令查看命令 依赖关系。 sc EnumDepend [服务名]查看服务依赖关系 或 psservice depend [服务名] 5. 最终的服务管理工具是...注册表编辑器regedit.exe。系统中所有服务在注 册表中都存在一个映射数据库,通过修改对应的值就可以查看和修改对应参数。 例如IIS WWW服务
============================================================ C:\>reg query HKLM\SYSTEM\CurrentControlSet\Services\W3SVC Listing of [SYSTEM\CurrentControlSet\Services\\W3SVC] REG_DWORD Type 32 REG_DWORD Start 2 REG_DWORD ErrorControl 1 EXPAND_SZ ImagePath C:\WINNT\system32\inetsrv\inetinfo.exe REG_SZ DisplayName World Wide Web Publishing Service MULTI_SZ DependOnService IISADMIN; MULTI_SZ DependOnGroup REG_SZ ObjectName LocalSystem REG_SZ Description [ASP] [Parameters] [Performance] [Security] [Enum]============================================================
|