随着动网论坛的广泛应用和动网上传漏洞的被发现以及SQL注入式攻击越来越多的被使用WEBSHELL让防火墙形同虚设一台即使打了所有微软补丁只让端口对外开放的WEB服务器也逃不过被黑的命运难道我们真的无能为力了吗?其实只要你弄明白了NTFS系统下的权限设置问题我们可以对crackers们说NO! 要打造一台安全的WEB服务器那么这台服务器就一定要使用NTFS和Windows NT//众所周知Windows是一个支持多用户多任务的操作系统这是权限设置的基础一切权限设置都是基于用户和进程而言的不同的用户在访问这台计算机时将会有不同的权限 DOS跟WinNT的权限的分别 DOS是个单任务单用户的操作系统但是我们能说DOS没有权限吗?不能!当我们打开一台装有DOS操作系统的计算机的时候我们就拥有了这个操作系统的管理员权限而且这个权限无处不在所以我们只能说DOS不支持权限的设置不能说它没有权限随着人们安全意识的提高权限设置随着NTFS的发布诞生了 Windows NT里用户被分成许多组组和组之间都有不同的权限当然一个组的用户和用户之间也可以有不同的权限下面我们来谈谈NT中常见的用户组 Administrators管理员组默认情况下Administrators中的用户对计算机/域有不受限制的完全访问权分配给该组的默认权限允许对整个系统进行完全控制所以只有受信任的人员才可成为该组的成员 Power Users高级用户组Power Users 可以执行除了为 Administrators 组保留的任务外的其他任何操作系统任务分配给 Power Users 组的默认权限允许 Power Users 组的成员修改整个计算机的设置但Power Users 不具有将自己添加到 Administrators 组的权限在权限设置中这个组的权限是仅次于Administrators的 Users:普通用户组这个组的用户无法进行有意或无意的改动因此用户可以运行经过验证的应用程序但不可以运行大多数旧版应用程序Users 组是最安全的组因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料Users 组提供了一个最安全的程序运行环境在经过 NTFS 格式化的卷上默认安全设置旨在禁止该组的成员危及操作系统和已安装程序的完整性用户不能修改系统注册表设置操作系统文件或程序文件Users 可以关闭工作站但不能关闭服务器Users 可以创建本地组但只能修改自己创建的本地组 Guests:来宾组按默认值来宾跟普通Users的成员有同等访问权但来宾帐户的限制更多 Everyone:顾名思义所有的用户这个计算机上的所有用户都属于这个组 其实还有一个组也很常见它拥有和Administrators一样甚至比其还高的权限但是这个组不允许任何用户的加入在察看用户组的时候它也不会被显示出来它就是SYSTEM组系统和系统级的服务正常运行所需要的权限都是靠它赋予的由于该组只有这一个用户SYSTEM也许把该组归为用户的行列更为贴切 权限的权力大小分析 权限是有高低之分的有高权限的用户可以对低权限的用户进行操作但除了Administrators之外其他组的用户不能访问 NTFS 卷上的其他用户资料除非他们获得了这些用户的授权而低权限的用户无法对高权限的用户进行任何操作 我们平常使用计算机的过程当中不会感觉到有权限在阻挠你去做某件事情这是因为我们在使用计算机的时候都用的是Administrators中的用户登陆的这样有利也有弊利当然是你能去做你想做的任何一件事情而不会遇到权限的限制弊就是以 Administrators 组成员的身份运行计算机将使系统容易受到特洛伊木马病毒及其他安全风险的威胁访问 Internet 站点或打开电子邮件附件的简单行动都可能破坏系统 不熟悉的 Internet 站点或电子邮件附件可能有特洛伊木马代码这些代码可以下载到系统并被执行如果以本地计算机的管理员身份登录特洛伊木马可能使用管理访问权重新格式化您的硬盘造成不可估量的损失所以在没有必要的情况下最好不用Administrators中的用户登陆Administrators中有一个在系统安装时就创建的默认用户AdministratorAdministrator 帐户具有对服务器的完全控制权限并可以根据需要向用户指派用户权利和访问控制权限 因此强烈建议将此帐户设置为使用强密码永远也不可以从Administrators 组删除 Administrator 帐户但可以重命名或禁用该帐户由于大家都知道"管理员"存在于许多版本的 Windows 上所以重命名或禁用此帐户将使恶意用户尝试并访问该帐户变得更为困难对于一个好的服务器管理员来说他们通常都会重命名或禁用此帐户Guests用户组下也有一个默认用户Guest但是在默认情况下它是被禁用的如果没有特别必要无须启用此账户 小帮助何谓强密码?就是字母与数字大小互相组合的大于位的复杂密码但这也不完全防得住众多的黑客只是一定程度上较为难破解 我们可以通过"控制面板""管理工具""计算机管理""用户和用户组"来查看用户组及该组下的用户 我们用鼠标右键单击一个NTFS卷或NTFS卷下的一个目录选择"属性""安全"就可以对一个卷或者一个卷下面的目录进行权限设置此时我们会看到以下七种权限完全控制修改读取和运行列出文件夹目录读取写入和特别的权限"完全控制"就是对此卷或目录拥有不受限制的完全访问地位就像Administrators在所有组中的地位一样选中了"完全控制"下面的五项属性将被自动被选中 "修改"则像Power users选中了"修改"下面的四项属性将被自动被选中下面的任何一项没有被选中时"修改"条件将不再成立"读取和运行"就是允许读取和运行在这个卷或目录下的任何文件"列出文件夹目录"和"读取"是"读取和运行"的必要条件 "列出文件夹目录"是指只能浏览该卷或目录下的子目录不能读取也不能运行"读取"是能够读取该卷或目录下的数据"写入"就是能往该卷或目录下写入数据而"特别"则是对以上的六种权限进行了细分读者可以自行对"特别"进行更深的研究鄙人在此就不过多赘述了 一台简单服务器的设置实例操作 下面我们对一台刚刚安装好操作系统和服务软件的WEB服务器系统和其权限进行全面的刨析服务器采用Windows Server版安装好了SP及各种补丁WEB服务软件则是用了Windows 自带的IIS 删除了一切不必要的映射整个硬盘分为四个NTFS卷C盘为系统卷只安装了系统和驱动程序;D盘为软件卷该服务器上所有安装的软件都在D盘中;E盘是WEB程序卷网站程序都在该卷下的WWW目录中;F盘是网站数据卷网站系统调用的所有数据都存放在该卷的WWWDATABASE目录下 这样的分类还算是比较符合一台安全服务器的标准了希望各个新手管理员能合理给你的服务器数据进行分类这样不光是查找起来方便更重要的是这样大大的增强了服务器的安全性因为我们可以根据需要给每个卷或者每个目录都设置不同的权限一旦发生了网络安全事故也可以把损失降到最低 当然也可以把网站的数据分布在不同的服务器上使之成为一个服务器群每个服务器都拥有不同的用户名和密码并提供不同的服务这样做的安全性更高不过愿意这样做的人都有一个特点有钱) 好了言归正传该服务器的数据库为MSSQLMSSQL的服务软件SQL安装在d:mssqlserverK目录下给SA账户设置好了足够强度的密码安装好了SP补丁为了方便网页制作员对网页进行管理该网站还开通了FTP服务FTP服务软件使用的是SERVU 安装在d:ftpserviceservu目录下杀毒软件和防火墙用的分别是Norton Antivirus和BlackICE路径分别为d:nortonAV和d:firewallblackice病毒库已经升级到最新防火墙规则库定义只有端口和端口对外开放网站的内容是采用动网的论坛网站程序在e:wwwbbs下 细心的读者可能已经注意到了安装这些服务软件的路径我都没有采用默认的路径或者是仅仅更改盘符的默认路径这也是安全上的需要因为一个黑客如果通过某些途径进入了你的服务器但并没有获得管理员权限他首先做的事情将是查看你开放了哪些服务以及安装了哪些软件因为他需要通过这些来提升他的权限 一个难以猜解的路径加上好的权限设置将把他阻挡在外相信经过这样配置的WEB服务器已经足够抵挡大部分学艺不精的黑客了读者可能又会问了"这根本没用到权限设置嘛!我把其他都安全工作都做好了权限设置还有必要吗?"当然有!智者千虑还必有一失呢就算你现在已经把系统安全做的完美无缺你也要知道新的安全漏洞总是在被不断的发现 实例攻击 权限将是你的最后一道防线!那我们现在就来对这台没有经过任何权限设置全部采用Windows默认权限的服务器进行一次模拟攻击看看其是否真的固若金汤 假设服务器外网域名用扫描软件对其进行扫描后发现开放WWW和FTP服务并发现其服务软件使用的是IIS 和Servu 用一些针对他们的溢出工具后发现无效遂放弃直接远程溢出的想法 打开网站页面发现使用的是动网的论坛系统于是在其域名后面加个/upfileasp发现有文件上传漏洞便抓包把修改过的ASP木马用NC提交提示上传成功成功得到WEBSHELL打开刚刚上传的ASP木马发现有MSSQLNorton Antivirus和BlackICE在运行判断是防火墙上做了限制把SQL服务端口屏蔽了 通过ASP木马查看到了Norton Antivirus和BlackICE的PID又通过ASP木马上传了一个能杀掉进程的文件运行后杀掉了Norton Antivirus和BlackICE再扫描发现端口开放了到此便有很多种途径获得管理员权限了可以查看网站目录下的connasp得到SQL的用户名密码再登陆进SQL执行添加用户提管理员权限也可以抓SERVU下的ServUDaemonini修改后上传得到系统管理员权限 还可以传本地溢出SERVU的工具直接添加用户到Administrators等等大家可以看到一旦黑客找到了切入点在没有权限限制的情况下黑客将一帆风顺的取得管理员权限 那我们现在就来看看Windows 的默认权限设置到底是怎样的对于各个卷的根目录默认给了Everyone组完全控制权这意味着任何进入电脑的用户将不受限制的在这些根目录中为所欲为 系统卷下有三个目录比较特殊系统默认给了他们有限制的权限这三个目录是Documents and settingsProgram files和Winnt对于Documents and settings默认的权限是这样分配的Administrators拥有完全控制权;Everyone拥有读&运列和读权限;Power users拥有读&运列和读权限;SYSTEM同Administrators;Users拥有读&运列和读权限对于Program filesAdministrators拥有完全控制权;Creator owner拥有特殊权限;Power users有完全控制权;SYSTEM同Administrators;Terminal server users拥有完全控制权Users有读&运列和读权限 对于WinntAdministrators拥有完全控制权;Creator owner拥有特殊权限;Power users有完全控制权;SYSTEM同Administrators;Users有读&运列和读权限而非系统卷下的所有目录都将继承其父目录的权限也就是Everyone组完全控制权! 现在大家知道为什么我们刚刚在测试的时候能一帆风顺的取得管理员权限了吧?权限设置的太低了!一个人在访问网站的时候将被自动赋予IUSR用户它是隶属于Guest组的本来权限不高但是系统默认给的Everyone组完全控制权却让它"身价倍增"到最后能得到Administrators了 那么怎样设置权限给这台WEB服务器才算是安全的呢?大家要牢记一句话"最少的服务+最小的权限=最大的安全"对于服务不必要的话一定不要装要知道服务的运行是SYSTEM级的哦对于权限本着够用就好的原则分配就是了 对于WEB服务器就拿刚刚那台服务器来说我是这样设置权限的大家可以参考一下各个卷的根目录Documents and settings以及Program files只给Administrator完全控制权或者干脆直接把Program files给删除掉;给系统卷的根目录多加一个Everyone的读写权;给e:www目录也就是网站目录读写权 最后还要把cmdexe这个文件给挖出来只给Administrator完全控制权经过这样的设置后再想通过我刚刚的方法入侵这台服务器就是不可能完成的任务了可能这时候又有读者会问"为什么要给系统卷的根目录一个Everyone的读写权?网站中的ASP文件运行不需要运行权限吗?"问的好有深度是这样的系统卷如果不给Everyone的读写权的话启动计算机的时候计算机会报错而且会提示虚拟内存不足 当然这也有个前提虚拟内存是分配在系统盘的如果把虚拟内存分配在其他卷上那你就要给那个卷Everyone的读写权ASP文件的运行方式是在服务器上执行只把执行的结果传回最终用户的浏览器这没错但ASP文件不是系统意义上的可执行文件它是由WEB服务的提供者IIS来解释执行的所以它的执行并不需要运行的权限 深入了解权限背后的意义 经过上面的讲解以后你一定对权限有了一个初步了了解了吧?想更深入的了解权限那么权限的一些特性你就不能不知道了权限是具有继承性累加性 优先性交叉性的 继承性是说下级的目录在没有经过重新设置之前是拥有上一级目录权限设置的这里还有一种情况要说明一下在分区内复制目录或文件的时候复制过去的目录和文件将拥有它现在所处位置的上一级目录权限设置但在分区内移动目录或文件的时候移动过去的目录和文件将拥有它原先的权限设置 累加是说如一个组GROUP中有两个用户USERUSER他们同时对某文件或目录的访问权限分别为"读取"和"写入"那么组GROUP对该文件或目录的访问权限就为USER和USER的访问权限之和实际上是取其最大的那个即"读取"+"写入"="写入" 又如一个用户USER同属于组GROUP和GROUP而GROUP对某一文件或目录的访问权限为"只读"型的而GROUP对这一文件或文件夹的访问权限为"完全控制"型的则用户USER对该文件或文件夹的访问权限为两个组权限累加所得即"只读"+"完全控制"="完全控制" 优先性权限的这一特性又包含两种子特性其一是文件的访问权限优先目录的权限也就是说文件权限可以越过目录的权限不顾上一级文件夹的设置另一特性就是"拒绝"权限优先其它权限也就是说"拒绝"权限可以越过其它所有其它权限一旦选择了"拒绝"权限则其它权限也就不能取任何作用相当于没有设置 交叉性是指当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限且所设权限不一致时它的取捨原则是取两个权限的交集也即最严格最小的那种权限如目录A为用户USER设置的共享权限为"只读"同时目录A为用户USER设置的访问权限为"完全控制"那用户USER的最终访问权限为"只读" 权限设置的问题我就说到这了在最后我还想给各位读者提醒一下权限的设置必须在NTFS分区中才能实现的FAT是不支持权限设置的同时还想给各位管理员们一些建议 养成良好的习惯给服务器硬盘分区的时候分类明确些在不使用服务器的时候将服务器锁定经常更新各种补丁和升级杀毒软件 设置足够强度的密码这是老生常谈了但总有管理员设置弱密码甚至空密码 尽量不要把各种软件安装在默认的路径下 在英文水平不是问题的情况下尽量安装英文版操作系统 切忌在服务器上乱装软件或不必要的服务 牢记没有永远安全的系统经常更新你的知识 |