导航

EST_RootKit内部测试版测试报告

Posted on 2004-12-11 22:29  charcs  阅读(612)  评论(0编辑  收藏  举报
测试环境:
Windows XP SP2,打开了自动更新服务,所以应该是大全了官方补丁的了。没有网络环境,只要是单机测试了,这个软件也用不上网络功能,呵呵!

测试工具:
不知道会做一些什么样的改变,给我的感觉就是很乱的一个软件,所以我测试的工具的也就乱了。

RegSnap 4.60:一个优秀的注册表快照工具。还可以报告系统的其他情况:Windows 的系统目录和系统的 system 子目录下文件的变化情况,包括删除、替换、增加了哪些文件;Windows 的系统配置文件 win.ini 和 system.ini 的变化情况,包括删除、修改和增加了哪些内容;自动批处理文件 autoexec.bat 是否被修改过。
MT.EXE:以前很详细的介绍过的了,这次测试主要用到的就是它了。
PsTools v2.10:其实使用MT也就够了,多一个测试对比而已
ServiWin:服务驱动管理器,不知道能不能用上,和MMC的功能差不多了。
冰刃IceSword:不说了,已经说过的了。

测试前的准备工作:
使用额regsnap扫描系统注册表和系统文件;

关于一些EST_ROOTKIT的说明:
这个东西开始也不知道是用来做什么的,在冰雪什么的指导下一步一步的做的,总算明白了是一个什么样的东西了,它可以隐藏进程和端口,呵呵,比如我打开了QQ,在进程里面会用QQ.EXE的进程信息,比如我连接网页使用了1058端口,这样使用netstat就可以看出来了,但是使用了EST_ROOTKIT就可以让它们消失。
下面的测试就是用这2个作为测试过程。

开始测试吧:
要不是看见有一点的说明信息,简直不会用了,唉,既然答应了别人,就尽力而为之吧。
在得到est_rootkit的功能之前必须创建一个服务,我创建的是islin服务

引用
E:\hack\EST_Rootkit>est_rootkit -create islin est_rootkit.sys
Create Device Driver "islin" Success

创建成功,服务为Device Driver,也就是驱动服务而非系统服务。
使用MT检测服务是否存在:
引用
E:\>mt -enumsrv drv

Num    ServiceName             DisplayName

 0    Abiosdsk                Abiosdsk
 1    abp480n5                abp480n5
【中间的渗漏】
159    wdmaud                  Microsoft WINMM WDM Audio Compatibility

Driver
160    islin                   islin
E:\>


2,启动服务,也就是使用est_rootkit的功能了,正如上面所说的,要隐藏

QQ.EXE进程,同样还是用MT查看一些相关的信息。
查看进程列表:

引用
E:\>mt -pslist

PID     Path
0       [Idle Process]
4       l[System]
468     \SystemRoot\System32\smss.exe
520     \??\C:\WINDOWS\system32\csrss.exe
544     \??\C:\WINDOWS\system32\winlogon.exe
588     C:\WINDOWS\system32\services.exe
600     C:\WINDOWS\system32\lsass.exe
744     C:\WINDOWS\system32\svchost.exe
816     C:\WINDOWS\system32\svchost.exe
1060    C:\WINDOWS\system32\spoolsv.exe
1344    C:\WINDOWS\Explorer.EXE
1424    C:\WINDOWS\system32\inetsrv\inetinfo.exe
1452    C:\WINDOWS\system32\nvsvc32.exe
2040    C:\WINDOWS\system32\ctfmon.exe
376     E:\QQ2004\QQ.exe

1996    E:\MT.exe

为了简单,我去掉了一部分内容,只保留了重要的一部分。下面的是一样的。
得到QQ.exe的进程PID是376,正如作者所说的,隐藏进程的时候需要知道PID,这

一点将在以后改正。
查看开放端口信息:

引用
E:\>mt -netstat

Num  LocalIP           Port    RemoteIP          PORT    Status
7    192.168.1.4       1058    203.117.178.18    80      Established
8    192.168.1.4       1060    61.152.246.222    80      Established


OK,得到2个开放的端口,分别连接IP地址为203.117.178.18和 61.152.246.222的网站。
下面要做的,我就是想隐藏进程QQ.EXE和端口1058,带到某些不可告人的密码,

嘻嘻。
依照说明,启动我们刚刚建立的服务islin,操作过程如下,感觉不好的地方就是没有回车响应,需要输入exit来确认自己的输入。
引用
E:\hack\EST_Rootkit>est_rootkit -start islin
Start Device Driver "islin" Success

Input need to be increased of port name
Port Name:\>1058    //需要隐藏的端口
Port Name:\>exit    //输入exit加以确认

Input need to be increased of file name
File Name:\>qq.exe    //需要隐藏的进程名
File Name:\>exit      //输入exit加以确认

Input need to be increased of process name
Process Id:\>376      //进程名的PID,从前面知道是376
Process Id:\>exit     //输入exit加以确认

Input need to be increased of module name
Module Name:\>est_rootkit.sys    //模块名称,作者已经提供的那个东西吧
Module Name:\>exit   //输入exit加以确认

E:\hack\EST_Rootkit>

需要说明的时候,我的全部步骤是安装标准来做的,暂时还没测试程序容错性能。这点在后面再测试。
接下来需要做的就是测试效果了,先是看看隐藏进程的效果:
引用
E:\>mt -pslist

PID     Path
0       [Idle Process]
4       d[System]
468     \SystemRoot\System32\smss.exe
520     \??\C:\WINDOWS\system32\csrss.exe
544     \??\C:\WINDOWS\system32\winlogon.exe
588     C:\WINDOWS\system32\services.exe
600     C:\WINDOWS\system32\lsass.exe
744     C:\WINDOWS\system32\svchost.exe
1060    C:\WINDOWS\system32\spoolsv.exe
1344    C:\WINDOWS\Explorer.EXE

呵呵,已经找不到QQ.EXE了。
再看看隐藏的端口:
引用
E:\>mt -netstat

Num  LocalIP           Port    RemoteIP          PORT    Status
7    192.168.1.4       1060    61.152.246.222    80      Established

需要说明的是,我的系统进程没做任何的改变,除了测试这个程序以外,所以,进程和端口名称应该是不会改变的,从上面的观测结果来看,使用EST_ROOTKIT确实是隐藏了进程QQ.EXE和端口1058,完成了预期的效果。
下面是使用一些比较BT的测试,来看看EST_ROOTKIT的性能。
系统命令netstat测试:
引用
E:\>netstat -A

Active Connections

 Proto  Local Address          Foreign Address        State

 TCP    ms-00b053a63e23:1060   61.152.246.222:http    ESTABLISHED
 TCP    ms-00b053a63e23:1061   61.152.246.222:http    ESTABLISHED

可以看出,刚才的1060可以在netstat中看见,而1058确不见。
FPORT测试,这个软件我没有了,也不想下载了,就不测试了。
进程名测试:
使用pstools中的pslist测试:

引用
E:\hack\pstools>pslist

PsList 1.26 - Process Information Lister
Copyright (C) 1999-2004 Mark Russinovich
Sysinternals - www.sysinternals.com

Process information for MS-00B053A63E23:

Name                Pid Pri Thd  Hnd   Priv        CPU Time    Elapsed

Time
Idle                  0   0   1    0      0     0:40:58.735    

0:00:00.000
System                4   8  60  326      0     0:00:10.214    

0:00:00.000
smss                468  11   3   20    164     0:00:00.120    

0:45:19.590
csrss               520  13  12  394   2972     0:00:13.459    

0:45:14.703
winlogon            544  13  18  444   9040     0:00:02.523    

0:45:11.849
services            588   9  16  271   4172     0:00:02.453    

0:45:09.215
lsass               600   9  17  331   6268     0:00:01.492    

0:45:09.025
svchost             744   8  16  192   5680     0:00:00.300    

0:45:05.730
svchost             816   8   9  275   3984     0:00:00.630    

0:45:05.069
svchost             876   8  42 1129  18520     0:00:04.806    

0:45:04.739
svchost             936   8   6   83   3492     0:00:00.100    

0:45:04.568
svchost            1020   8  14  198   3972     0:00:00.110    

0:45:03.417
spoolsv            1060   8  10  113   5236     0:00:00.310    

0:45:01.744
Explorer           1344   8  13  462  18140     0:00:30.904    

0:44:54.133
inetinfo           1424   8  16  245   5908     0:00:00.640    

0:44:52.892


E:\hack\pstools>

没发现QQ.EXE进程。
使用icesword测试,如图,呵呵,被发现了。
点击查看全图450) {this.resized=true; this.width=450;}" border=0 resized="true">
内核模块查看,这个使用了icesword吧,一大堆,不过还没没发现EST_ROOTKIT.sys。隐藏成功。
注册表发生的改变:
注册表查看,使用regsnop发现注册表新建了很多相关的键,部分如下:

引用
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ISLIN\0000

\DeviceDesc
值: 字符串: "islin"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ISLIN\0000

\Legacy
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\Root\LEGACY_ISLIN\0000

\Service
值: 字符串: "islin"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001

\Enum\Root\LEGACY_ISLIN\NextInstance
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\islin\
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\islin\DisplayName
值: 字符串: "islin"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\islin\Enum\
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\islin\Enum\0
值: 字符串: "Root\LEGACY_ISLIN\0000"
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\islin\Enum\Count
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001

\Services\islin\Enum\NextInstance
值: DWORD: 1 (0x1)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_ISLIN\0000

\Legacy
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_ISLIN\0000

\Service
值: 字符串: "islin"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_ISLIN\Next

Instance
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\DisplayName
值: 字符串: "islin"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\Enum\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\Enum\0
值: 字符串: "Root\LEGACY_ISLIN\0000"
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\Enum\Count
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\Enum\NextIns

tance
值: DWORD: 1 (0x1)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\islin\ErrorControl
值: DWORD: 1 (0x1)

系统文件测试,据说会增加一些系统文件,可是使用regsnap和手工搜索都没发现,可能是我搞错了吧。

接下来是容错性测试了吧,555,忘记保存了。胡乱输入了,输入一下不存在的东西:
引用
E:\hack\EST_Rootkit>est_rootkit -start islin
Start Device Driver "islin" Success

Input need to be increased of port name
Port Name:\>135
Port Name:\>exit

Input need to be increased of file name
File Name:\>islin.exe
File Name:\>exie
File Name:\>exit

Input need to be increased of process name
Process Id:\>1223
Process Id:\>exit

Input need to be increased of module name
Module Name:\>islin.sys
Module Name:\>exit

E:\hack\EST_Rootkit>

还是没有出错提示,可见,程序本身并没有检测系统的相关进程,所以在输入的时候一定得小心,这个软件的功能也就是仅仅能这样了。还有就是,输入一个要去提供的东西以后,一定要输入exit才可以退出,这个能判别的功能如果能用到其他的方面就好,例如但输入的进程或者端口或者模块名字不存在的时候出现错误提示。

好像没什么可以再测试的了,刚刚说道哪里我也忘记了电脑竟然重新启动,写了好多的了,都没保存,晕死了.
就这样算是测试完毕吧,一次重新启动把思路全部打乱了,现在也不知道做什么了。接下来要的做就是删除它了,很简单:
引用
E:\hack\EST_Rootkit>est_rootkit -stop islin
Stop Device Driver "islin" Success

E:\hack\EST_Rootkit>est_rootkit -del islin
Delete Device Driver "islin" Success

E:\hack\EST_Rootkit>

软件评价:
一个不错的软件,不过暂时还不能用于木马后门之类的东西,不过对于隐藏一些东西确很实用。虽然一些东西不能逃脱icesword的检测,但是对于一般的电脑使用者,也完全用不上这样的东西来检测系统,包括我,还有一个比较遗憾的就是,我的电脑没有安装任何的杀毒软件,因为我不喜欢那些东西,太占资源,所以无法测试被杀的效果。

在测试这个软件的时候,也有一些问题,比如有时候输入一些不存在的进程和模块时候会让软件出现死机的状态,停止响应,同事也无法删除,但是有时候却又可以。在使用icesword检测内核模块的时候,有时候却能看将est_rootkit.sys,这个是在输入错误的信息以后发现,一旦输入了正确的,也就是系统存在的端口和进程以后,这个模块将不能在icesword看见。

注册表被改得太多,我也没仔细的去看每一个键值,应该都是和系统相关的吧。正如作者说的,希望在以后的改正中能做到隐藏注册表,隐藏文件的功能应该已经实现了吧,前面已经说了,我没在系统文件中发现有异常的文件和文件夹。

关于建立系统服务的功能,没有任何的描述信息,很容易被人发现,即使是一般的使用者,如图:
点击查看全图450) {this.resized=true; this.width=450;}" border=0 resized="true">
使用的过程中还需要模块,也就是est_rootkit.sys,造成了一些使用上面不不便,希望以后能集成。
还有一个比较大的问题就是没有提示说明,害的我几次都想放弃,做了半天竟然不知道是用来做什么的,上网找了N多的关于rootkit的文章,看了还不很多的不懂,希望在制作的时候能写明这个软件的作用和目的。更多的东西,有机会的话,希望能点对点的联系,5555。也就是UDP数据传输了啊,呵呵,不过现在QQ也可以使用tcp/ip通讯了。