您的位置:首页 > 编程语言 > ASP

WIN2K服务器安全,ASP木马普通防范权限提升

2014-03-09 13:12 429 查看
WIN2K服务器安全,ASP木马普通防范权限提升
作者:转贴 发表时间:2005-10-17 http://www.ft77.com/texo/article.asp?id=94&title=94
WIN2K的服务器通讯倚赖端口,服务器最好先筛选端口,步骤:

右键本地连接-属性-常规-高级-选项-TCP/IP筛选-属性

勾选 启动TCP/IP筛选-

TCP端口只允许21,80,3389,如果有WEBEASYMAIL之类的企业邮件软件,还必须开放25,110

UDP端口只允许53

协议允许 6,17

更改SERV-U的默认安装路径,安装到D,E,F随便,SERV-U的目录只给ADMINISTRATOR和SYSTEM权限的完全控制,下面是转载的防止本地提升漏洞

CODE: [Copy to clipboard]

漏洞简介:

漏洞是使用Serv-u本地默认管理端口,以默认管理员登陆新建域和用户来执行命令,Serv-u>3.x版本默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P,这是集成在Serv-u内部的,可以以Guest权限来进行连接,对Serv-u进行管理。

防止办法和对策:

一般防止方法:设置目录权限,通过去掉Web目录iusr用户的执行权限来防止使用Webshell来运行Exp程序。

对策:这种方法有一定的局限性,需要设置的目录很多,不能有一点疏漏,比如我就发现很多虚拟主机在C:\Documents and Settings\All Users\ Documents目录以及下边几个子目录Documents没有设置权限,导致可以在这个目录上传并运行Exp,这种目录还有x:\php,x:\perl等,因为这种目录都是everyone完全控制的。有些主机还支持php,pl,aspx等,这简直就是服务器的Serv-U灾难,^_^,运行程序更加方便。

高级一点的防止办法:修改Serv-u管理端口,用Ultraedit打开ServUDaemon.exe查找B6AB(43958的16进制),替换成自己定义的端口比如3930(12345),打开ServUAdmin.exe找到最后一个B6AB替换成3930(12345),启动Serv-u,现在本地管理端口就成了12345了:

TCP 127.0.0.1:12345 0.0.0.0:0 LISTENING

对策:对付这种也很简单,netstat –an,就能看到端口了,有人说netstat无法运行,其实你再上传个netstat.exe到可执行目录运行就ok了,然后修改一下Exp编译,上传运行就好了,我修改了一个可以自定义端口的Exp,运行格式:

USAGE: serv-u.exe port "command"

Example: serv-u.exe 43958 "net user xl xiaoxue /add"

更高级的防止办法:修改管理员名和密码,用Ultraedit打开ServUDaemon.exe查找Ascii:LocalAdministrator,和#l@$ak#.lk;0@P,修改成等长度的其它字符就可以了,ServUAdmin.exe也一样处理。

对策:这下默认的管理员连接不上了,还有办法么?嘿嘿,有的管理员安装Serv-u都是使用默认目录C:\Program Files\Serv-U安装,这个目录虽然不能写,也不能修改,但是默认iusr是可以读的,我们可以用webshell来下载ServUDaemon.exe,用Ultraedit打开分析一下,Serv-U的帐号密码就到手了,修改Exp编译上传运行,我们又胜利了。

ASP服务器最怕是被提升权限,获得SYSTEM甚至更高的

目前木马倚赖的三个组件分别是FileSystemObject,WScript.Shell,Shell.Application

FSO组件是大家熟知的,可爱又可恨……注销这个组件倒是好办法(regsvr32.exe scrrun.dll /u),但是想要服务器生成HTML之类的变成梦想了

眼下之计,只能限制ASP木马在当前目录执行,GUEST权限在可访问范围内活动……步骤:

CODE: [Copy to clipboard]

的一种方法,下文以 Windows 2000 Server 为例来说明。

  在服务器上打开资源管理器,用鼠标右键点击各个硬盘分区或卷的盘符,在弹出菜单中选择“属性”,选择“安全”选项卡,此时就可以看到有哪些帐号可以访问这个分区(卷)及访问权限。默认安装后,出现的是“Everyone”具有完全控制的权限。点“添加”,将“Administrators”、“Backup Operators”、“Power Users”、“Users”等几个组添加进去,并给予“完全控制”或相应的权限,注意,不要给“Guests”组、“IUSR_机器名”这几个帐号任何权限。然后将“Everyone”组从列表中删除,这样,就只有授权的组和用户才能访问此硬盘分区了,而
ASP 执行时,是以“IUSR_机器名”的身份访问硬盘的,这里没给该用户帐号权限,ASP 也就不能读写硬盘上的文件了。

  下面要做的就是给每个虚拟主机用户设置一个单独的用户帐号,然后再给每个帐号分配一个允许其完全控制的目录。

  如下图所示,打开“计算机管理”→“本地用户和组”→“用户”,在右栏中点击鼠标右键,在弹出的菜单中选择“新用户”:

  在弹出的“新用户”对话框中根据实际需要输入“用户名”、“全名”、“描述”、“密码”、“确认密码”,并将“用户下次登录时须更改密码”前的对号去掉,选中“用户不能更改密码”和“密码永不过期”。本例是给第一虚拟主机的用户建立一个匿名访问 Internet 信息服务的内置帐号“IUSR_VHOST1”,即:所有客户端使用 http://xxx.xxx.xxxx/ 访问此虚拟主机时,都是以这个身份来访问的。输入完成后点“创建”即可。可以根据实际需要,创建多个用户,创建完毕后点“关闭”:

  现在新建立的用户已经出现在帐号列表中了,在列表中双击该帐号,以便进一步进行设置:

  在弹出的“IUSR_VHOST1”(即刚才创建的新帐号)属性对话框中点“隶属于”选项卡:

  刚建立的帐号默认是属于“Users”组,选中该组,点“删除”:

  现在出现的是如下图所示,此时再点“添加”:

  在弹出的“选择 组”对话框中找到“Guests”,点“添加”,此组就会出现在下方的文本框中,然后点“确定”:

  出现的就是如下图所示的内容,点“确定”关闭此对话框:

  打开“Internet 信息服务”,开始对虚拟主机进行设置,本例中的以对“第一虚拟主机”设置为例进行说明,右击该主机名,在弹出的菜单中选择“属性”:

  弹出一个“第一虚拟主机 属性”的对话框,从对话框中可以看到该虚拟主机用户的使用的是“F:\VHOST1”这个文件夹:

  暂时先不管刚才的“第一虚拟主机 属性”对话框,切换到“资源管理器”,找到“F:\VHOST1”这个文件夹,右击,选“属性”→“安全”选项卡,此时可以看到该文件夹的默认安全设置是“Everyone”完全控制(视不同情况显示的内容不完全一样),首先将最将下的“允许将来自父系的可继承权限传播给该对象”前面的对号去掉:

  此时会弹出如下图所示的“安全”警告,点“删除”:

  此时安全选项卡中的所有组和用户都将被清空(如果没有清空,请使用“删除”将其清空),然后点“添加”按钮。

  将如图中所示的“Administrator”及在前面所创建的新帐号“IUSR_VHOST1”添加进来,将给予完全控制的权限,还可以根据实际需要添加其他组或用户,但一定不要将“Guests”组、“IUSR_机器名”这些匿名访问的帐号添加上去!

  再切换到前面打开的“第一虚拟主机 属性”的对话框,打开“目录安全性”选项卡,点匿名访问和验证控制的“编辑”:

  在弹出的“验证方法”对方框(如下图所示),点“编辑”:

  弹出了“匿名用户帐号”,默认的就是“IUSR_机器名”,点“浏览”:

  在“选择 用户”对话框中找到前面创建的新帐号“IUSR_VHOST1”,双击:

  此时匿名用户名就改过来了,在密码框中输入前面创建时,为该帐号设置的密码:

  再确定一遍密码:

  OK,完成了,点确定关闭这些对话框。

  经此设置后,“第一虚拟主机”的用户,使用 ASP 的 FileSystemObject 组件也只能访问自己的目录:F:\VHOST1 下的内容,当试图访问其他内容时,会出现诸如“没有权限”、“硬盘未准备好”、“500 服务器内部错误”等出错提示了。

另外两个组件:我们只要在注册表中把"shell.application"、"WSCRIPT.SHELL"脚本对象(因为它们都是用于创建脚本命令通道的)进行改名或删除,也就是限制系统对“脚本SHELL”的创建,这类ASP木马也就运行不起来了。

禁止WScript.Shell

注意:禁用此组件会让一些ASP程序不能运行,恢复的方法是去掉/U再执行一遍注册命令,一般服务器执行过regsvr32/u wshom.ocx就可以了

CODE: [Copy to clipboard]

将Windows scripting host卸载掉,具体方法是:我的电脑→控制面板→添加/删除程序→安装WINDOWS→附件→详细资料→Windows scripting host→确定。其实还有一种方法更简单,依次键入下面两段命令:regsvr32/u wshom.ocx回车、regsvr32/u wshext.dll回车,就可以把注册表中.wsh对象的注册值删掉。这样那些必须依*对象运行的病毒就因为找不着对象而无法运行下去。

最后是磁盘和文件夹的权限管理,经常有人问我他们C盘所有文件夹都被加了EVERYONE的完全控制,没有继承……要一个一个文件夹设置……汗

其实执行这个命令

CODE: [Copy to clipboard]

cacls c:\ /e /t /r everyone

就可以删除所有文件夹的EVERYONE用户

默认NYWHERE的用户特别注意C盘的

C:/documents and Settings/All Users/Application Data/Symantec/pcAnywhere

文件夹权限……

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: