一、Novell NetWare 3.X的安全问题
我们使用的Novell NetWare 3.12网络操作系统。在一个机房中连接有近百台微机工作站。每学期在网络服务器上开有学生账户近3000个。
服务器置于机房中,如果某个时候机房值班人员不在机房,上机者就可能会使用服务器控制台。这时控制台的键盘如果没有锁定,那么服务器就可能遇到危险。因为在控制台上使用者可以进入NetWare 内嵌的386DEBUG调试程序(按下键盘上的左SHIFT、右SHIFT、ALT、ESC四键就可进入调试程序)。用该调试程序,使用者可以盗改超级管理员口令,使真正的超级管理员不能管理系统,这样的后果是相当严重的。因此在服务器控制台上,只要键盘没有锁定,任何人都可以在控制台上进入386DEBUG程序。
为了安全起见,我们有必要限制和取消在控制台上使用386 DEBUG程序。在加上锁定键盘,安全系数就更高了。
Novell迷网站內容,版权所有
二、禁止控制台上使用386DEBUG程序
为了取消386DEBUG程序,首先要找准进入386DEBUG程序的入口点,要找准程序的入口点,没有现成的资料可查。只有在386DEBUG程序下分析Server.exe程序(386DEBUG程序是内嵌在Server.exe 文件中的)。由于Server.exe文件很大,要分析它就要事先考虑几种可以进行分析的着手点。经过笔者考虑,应从两方面入手:(1)找键盘中断入口;(2)找读取键盘的程序入口点。下面就介绍笔者分析程序的过程。
(1)找键盘中断入口
当执行Server.exe程序后,系统程序在保护方式下运行。操作系统重新定义了所有中断向量。在386DEBUG下反汇编出来的程序与实模式下的程序有区别,因此要准确获取NetWare 3.12和4.11的中断向量比较困难。
(2)找读取键盘的程序入口
既然读键盘的中断入口不容易找到,那么我们可以通过 IN Al,60H(代码E4 60)指令来找读键盘的程序(程序要处理键盘就离不开这条读键盘口的指令)。并由此找到处理键盘码的程序。用查找命令寻找代码E4 60后,该条指令在程序中的位置见如下程序表:
本文引用自http://novell.me
NETWARE 3.11
000143EB E460 IN AL,60
......
00014424 C3 RET
00014425 800D3088010002 OR [00018830],02
0001442C C3 RET
0001442D 800D3088010001 OR [00018830],01
NETWARE 3.12
00011278 E460 IN AL,60
......
000113DD C3 RET
000113DE 800D006D01002 OR [00016D00]=00,02
000113E5 C3 RET
000113E6 800D006D01001 OR [0016D00]=00,01
000113ED C3 RET
NETWARE 4.11
0001445F E460 IN AL,60
......
00014579 C3 RET
0001457A 800D30FB010002 OR [SERVER.NLM:DDH_KEYSTATEFLAGS]=00,02
00014581 C3 RET
00014582 800D30FB010001 OR [SERVER.NLM:DDH_KEYSTATEFLAGS]=00,01
00014589 C3 RET
在程序表中有三个版本的 IN AL,60H指令位置。由该指令位置找到了处理左SHIFT和右SHIFT键的指令。如在NetWare 3.12中(见程序表),地址000113DE处的指令是向00016D00单元做左SHIFT键的标志02。地址000113E6的指令是向00016D00单元做右SHIFT键的标志01。其他两个版本同样是用02、01在同一个单元做左右SHIFT键的标志。 内容来自Novell迷网站
(3)取消进入386DEBUG程序的功能
因为进入386DEBUG需要同时按下四个键,其中包括两个SHIFT键。既然我们在上面(2)中找到了处理SHIFT键的指令位置,那么只要我们将两条指令中任意一条指令中任意一条指令的最后一个数值02或01改为00,也就是当按下两个SHIFT键时,相当于程序只处理其中的一个SHIFT键。所以在控制台上就进不了386DEBUG程序。这样我们的目的就达到了,这个方法可用PCTOOLS修改Server.exe文件,以达到完全取消该程序的功能。也可以在每次开启服务器后,在控制台上用386DEBUG修改内存的程序代码,下次开机同样存在386DEBUG功能。
我们只去掉一条SHIFT键指令标志的原因是:还要留一个SHIFT来选键盘上的上档符号。如果将两个SHIFT键标志都去掉,那么键盘上就选不到上档符号键,这就影响键盘的使用。
上面介绍的方法已在三个版本的NetWare操作系统上通过。 本文引用自Novell迷网站
需要指出的是,由于DOS的环境不一样,执行Server.exe程序后,网络操作系统的程序地址就不一样。上面程序表中的地址是C盘启动DOS6.22后(没有CONFIG.SYS和AUTOEXEC.BAT文件),转入D盘根目录执行Server.exe程序后获得的地址位置。
本文转载自http://novell.me
转载请注明出处!本文地址 http://novell.me/NetWare/2009/0319/novell-netware-security.html
(责任编辑:Novell迷)