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)