对于Windows 2000 server的强大的功能和全新的构架我们都不得不叹服微软的实力,可以预见Windows 2000 server将成为新一代服务器操作系统的主流,同时也成为黑客攻击的对象。以下仅是自己平时积累的关于攻击Windows 2000 server常用的一些手法及预防措施,让网络系统管理员在维护系统时尽量做到有的放矢。有一句话非常有道理:“世界上没有绝对愚蠢的系统,只有绝对愚蠢的管理员。”只要我们的网络管理员能够细心地维护系统,相信黑客们是没有可乘之机的。
一、组件的安装
在安装系统时,可根据所提供的服务定制安装所需要的组件,win2k默认安装的一些组件具有一定的危险性,如提供WEB服务时可安装IIS的Internet服务管理器,WWW服务器,公用文件,文档,FTP(如果不安装可使用其他更专业的FTP替代,如serv-u)而Internet服务管理器(HTML)是Internet服务管理器的HTML版,主要是用于让管理员远程管理Internet服务器,如果不使用远程管理,这个可以不安装。
二、系统的安装
由于IIS经常会有源码/溢出漏洞,所以如果把IIS和系统放在一个盘区会导致系统文件的泄露,同时IIS和FTP也不可装在同一个盘区中,这样就可防止入侵者上传程序并从IIS中运行。把服务器的所有分区都改成NTFS格式,此格式要比FAT,FAT32的文件系统安全的多。
三、登陆输入法漏洞
当我们启动Windows2000进行到登录验证的提示界面时,任何用户都可以打开各种输入法的帮助栏,并且可以利用其中具有的一些功能访问文件系统,这也就是说我们可以绕过了Windows2000的用户登录验证机制,并且能以最高管理员权限访问整个系统。所以说这个漏洞的危害性是很大的,而且当我们进入系统后,还可以利用Terminal Server远程通信这个漏洞对系统进行攻击。默认的Windows2000系统自带的输入法中有这个漏洞的是:智能ABC,微软拼音,内码,全拼,双拼,郑码。
1、把不需要的输入法删除掉,例如郑码等。
2、但是毕竟我们不能把所有的自带输入法都删除,如果我们要使用有漏洞的输入法也可以把那个输入法的帮助文件删除掉。这些帮助文件通常在win2000的安装目录下(如:C:\WINNT)的\help目录下,对应的帮助文件是:
※ WINIME.CHM 输入法操作指南
※ WINSP.CHM 双拼输入法帮助
※ WINZM.CHM 郑码输入法帮助
※ WINPY.CHM 全拼输入法帮助
※ WINGB.CHM 内码输入法帮助
3、微软公司对于此问题发布了MS00-069安全公告,并在互联网上给出了简体中文 Windows2000和英文版Windows2000的补丁。所以请尽快打上补丁。
四、帐号安全
1、停掉GUEST帐号,不允许GUEST帐号登陆系统,或者给其设置复杂的密码
2、限制不必要的用户数量,去掉测试用帐号,共享帐号,普通帐号等等,并在用户组策略设置相应的权限
3、如果在不影响其他服务的情况下,可给系统administrator帐号改名,这个名字已经被大家所熟知,也是最容易被攻击的,当然也可以创建一个名为“administrator”帐号,但将它的权限设为最低,同时设置一个复杂密码,也就是一个陷阱帐号,当此帐号受到攻击时,尽管对系统没有什么影响,但我们可通过日志文件发现一些黑客的攻击手法可做些防范
4、把共享文件的权限从“everyone”组改为“授权用户”,“everyone”组意味着任何有权进入你的网络用户都能够获得这些共享资料。
5、使用安全密码,根据SAM文件中保存口令的算法,一般使用位数是7的倍数,字符使用大小写,数字及一些特殊字符,这样可保证口令的安全性,不易被破解,同时要定期更改
6、开启密码密码策略
策略 设置
密码复杂性要求 启用
密码长度最小值 6位
强制密码历史 5 次
强制密码历史 42 天
7、开启帐户策略
策略 设置
复位帐户锁定计数器 20分钟
帐户锁定时间 20分钟
帐户锁定阈值 3次
8、不让系统显示上次登陆的用户名
默认情况下,终端服务接入服务器时,登陆对话框中会显示上次登陆的帐户明,本地的登陆对话框也是一样。这使得别人可以很容易的得到系统的一些用户名,进而作密码猜测。修改注册表可以不让对话框里显示上次登陆的用户名,具体是:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\DontDisplayLastUserName
把 REG_SZ 的键值改成 1 . 或者通过组策略安全进行设置
五、NetBIOS的信息泄漏及默认共享
1、Driver$
允许管理人员与存储设备的根目录连接的一种共享资源。显示形式为A$,B$,C$,D$,在WIN2K SERVER版本中,“服务器操作员”组的成员能连接这些共享资源,可通过“属性”―“共享”删除这些默认共享,但在系统重启后又会出现。
2、Admin$
远程管理计算机的过程中系统使用的资源。在WIN2K SERVER版本中,“服务器操作员”组的成员能连接这些共享资源,可通过修改注册表hkey_local_machine\system\currentcontrolset\services\lanmanserver\parameters autoshareserver=Reg_dword:0来禁止这个共享
3、IPC$
共享命名管道的资源,它对程序之间的通讯非常重要,在远程管理计算机的过程及查看计算机的共享时使用。那么就让我们来看看空会话能给入侵者带来什么样的信息:
net use \\server\IPC$ "" /user:"" //此命令用来建立一个空会话
net view \\server //此命令用来查看远程服务器的共享资源
服务器名称
注释
-------------------------------------------------------
\\pc1
\\pc2
命令成功完成。
net time \\server //此命令用来得到一个远程服务器的当前时间。
nbtstat -A server //此命令用来得到远程服务器的NetBIOS用户名字表
NetBIOS Remote Machine Name Table
Name Type Status
---------------------------------------------
NULL UNIQUE Registered
NULL UNIQUE Registered
INTERNET GROUP Registered
XIXI UNIQUE Registered
INet~Services GROUP Registered
IS~NULL...... UNIQUE Registered
INTERNET GROUP Registered
ADMINISTATOR UNIQUE Registered
INTERNET UNIQUE Registered
..__MSBROWSE__. GROUP Registered
MAC Address = 00-54-4F-34-D8-80
此时,入侵者可以通过空连接连上服务器,获取帐号,进而猜测密码,我们可以通过修改注册表禁止列出用户列表
HKEY-LOCAL_MACHINE\SYSTEM\CurrentControSet\Control\LSA
Value Name: RestrictAnonymous
Data Type: REG_DWORD
Value: 1
要想彻底删除ipc$,我们可以创建一个开机脚本如delipc.vbs
net share ipc$ /delete
放在组策略中的开机脚本中(开始----运行----gpedit.msc―windows设置),一开机这个共享就被删除了,如果想使用的话,可以在命令行的模式中输入net share ipc$就可以使用。
六、打开审核策略
开启安全审核是Windows 2000最基本的入侵检测方法。当有人尝试对你的系统进行某些方式(如尝试用户密码,改变帐号许可的文件访问等等)入侵的时候,都会被安全审核记录下来。
开始-程序--管理工具---本地安全策略―--审核策略
帐户管理 成功 失败
登录事件 成功 失败
对象访问 失败
策略更改 成功 失败
特权使用 失败
系统事件 成功 失败
目录服务访问 失败
帐户登录事件 成功 失败
同时安全记录默认情况下是没有保护的,所以要在组策略中设置只有aministrator和系统帐户才有权访问,以防被人“毁尸灭迹”
七、关闭不必要的端口
关闭端口意味着减少服务,因此需要根据自己所提供的服务决定所需要开放的端口,或者可以更改端口,但同样会带来一些不便,这些可在
网上邻居---属性-----本地连接----属性----TCP/IP属性----高级---选项----TCP/IP筛选
同时可使用netstat命令查看服务器的端口状态,一旦发现异常,可屏蔽此IP。
八、奇怪的系统崩溃特性
Windows 2000有一个比较奇怪的特性,使用系统的终端用户可以通过按住右Ctrl,同时Press两次Scrool Lock按键,就轻易可以让整个Windows2000系统完全的崩溃。但同时又在C:\WinNT\下dump完整的当前系统内存记录,内存记录文件名是memory.dmp。当然,这个奇怪的特性默认状态下是关闭的,但是我们可以通过修改注册表的方法把它激活:
1、运行regedt32.exe (Windows2000的32位注册表编辑器)
2、选择主键:
HKEY_LOCAL_MACHINE然后找到SYSTEM\下的CurrentControlSet选择Services进入i8042prt\中的Parameters
3、新建一个双字节值
4、将键名为CrashOnCtrlScroll
5、然后在设置一个不为零的值。
6、退出重启
当这一切做完后,你就可以尝试让系统崩溃了,按下按键后的效果为黑屏,将会出现以下信息:
*** STOP: 0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)
The end-user manually generated the crashdump.
值得注意的是,这个奇怪的特性在WindowsNT4中也存在,不知道是不是微软程序员作测试的一个小功能。不过要是有黑客或者病毒利用它,也是很危险的。
当然有时候单机也会出现这种情况Dr.Watson(drwtsn32.exe)是Windows 2000的一个崩溃分析工具,它会在应用程序崩溃的