Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1127747
  • 博文数量: 414
  • 博客积分: 10030
  • 博客等级: 上将
  • 技术积分: 4440
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-05 21:42
文章分类

全部博文(414)

文章存档

2011年(1)

2009年(1)

2008年(412)

我的朋友

分类: WINDOWS

2008-10-11 17:13:20

解析RootKit与反RootKit
来源:IT专家网 作者: 发布时间:2008-07-29

Rootkit是一个或者多个用于隐藏、控制一台计算机的工具包,该技术被越来越多地应用于一些恶意软件中。在基于Windows的系统中Rootkit更多地用于隐藏程序或进程,系统被注入Rootkit后就可以在不为用户察觉的情况下进行某些操作。因此,其隐蔽性极高,危害也极大。下面笔者结合实例解析RootKit及其反RooKit技术。

  实验环境:Windows XP SP2

  工具:

  Hacker defende(RootKit工具)

  RootKit Hook Analyzer(RootKit分析工具)

  IceSword(冰刃)

  一、RootKit

  笔者以用RootKit进行管理员高级隐藏为例,解析RootKit技术。超级隐藏的管理员用户。

  1、创建帐户

  在命令提示符(cmd.exe)下输入如下命令:

  net user gslw$ test168 /add

  通过上面的两行命令建立了一个用户名为gslw$,密码为test168的普通用户。为了达到初步的隐藏我们在用户名的后面加了“$”号,这样在命令提示符下通过net user是看不到该用户的,当然在“本地用户和组”及其注册表的“SAM”项下还可以看到。(图1)

  创建用户名

  2、用户提权

  下面我们通过注册表对gslw$用户进程提权,使其成为一个比较隐蔽(在命令行和“本地用户和组”中看不到)的管理员用户。

  第一步:打开注册表编辑器,定位到HKEY_LOCAL_MACHINESAMSAM项。由于默认情况下管理员组对SAM项是没有操作权限的, 因此我们要赋权。右键点击该键值选择“权限”,然后添加“administrators”组,赋予其“完全控制”权限,最后刷新注册表,就能够进入SAM 项下的相关键值了。

  第二步:定位到注册表HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers项,点击“000001F4”

  注册表项,双击其右侧的“F”键值,复制其值,然后点击“00000404”注册表项(该项不一定相同),双击其右侧的“F”键值,用刚才复制键值进行替换其值。(图2)

  用户提权

  第三步:分别导出gslw$、00000404注册表项为1.reg和2.reg。在命令行下输入命令"net user gslw$ /del"删除gslw$用户,然后分别双击1.reg和2.reg导入注册表,最后取消administrators对SAM注册表项的访问权限。

  这样就把gslw$用户提升为管理员,并且该用户非常隐蔽,除了注册表在命令下及“本地用户和组”是看不到的。这样的隐藏的超级管理员用户是入 侵者经常使用的,对于一个水平不是很高的管理员这样的用户他是很难发现的。这样的用户他不属于任何组,但却有管理员权限,是可以进行登录的。

  3、高级隐藏用户

  综上所述,我们创建的gslw$用户虽然比较隐蔽,但是通过注册表可以看见。下面我们利用RootKit工具进行高级隐藏,即在注册表中隐藏该用户。

  在Hacker defende工具包中也很多工具,我们隐藏注册表键值只需其中的两个文件,hxdef100.exe和

  hxdef100.ini。其中hxdef100.ini是配置文件,hxdef100.exe是程序文件。打开hxdef100.ini文件 定位到[Hidden RegKeys]项下,添加我们要隐藏的注册表键值gslw$和00000404即用户在注册表的项然后保存退出。(图3)

  高级隐藏用户

  然后双击运行hxdef100.exe,可以看到gslw$用户在注册表中的键值“消失”了,同时这两个文件也“不见”了。这样我们就利用RootKit实现了高级管理员用户的彻底隐藏,管理员是无从知晓在系统中存在一个管理员用户的。(图4)

  高级隐藏用户

  二、反RootKit

  那是否意味着我们就无能为力呢?俗话说“邪不胜正”,与RootKit就有反RootKit。我们就以该管理员为例进行演示。

  1、RootKit Hook Analyzer驱动分析

  RootKit Hook Analyzer是一款Rookit分析查询工具,利用它可以扫描分析出系统中存在的RooKit程序。该工具是英文程序,安装并运行点击其界面中下方的 “Analyze”按钮就可以进行扫描分析,列出系统中的RooKit程序,勾选“Show hooked services only”就可以进行筛选值列出RooKit services。(图5)

  RootKit Hook Analyzer驱动分析

  2、IceSword进程查看

  运行IceSword,点击“进程”按钮,就可以列出当前系统中的进程,其中红色显示的是可疑进程。我们可以看到hxdef100.exe进程 赫然其中,这真是我们刚才运行的RootKit。在该进程上点击右键选择“结束”进程。这时hxdef100.exe和hxdef100.ini文件显身 了,再刷新并查看注册表,刚才消失的两个键值有重现了。(图6)

  IceSword进程查看

  3、专业工具查杀

  利用IceSword进行RooKit的分析和并结束其进程不失为反RooKit的一种方法,但有的时候冰刃并不能分析出RootKit,因此我们就要比较专业的工具。比如卡巴斯基、超级巡警等都是不错的选择。(图7)

  专业工具查杀

  总结:本文以利用RootKit工具进行帐户的隐藏为例解析了其基本的运行机制,并结合上面的实例演示了反RootKit的方法。当然,RootKit的形式是非常多样的,但是其原理和防范措施都大同小异,希望这篇文章对大家防范RootKit有所帮助。

阅读(980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~