ASP.NET木马及Webshell安全解决方案
文章简介:本文将为大家介绍在Microsoft Win系列的2003SERVERIIS6.0中如何简单快速解决ASP.NET中的危险漏洞与隐患对WEB服务器系统的安全威胁之详细防范设置步骤;读完本文,您将可以使您的网站服务器免去ASP.NET木马、Webshell所面对的提升权限、跨站攻击、甚至危害到系统安全的威胁。
文章简介:本文将为大家介绍在Microsoft Win系列的2003SERVERIIS6.0中如何简单快速解决ASP.NET中的危险漏洞与隐患对WEB服务器系统的安全威胁之详细防范设置步骤;读完本文,您将可以使您的网站服务器免去ASP.NET木马、Webshell所面对的提升权限、跨站攻击、甚至危害到系统安全的威胁。
ASP木马、Webshell之安全防范解决办法正文内容:
(注意:本文所讲述之设置方法与环境:适用于Microsoft Windows Server 2003SERVERIIS6.0)
引子:大家都知道网上出现过诸如《asp.net虚拟主机的重大隐患》等类似介绍Asp.Net的漏洞以及相应的黑客攻击办法的文章,以及诸如Webadmin.aspx类Asp.Net的Webshell,如果您拿去到您的asp.net虚拟主机上测试时您就知道,这东东对C盘有读取权限,以及对整个硬盘都有修改、删除权限;那这样的话,我们的网站、我的服务器还有什么安全可言?在黑客频频攻击的今天,我们不能不为我们的服务器而担忧...
漏洞原因:大家知道ASP中常用的标准组件:FileSystemt,这个组件为ASP提供了强大的文件系统访问能力,可以对服务器硬盘上的任何有权限的目录和文件进行读写、删除、改名等操作。FSO对象来自微软提供的脚本运行库scrrun.dll中。而在Asp.Net中这个问题仍然存在,并且更加难以解决;因为.Net中对系统IO操作功能更加强大,如:组件不再需要用Regsvr32来注册,而是直接在bin目录下就可以直接用了,所以这些功能对开发Asp.Net程序有很大方便是,但却使安全变得更为复杂了....(需进一步了解可参考《asp.net虚拟主机的重大隐患》原文)
解决方案:
大家都知道,Asp类木马可以通过对IIS中的虚拟主机采用独立匿名用户来控制FSO组件的安全,让其只能在站类活动,而不能跨站或者危害到其它硬盘的数据(注:如果您不明白可以参考一下本人以前的两篇文章《FSO安全隐患解决办法》;《ASP木马Webshell之安全防范解决办法》)Asp的安全问题与设置这里不再作讨论,下面我们开始着手Asp.Net木马/WebShell防范方法的讲解:
一、在IIS6.0中,WEB应用程序的工作进程为以进程标识“NetworkService”运行。而在IIS5.0中,进程外WEB应用程序则是以“IWAM_服务器名”用户运行行,这个User是普通的本地Guests用户。网上有部份人提出针对此问题用Microsoft.NETFrameworkConfigration设置System.io的对目录读取的权限,但很遗憾经过我们测试没有成功,可能是.netframework1.1机制改了?
Network Service 是WindowsServer2003中的内置帐户。了解IIS5.0上的本地用户帐户(IUSR和IWAM)与这个内置帐户之间的区别是非常重要的。Windows操作系统中的所有帐户都分配了一个SID(安全标识:SecurityID)。服务器是根据SID,而不是与SID相关的名称来识别服务器上所有帐户的,而我们在与用户界面进行交互时,则是使用名称进行交互的。服务器上创建的绝大部分帐户都是本地帐户,都具有一个唯一的SID,用于标识此帐户隶属于该服务器用户数据库的成员。由于SID只是相对于服务器是唯一的,因此它在任何其他系统上无效。所以,如果您为本地帐户分配了针对某文件或文件夹的NTFS权限,然后将该文件及其权限复制到另一台计算机上时,目标计算机上并没有针对这个迁移SID的用户帐户,即使其上有一个同名帐户也是如此。这使得包含NTFS权限的内容复制可能出现问题。内置帐户是由操作系统创建的、一类较为特别的帐户或组,例如System帐户、NetworkService和Everyone组。这些对象的重要特征之一就是,它们在所有系统上都拥有一个相同的、众所周知的SID。当将分配了NTFS权限的文件复制到内置帐户时,权限在服务器之间是有效的,因为内置帐户的SID在所有服务器上都是相同的。WindowsServer2003 服务中的 Network Service帐户是特别设计的,专用于为应用程序提供访问网络的足够权限,而且在IIS6.0中,无需提升权限即可运行Web应用程序。这对于IIS安全性来说,是一个特大的消息,因为不存在缓冲溢出,怀有恶意的应用程序无法破译进程标识,或是对应用程序的攻击不能进入System用户环境。更为重要的一点是,再也不能形成针对System帐户的“后门”,例如,再也无法通InProcessIsapiApps元数据库项利用加载到Inetinfo的应用程序。我们已经简单的介绍了一下ASP.NET中关于文件IO系统的漏洞的防治方法,这一方法有些繁琐,但是却可以从根本上杜绝一些漏洞,我们讨论的只是很少的一部分,更多的解决放法需要大家共同来探索、学习。(AD^_^:游刃在技术鬼神边缘,打造服务器安全神话!创世纪网络技术前瞻,成就互联网革命先驱!服务器安全讨论区[S.S.D.A])
【作者:佚名 来源:比特网】
(责任编辑:和讯网站)