修改IIS的Banner隐藏操作系统版本

简介: 构建高安全级别的主机系统的时候,对于NT系统往往有一个很尴尬的地方就是IIS的返回BANNER会很容易的泄露当前主机上NT的版本。

构建高安全级别的主机系统的时候,对于NT系统往往有一个很尴尬的地方就是IIS的返回BANNER会很容易的泄露当前主机上NT的版本。比如我们可以简单的TELNET到对方的80端口用GET命令来查看下结果:

 

     
HTTP/1.1 400 Bad Request
Server: Microsoft-IIS/5.0
Date: Wed, 31 Dec 1997 20:37:29 GMT
Content-Type: text/html
Content-Length: 87

<html><head><title>Error</title></head>
<body>The parameter is incorrect. </body>
</html>   



 

 

 

 

 

又或者FTP过去看到:

     
Connected to 127.0.0.1.
220 sql Microsoft FTP Service (Version 5.0).
User (127.0.0.1:(none)):   



 

 

TELNET到对方的25 端口去发信的时候,会出现:

     
220 sql Microsoft ESMTP MAIL Service, Version: 5.0.2195.4453 ready at  Thu, 1 Ja
n 1998 04:47:48 +0800   



 

到没有服务器会很老实的告诉我们它是IIS5.0,结果全世界都知道它是WIN2000了。也许你很费力安装防火墙然后禁止了ICMP的数据包,但IIS的WEB FTP SMTP NNTP还是会很轻易的把秘密给泄露出去。讨厌的是现在很多漏洞扫描和安全评估系统也会根据服务器所返回的标志来自动判断服务器的版本,然后从后台调用相应的漏洞资料数据库来调整下一步的扫描策略,最后在报告里还要说上一句告诉我们这是属于低风险的安全漏洞,实在是可恶。

其实虽然在IIS的管理器里面并没有提供给我们修改和隐藏BANNER的工具,但我们还是可以通过修改相应的DLL文件来实现的,当然这需要一点小技巧,可是并不复杂。

首先我们需要知道存放IIS BANNER的DLL文件都是放在C:/WINNT/SYSTEM32/INETSRV/ 目录下面的,其中对应关系是:

WEB是:C:/WINNT/SYSTEM32/INETSRV/W3SVC.DLL

FTP是: C:/WINNT/SYSTEM32/INETSRV/FTPSVC2.DLL

SMTP是:C:/WINNT/SYSTEM32/INETSRV/SMTPSVC.DLL

我们可以用UltraEdit将他们打开,然后查找我们想要找的BANNER的关键字,例如IIS的WEB就是要找:Microsoft-IIS/5.0 ,

然后直接修改成我们想要修改成的样子,这个可以随你高兴了:)然后保存就好,但需要注意的地方就是:

1 在修改的时候请停止IIS的服务,可以用iisreset /stop 。

2 由于2000系统后台的文件保护机制的作用,当系统一旦发现重要的DLL文件被修改后就会尝试用%SYSTEMROOT%/system32/dllcache 目录下的备份文件来进行恢复,所以在修改前我们还需要事先删除%SYSTEMROOT%/system32/dllcache目录下的同名文件。

当然除了以上的手动修改以外,其实还有人写过一个相应的小工具来完成这件事情的,使用和操作上就更简单了,下面给大家介绍下:


完成后WINDOWS会出来一个对话框告诉你,系统文件被更改需要安装光盘恢复,不用理它点取消就好了。



 


 


呵呵 这些小工具可以从我的站点( www.isfocus.net) 下载,使用上没什么可说的。注意的是一样先要自己事先停止IIS服务,删除DLLCACHE里的备份文件。




但我还是比较喜欢自己来修改DLL文件,感觉这样的自由更大一些,可以改的地方也更多。

修改以后的BANNER成了这个样子:

     
HTTP/1.1 400 Bad Request
    www.isfocus.net
Date: Wed, 31 Dec 1997 21:11:41 GMT
Content-Type: text/html
Content-Length: 87

<html><head><title>Error</title></head>
<body>The parameter is incorrect. </body>   </html>


可以发现修改后的BANNER已经不再出现Microsoft-IIS/5.0的字样了。

不过老实说,想要完全隐藏还是不太现实,就我来看IIS和APACHE返回的代码格式实在是差的太远了。

APACHE是这个样子的:

  <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>501 Method Not Implemented</TITLE>
</HEAD><BODY>
<H1>Method Not Implemented</H1>
get to /dd.htm not supported.<P>
Invalid method in request get /dd.htm<P>
<HR>
<ADDRESS>Apache
/1.3.14 Server at localhost Port 8080</ADDRESS>
</BODY></HTML>   


好象是非常杂乱无章的,有经验的入侵者还是可以通过这些辨认出来那些是经过修改后的IIS。其他FTP和SMTP的修改部分是一样,这里就不再多说了。总结一句不要轻易的泄露你的系统信息,对于真正的入侵尽量拖延和扰乱入侵者的视线。
目录
相关文章
|
7月前
|
编解码 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)1
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)
403 1
|
27天前
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
4月前
|
存储 编解码 Ubuntu
在Linux中,如何选择操作系统版本?
在Linux中,如何选择操作系统版本?
|
7月前
|
存储 Linux
linux查看系统版本、内核信息、操作系统类型版本
linux查看系统版本、内核信息、操作系统类型版本
323 9
|
7月前
|
编解码 开发工具 Android开发
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
Android获取设备各项信息(设备id、ip地址、设备名称、运行商、品牌、型号、分辨率、处理器、国家码、系统语言、网络类型、oaid、android版本、操作系统版本、mac地址、应用程序签名..)2
444 2
|
4月前
|
安全 C#
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
【Azure 应用服务】在安全漏洞扫描中发现有泄露服务器IIS版本的情况,如何实现屏蔽服务版本号信息呢?
161 1
|
4月前
|
Ubuntu 安全 Unix
在Linux中,如何选择 Linux 操作系统版本?
在Linux中,如何选择 Linux 操作系统版本?
|
5月前
|
Windows 内存技术
nvm 管理和切换 node版本(windows操作系统)
nvm 管理和切换 node版本(windows操作系统)
86 0
|
7月前
|
算法 Linux 调度
根基已筑!Anolis OS 23.1 预览版本搭载 Linux 6.6 内核和工具链升级完成
Anolis OS 23.1 对软件包的选择和组合进行了重新规划与决策,满足更为广泛的应用场景需求。