-
从轻松掌控中国教育部旗下2000多网站想到的安全防范
作者:李嘉义 来源于:中国黑客联盟http://www.cnhacker.com(只有此域名为正版官方网站) 发布时间:2006-1-26 15:58:17前言:
半年前就开始写,在繁忙的工作之余来写文章。搞了半年多才发表在<<黑客手册>>的第12期上,搭了个末班车,赶了个年尾!!!水平没有多高,但没有功劳也有苦劳。望读此文的朋友不要见笑,多提有用的建议!!!
本文发表于:非安全<<黑客手册>>12期 http://www.nohack.cn
文章标题:从轻松掌控中国教育部旗下2000多网站想到的安全防范
作者小站:www.cnsu.net
正文 :
上传,又见上传……
一个老的不能再老的漏洞,又一次出现在一个相当重要的服务器中…..
难道真的是我运气太好了?击中要害的瞬间只要几十秒…..整个过程也不足三分钟…..
………….
第一章:不足三分钟的战斗
在中关村一个很普通的写字楼的一间很普通的办公室内,几十张年轻的面孔各自聚精会神的盯着显示器屏幕,有的正敲击着键盘,有的移动着鼠标。
“帮个忙”同事走过来拍了我一下。
还没等我反应过来,他就抢过我的键盘,在IE地址栏下输入了一串网址。点开一个页面。“我要看这个功能是怎么实现的?”
……….
“你是让我入侵这个服务器,查它源码?”看着这个打着“教育部、中宣部、中组部”LOGO的网站,我反问道。
“没错,你不是中国黑客联盟的核心吗?一定有办法的,何况我只是看一下源码就可以了,又不是搞破坏”他理直气壮的对我说。顿时斗大的一颗汗珠从我额头滚下。他果然够狠,知道我以破坏他人为耻。居然拿话堵我,更狠的是还拿组织的名义来压我。黑客入侵本来就是一场无声的战斗。还没有接触,谁也没有把握就能100%成功。
“呵呵,你错了。我可是黑盟里最垃圾的一个!”一边和他说着,一边快速的浏览着这个网站。我本人丢人就算了。可不能给组织丢脸。
很快我就发现有好几个上传页面的存在,随便找出一个[如图一所示],先试试有没有上传漏洞吧。
[图一]
利用上传页面,试着传一个加密过的ASP木马,竟然提示我上传成功。第一步成功了,一切顺利^_^ ! 右鍵查一下源码,获得上传后返回的文件名。[如图二所示]
[图二]
用获得的文件名替换upload.htm在IE地栏输入试一下。显示的是无法找到网页。显然是仅仅返回了上传的文件名,并不是正确的路径。在沉思10几秒后,决定用猜了,如果不知道路径,上传了木马没有用。考虑到一般人在写程序时习惯用upload作为上传后的保存目录,于是将upload.htm替换为upload/2005XXXX.asp(获得的文件名)。哈哈。。熟悉的木马登录界面再一次的出现在眼前。不过,先不用高兴的太早,如果管理员将权限设置的很好,那么下面的路也未必会好走。不管怎么样。先输入登录口令进入看看再说。
“好了,这是你要的源码”我得意的对同事说,看着他高兴的离开,我得意之余,心里泛起一股莫名的滋味……
这是一个较具规模的服务器,但安全基本上就没有做。所以让这个ASP木马上传后,其功能得到了全面的发挥。所有的服务器信息全在眼中。而且所有分区的完全控制权限[如图三所示],让我想写就写,想删就删。(当然我不会这么做的)
[图三]
通过查看FTP服务器Serv-U信息,发现以网站域名命名的帐号有两千多[如图四所示]。先不论此服务器和教育部到底是什么关系。但肯定和教育和学校有关,随意打开一个域名,就是XXX学校网站。全国这么多教育类网站放在这里。安全却是如此的差。从找页面到获得源码,不足三分钟…….
[图四]
第二章:网络安全意识与网络安全
这是一场快速的战斗,如此的顺利。并不是说明我的入侵技术有多高,而是对方的安全防线太薄弱了。网络安全意识没有跟上造成的。
网络安全是一个永远讲不完的话题,然而有很多人的安全意识还是停留在几年前,那时扫描弱口令就可以搞到很多的肉鸡服务器。几个简单的小漏洞就可以风行一时。现在的人们思想“进步”了,知道给系统加一个强的密码,及时给系统打上安全的补丁,再配上杀毒软件和防火墙。就以为可以高忱无忧了。其实远远不够,尤其是那些服务器的管理员们。更应该加强网络安全意识。
就拿上面的案例来讲,就是服务器的管理员安全意识没有跟上。Serv-U现在都有V 6.1.0.1了。服务器上居然一直没有升级,还在用V 4.1.0.0。我5月底上传的木马,到8月初去看。还是存在。唉。这样的安全意识能打造出什么样的网络安全。
网络安全并不是单一某个方面做的好就行。它是一系列安全组合形成的一个整体。简单来讲,网络安全包括“物理硬件+软体配置+安全服务” 几个大的方面。如果说受到硬件和技术等自身条件限制了怎么办?最基本的就是从网络安全意识入手,如今网络安全类最新资讯和技术文章随处可见。只要具备了网络较强的安全意识,加强网络安全服务管理。相信可以从很大程度上增加入侵难度,相对增强你所掌管的服务器安全性。
“只有想不到,没有做不到”一句经典的话从某个角度代表着意识的重要性! 意识是安全的第一步,你都不是去想它,不去重视它。如何去做?所以加强网络安全意识是加强网络安全的第一步。
第三章:权限、访问控制---永不可忽视的话题
权限就是针对不同用户行使的权力进行授权或限制,不然在操作系统上分组,分用户也没有多大的意义了。但是往往有很多的系统管理员并没有注意到这一点,对安装系统后默认的Every完全控制权限不予理睬。当服务器被入侵后,后悔已经晚了。
如果将服务器权限进行安全的配置,即使ASP木马上传上去,所掌控的信息也是有限的,出现意外的损失也可以降到最小。第一章所述的就是一个很好的案例。[如图五、图六所示]就是因服务器的权限没有限制造成服务器所有信息泄漏。
图五
图六
那么哪些需要地方需要通过权限进行访问控制呢?一般来讲作为web应用服务器,利用NTFS访问控制列表进行访问权限控制和IIS身份验证相结合是必需要作的一步。对现行网络中数以亿计的web服务器,只要有公开的web页,从某种意义上讲,任何外部用户都可以进入这台的服务器,并且具备最基本的读权限。如果因为服务器的权限配置不当,并且web程序上存在漏洞。那么这台服务器就存在被外部用户利用并被控制的可能。所以第一步,我们要删除NTFS访问控制列表中所有的Everyone的完全控制权限,(如图七,点击删除鍵将Everyone从列表中删除) 让Everyone从服务器各个分区里消失,我们再根据实际需要分配不同的权限。
图七
如果你想设定的更BT一些,可以只留下你用于管理的administrators组的用户,将访问控制列表中其它的用户全部删除,再根据需要添加。比如:Serv-u FTP权限默认是以system系统帐户运行。(如图八)
图八
要想使FTP在相应授权的目录可以访问,就需要在NTFS访问控制列表中再添加上system的相应权限。如:图九
图九
如果在服务管理里将Serv-u更改为本地系统内其它帐户运行。比如是新建的cnsu(如图十), 那么就在授权目录里的访问控制列表里,像添加system一样把cnsu这个帐户添加进去,并授予相应的权限。这个帐户最好由这个服务单独使用,如果同一个帐户被多个服务共同使用,其安全性会大打折扣,也不利于权限控制管理。
图十
作为网站应用服务器来讲,网站的访问控制权限更显的重要。除了用NTFS访问控制列表来管理外,IIS内置的身份验证,如果很好的与访问控制列表结合。将为网站的安全性起到非常大的作用。
当目录安全性的身份验证设为cn90用户时(如图十一),那么所对应的网站来访都会以cn90这个帐号访问目录,此时这个目录的NTFS访问控制列表内如果没有cn90这个帐号,将无法访问到网站的内容。也就是被服务器拒绝访问了。所以要想正常的访问这个目录内的网站,就需要在访问控制列表内将此帐户添加进去。另外需注意的两点是数据库权限问题和%systemroot%目录内的插件和相关控件的权限问题。经常发现有的朋友在设完了IIS身份验证和NTFS访问控制列表后,网站还是不能正常访问。原因就是因为访问控制时的权限只是有读和运行的权限,没有写和修改的权限,这本身没有什么错。但数据库那个文件你一定要单独加入写的权限,不然数据库无法写入。当然不能正常使用了。另外一个就是%systemroot%目录只留管理员和系统权限后。由于网站浏览者采用身份验证设定的匿名帐户访问,而%systemroot%目录的NTFS没有他的访问权限,所以造成没有权限调用asp或其它的一些控件,而引起不能正常浏览,所以要找到相关路径并给予对应的权限。如果网站要运行aspx程序,还应该加上users的读权限。不然aspx会无法运行。
图十一
关于权限,如果装有SQL Server那么它本身的权限控制与系统的权限也需要进行很好的结合。还有等等诸与其它的权限设定此文我就不一一举例了,以后的文章可能会针对某一方面深入的讨论。总之权限和访问控制是我们服务器安全首先考虑和重视的问题。
第四章:细节的魅力-----配置服务器安全点滴
谁将系统做的更细,那么安全性也会相应提高。经常出现很多系统的大的方面做的很好。一些小地方不注意,造成系统被入侵,真是百密一疏。但注意细节的前提是对系统要非常的熟悉。不然不知道从哪里下手也没用。下面我将对windows系统的服务器配置常见安全方面细节例举出来,供大家参考。
一、 系统安装前的考虑
在作服务器之前就应该想好需要什么。根据需要安装配置合理的系统才是明智的选择。如果你仅是需要ASP或.NET程序。那么windows server 2003与自带的IIS6.0相结合,再进行正确的配置将是非常安全的。有不少人认为在2003上安装apache比较好,但我个人认为apache与windows结合的并不是很好。要是想用apache,在linux或unix类的系统上无论是安全还是效率上都会比windows强的多,如果你选定了系统,如2003(以下配置我以2003系统为例)。那么就应该把一切打算安装的服务软件或工具提前准备好,还有升级补丁包、防火墙、杀毒等安全工具。所以系统安装前一定要做好一切准备工作。
二、 安装系统时的注意
在系统安装时就应该考虑到系统安全后的安全维护问题,所以NTFS分区格式是必需的,因为fat和fat32格式的windows系统无法进行访问控制。对系统的安全性是不利的。
三、 安装系统后的注意
很多人在装完系统后,就急着上网升级打补丁等。其实,在装完系统后先不要急着联网,把网线拔掉都没关系。先把服务器上不需要连接网络的安全配置给做一下。
四、 基本的系统配置
1. 安装准备好的最新补丁包(一定要提前准备好,如果联网后下载安装补丁包,特别的慢,其中下载安装的过程就会存在被攻击的危险)
2. 建立操作日志,在系统安装后对所有的操作进行详细记录。(把这一步也放到系统配置里来说,因为这个非常的重要,这个习惯有助于你今后的安装与调试过程中的问题解决与处理,对今后的安全管理也起着非常重要的作用)
3. 应用服务的安装与调试(要先安装所需的应用服务如web/ftp/mail/database等,不然有很多人在做完了安全配置后,发现应用服务无法正常使用,此时再查找什么配置造成的影响又费时又费力,有时还查不出原因。)
4. 系统帐号的安全管理(可以采用禁用guset等所有无用的帐号、给系统管理员administrator改名、新增备用管理员、普通帐号分组管理找、设立强密码、定期更换密码等措施加强帐号的安全。)
5. 安全访问控制列表与应用服务的结合(这一点非常的重要,上文我已作过相关介绍,在这里我再强调一下,一定要仔细,对于重要的目录要再检查一下,由其要注意“%allusersprofile%/..”这个目录。默认情况下这个目录不会继续上层访问控制列表的设定,所以要重新设定一下。设定OK后,要对应用服务进行测试,如果有问题参考第2条作的记录,检查一下问题,直到安全和使用都没问题。)
6. 将重要的可执行文件的访问作限制。(将“%windir%”目录下的regedit.exe和“%windir%/system32”目录下的at.exe、attrib.exe、cacls.exe、cmd.exe、netstat.exe、tftp.exe访问控制列表里设为只允许administrators组内的管理员才可以访问。)
1. 禁用不必要的组件。(对于FSO、shell、WScript等存在安全隐患的组件,如果不是很必需的话,最好禁用掉。可以运行中输入以下命令
RegSvr32 /u %systemroot%/system32/scrrun.dll、
RegSvr32 /u %systemroot%/system32/shell32.dll、
RegSvr32 /u %systemroot%/system32/wshom.ocx )
2. 出于安全性考虑以下服务建议关闭:Remote Registry(禁用它可以防止远程更改注册表)、Workstation(禁用它可以防止从脚本获取服务器的系统用户和系统进程的列表,顺便将依赖此服务的Alerter、Computer Browser、Distributed File System、Messenger、Net Logon、Remote Procedure Call (RPC) Locator禁用)、Server(作为比较重要的应用服务器,共享和网络打印是不必要的,建议将此服务禁用)对于服务器来讲,不是必需的服务我们都应该禁用掉。如:TCP/IP NetBIOS Helper、Telephony、Telnet、Windows Time、Automatic Updates、Print Spooler等…我就不一一举例了,自己多参照一下服务描述,把不必要的禁用。
3. 修改远程终端的默认连接端口。方法如下:
修改[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/Wds/rdpwd/Tds/tcp]的 PortNumber值,默认是3389,修改成所希望的端口,建议将数值改的大一些,如9999。然后 按上面的方法修改[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp] 的PortNumber值,和前面的相同,也修改为9999,修改结束重启后即可!不过在客户端连接时要记得在原连接的IP后面加上“:9999”(9999代表你刚修改的值。也可以是其它。但一定要是你在注册表中修改的值。)
4. 在"网络连接"里,把不需要的协议和服务都删掉[如图十二],这里只保留基本的Internet协议(TCP/IP)就可以了,如果你需要控制带宽流量和负载平衡,可以再安装一个Qos数据包计划程序和网络负载平衡,总之,要根据需要添加,对于不是必要的一定不能手软。
图十二
5. 在Internet协议(TCP/IP)的属性,高级选项里禁用TCP/IP上的NetBIOS。[如图十三]
图十三
6. 启用2003自带的防火墙和TCP/IP筛选。例如:当服务器不是商业虚拟服务器,也没有Mail服务,那么只打开80端口和远程终端(如:9999)就够了。配置如图十四、十五、十六所示:
图十四
图十五
图十六
如果有其它的服务需要使用端口,再对应防火墙和TCP/IP筛选进行增加即可,由于很多人在配置时不能很好的与FTP相结合。我下面以ServU的配置为例再简单说一下FTP的端口设定。
FTP的工作方式分为主动式PORT和被动式PASV两种,现在我以PASV模式为例,在连接的过程,客户端向服务器端口(默认为21)发送连接请求,服务器接受连接并建立一条命令链路(所以此时防火墙和TCP/IP里应把21端口打开)。当需要传送数据时, 服务器在命令链路上用PASV命令告诉客户端:“我打开了XXX端口,你过来连接我”。于是客户端向服务器的XXX端口发送连接请求,建立一条数据链路来传送数据。一般来讲PASV模式的端口是在1024-65535端口范围间随机生成的。这样范围太大,不利于安全管理,所以我们要在ServU软件中的“设置=>高级=>PASV端口范围”里设定你需要的范围,我这里以5001-5005为例来限制PASV的端口范围。[如图十七所示]
图十七
软件里作完了限制,千万不要忘了在防火墙和TCP/IP筛选里把PASV监听的端口和FTP连接端口打开。参见图十八、图十九:
图十八
图十九
7. 关于IIS的安全配置。
①删掉默认目录%SystemDrive%/Inetpub。
②然后删除不必要的映射[如图二十所示]
图二十
③在调试选项里将默认的ASP错误消息设为自定义的信息,[如图二十一所示]
图二十一
④IIS的身份验证与NTFS的目录访问控制列表一定结合好[如图二十二所示],前文已讲过,这里不再作更多叙述。否则会造成网站无法正常浏览。
图二十二
8. 设置安全策略
①开启密码策略(如图二十三)
图二十三
②开启帐户锁定策略(如图二十四)
图二十四
③开启审核策略(如图二十五)
图二十五
后记:
不知不觉的写了这么多,其实还有好多地方没有写到。考虑到是写文章而不是写书,出于篇幅考虑将一些不是关键点的地方给省略了,如果对此文有什么疑问或实际遇到的问题未能解决,请与我直接联系。
至于中国的网络安全现状一直是我担心的话题,无论是我去年底轻松掌控263的虚拟主机还是此次顺利掌控中国教育部旗下全国各地区高校的高校2000多家。仅仅是利用一个小小的上传漏洞。如果管理员们的安全意识能多提高些,这些都是可以完全避免的。而现在新入安全界,学习黑客技术的朋友们,很多是盲目的使用别人发现的漏洞或开发的工具进行攻击。甚至有一些掌握一点黑客技术的朋友们也在互相攻击,而对系统安全知识却了解不足。黑客技术犹如武术一样,是攻击与防守的结合体,是思想性、艺术性、科学性的综合体现。但愿我们更多的人去关注去掌握黑客技术,去做那网络中的侠客!