首页 > 开发 > IIS > 正文

远程分析win2003 IIS安全设置第2/2页

2020-07-28 15:47:01
字体:
来源:转载
供稿:网友

要确定NTLM选项是否开启则可以向IIS发送如下请求

GET / HTTP/1.1

Host: iis-server

Authorization: NegotiateTlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAA=

同样,如果返回401消息,则说明支持NTLM,返回200说明不NTLM认证选项没有开启。

对于大多数网站来说,这两种认证方式都是不需要开起来的,他们有可能泄露一些服务器的重要信息。


泄露内部IP地址信息


如果IIS服务器在一个使用NAT的防火墙里面的话,通常都有个内部地址如10.x.x.x。

如果IIS开启了基本认证选项,那么发送如下一个简单的请求就可以得到服务器的内部IP:

GET / HTTP/1.1

Host:

Authorization: Basic c3lzdGVtOm1hbmFnZXIA

服务器将返回一个如下响应:

HTTP/1.1 401 Access Denied

Server: Microsoft-IIS/5.0

Date: Fri, 01 Mar 2002 15:45:32 GMT

WWW-Authenticate: Basic realm="10.1.1.2"

Connection: close

Content-Length: 3245

Content-Type: text/html

那个10.1.1.2就是机器的内部ip地址,本来realm的值是客户端提供给的一个主机头,但这里它是空的,所以IIS就选择了本机的IP地址来代替。同样的,利用PROPFIND,WRITE,MKCOL等请求的返回信息,也能泄露主机的一些信息,如我们向服务器提请下面这样一个请求:

PROPFIND / HTTP/1.1

Host:

Content-Length: 0

在IIS配置成使用主机名(见后)的情况下,则不会暴露主机的IP地址,但是会暴露NetBIOS名。事实上我们可以利用IIS的认证获得更多的信息,如所在域的名字,方法是向服务器发送如下带NTLM认证的请求:

GET / HTTP/1.1

Host: iis-server

Authorization: NegotiateTlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAA

服务器会返回一个信息:

HTTP/1.1 401 Access Denied

Server: Microsoft-IIS/5.0

Date: Fri, 01 Mar 2002 16:24:58 GMT

WWW-Authenticate: Negotiate TlRMTVNTUAACAAAADAAMADAAAAAFgoKgeGvyVuvy67U
AAAAAAAAAAEQARAA8AAAAUwBDAFkATABMAEEAAgAMAFMAQwBZAEwATABBAAEA
DABTAEMAWQBMAEwAQQAEAAwAUwBDAFkATABMAEEAAwAMAFMAQwBZAEwATABB
AAAAAAA=

Content-Length: 3245

Content-Type: text/html

那一长串字符就包含了主机名和NT所在域的名字的base 64 编码。

临时解决方法:在cmd下进入c:/inetpub/adminscripts或者是adminiscript所在目录执行一下命令

adsutil set w3svc/UseHostName True

net stop iisadmin /y

net start w3svc


默认应用程序映射判断


判断默认映射是否存在比较简单,这里只简单的给出了在映射存在的情况下对于相应请求的响应:

扩展名:  .printer

请求:   http://iis-server/foo.printer

响应:  HTTP 500 - 内部服务器错误


扩展名:.idc

请求: http://iis-server/foo.idc

响应: code 500 Internal Server Error


扩展名:.idq

请求: http://iis-server/foo.idq
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表