Microsoft的安全问题一直是一个很敏感的问题,因为网络上有太多的使用者了,在我收集的长达79页的Microsoft技术规范说明中,谈到安全问题的仅仅是一段“比以往的版本,在安全技术上有很大的改善”,显然,Microsoft更关心的是有没有人偷他的软件去使用,而不是用户在使用软件时是否安全。那么,摆在眼前的就是:Microsoft从来就不是一个安全的平台,即使是Nt系统,虽然Nt系统经过了NSA的安全等级C2鉴定。但是,请注意以下的补充说明:
1·C2在EPL中是很低的等级。
2·Nt系统的C2只在某些硬件上才能达到,(Compaq Poliant 2000,DECpcAXP/150 Alpha)
3·Nt系统的C2认证是假定在没有网络的情况下。
所以,在Microsoft的windows产品中,基本的安全功能就相当的缺乏,所有密码的功能基本是依赖一个PWL的文件,所以,了解这份文件,你也就了解了windows安全所谓的机制。
在windows中,使用两个函数来计算密码:
- WnetCachePassword( )
- WnetGetGachedPassword( )
如果你是一个软件设计人员,那么你可以使用相同的这两个函数来获得使用者的密码。但是,更简单的方法是,你可以在windows系统目录下,直接删除PWL文件,然后再以你的口令生成一个文件。详细的说明你可以参考:http://199.44.114.223/rharri/tips.htm或者你可以到http://www.iaehv.nl/users/rvdpeet/unrelate/glide.zip下载这个软件,然后试试在你的机器上运行。
如何解决上述问题,你可以使用Fortres 101,在http://www.fortres.com/f101.htm,上面说的只是单机的情况,那么,如果你的机器在网络上呢?这里有我一份在去年3月份的记录。对在记录中出现的任何机器,我很抱歉将你们列出来。但是我保证没有动改你们的硬盘。
1997.3.27 xx:xx:xx
我从internet连线上学校的网络,当时,我用了一个Scanner来扫描整个的网络,令人惊奇的是,我从结果窗口中看到了这样的一些信息:
- Win95client: littlesun
- Win95client: tina&ryu
- .....
- .....
- Win95client: subtle
- .....
- WinNtServer: XXXXXX Domain:XXXXX_XX
- .....
接下来,我只是用网络邻居来打开某台机器,然后,我立刻就发现了一些的共享目录。其中的某些目录你可以用"guest"来连上,到了这一步,如果你是一个别有用心的人,你会怎么做?我想象的做法应该是:
1. 到95的系统目录下,下载所有的PWL文件。 (其中就有Administrator的)
2. 到我本机后,用glide在一秒中内解出所有的密码。
3. 然后我想,可能有某台机器是连上Nt系统服务器的系统管理员的工作平台,这样的话,他不太可能使用两个密码来登录Nt系统域和他本地的Win95系统,通常在服务器上的Administrator和他在本地的Administrator用户口令相同。
4. 于是,我可以用这个密码来登录发现的那一台服务器,用administrator.
Ok, 脆弱的工作站连累了Nt系统服务器。这就是结果。出现这样的安全问题,原因是什么?就是windows采用的SMB协议所带来的问题。SMB(Server Message Block) ,Microsoft用这个协议来实现系统在网络中的共享协定。包括:文件,目录,打印机,通讯口等。这个协议可以加在很多协议上跑,象Tcp/Ip,NetBios,Ipx/spx于是,hacker就可以使用telnetd透过SMB来或取windows,Nt系统的共享目录,然后就可以:
1. 使用SMB的clinet端送"dir ..\"给服务器,造成"denial-of-service"的攻击。
2.使用SAMBA连上共享目录。慢慢观赏你的硬盘。
解决问题的方法是:不绑定SMB给Tcp/Ip.去http://ftp.microsoft.com/developr/drg/cifs/中找详细的SMB资料,然后到http://www.microsoft.com/kb/articles/q140/8/18.htm找一个SMB的patch.
这只是Nt系统中普遍存在的问题,实际上,根据我个人的看法,在一个Nt系统中,你起码应该注意这些问题:
1.Port 80的远程漏洞。
Telnet到prot 80 ,发送这样的命令:get ../..
ok ,Web服务器立即当掉。 使用Service pack 1a,2来修复这个问题。
2. Denial-of-Service的攻击。
到http://ntinternals.com/cpuhog.htm取cpuhog这个软件,他使你的Nt系统服务器Cpu达到100%忙碌状态,然后死掉。
3. port 135,1031的问题。
这个OOB的问题相信大家都知道,但是Microsoft对1031口存在的问题却不太关心。在1997年2月2日的Microsoft报告中就明显指出这个问题,到现在还没有有效的解决方法。
4. 对DNS-Denial的攻击,使用Service Pack 3来修复。
5. 通常hacker会用的由nbtstat来查询机器名称,放入lmhosts文件后,对网络查询,来得到共享目录,使用者信息,等待。
谈谈Nt系统的密码问题
Nt的密码采用和95不同的机制来实现。在Nt系统中,使用的安全模型是DAC ( Discretionary Access Control ).你可以从这个网址得到完整的参考:
http://www.v-one.com/newpages/obook.html而DAC的实现有赖于NTFS,所以,请你在安装Nt系统时,选用NTFS选项。但是,不要以为NTFS能带给你100%的安全,到这个地址:http://www.hidata.com/guest/nthacks/passworddll.htm,你可以得到一个工具,你自己用用看。这里我想列出一些可能对你管理Nt系统服务器有用的工具,它们可以用来找出你系统的弱点,或者防范网络hacker的攻击:
- scanNT: http://www.omna.com/yes/andybaron/pk.htm
- Systems Management Server : http://www.microsoft.com/smsmgmt/revgd/sms00.htm
- Dump ACL: http://www.net-shopper.co.uk/software/nt/dmpacl/index.htm
Microsoft的操作系统安全问题的分析就叙述挖了,实际上,有些问题并不只是在windows或Nt系统中,在Microsoft的dos, winword, access,excel ,front page webserver ,o'reilly website server等产品中,都有不少的安全弱点。
【编辑推荐】