构建高安全级别的主机系统的时候对于NT系统往往有一个很尴尬的地方就是IIS的返回BANNER会很容易的洩露当前主机上NT的版本比如我们可以简单的TELNET到对方的端口用GET命令来查看下结果
HTTP/ Bad Request
Server: MicrosoftIIS/
Date: Wed Dec :: GMT
ContentType: text/html
ContentLength:
<html><head><title>Error</title></head>
<body>The parameter is incorrect </body>
</html>
又或者FTP过去看到
Connected to
sql Microsoft FTP Service (Version )
User (:(none)):
TELNET到对方的 端口去发信的时候会出现
sql Microsoft ESMTP MAIL Service Version: ready atThu Ja
n :: +
看到没有服务器会很老实的告诉我们它是IIS结果全世界都知道它是WIN了也许你很费力安装防火墙然后禁止了ICMP的数据包但IIS的WEB FTP SMTP NNTP还是会很轻易的把秘密给洩露出去讨厌的是现在很多漏洞扫描和安全评估系统也会根据服务器所返回的标志来自动判断服务器的版本然后从后台调用相应的漏洞资料数据库来调整下一步的扫描策略最后在报告里还要说上一句告诉我们这是属于低风险的安全漏洞实在是可恶
其实虽然在IIS的管理器里面并没有提供给我们修改和隐藏BANNER的工具但我们还是可以通过修改相应的DLL文件来实现的当然这需要一点小技巧可是并不复杂
首先我们需要知道存放IIS BANNER的DLL文件都是放在C:\WINNT\SYSTEM\INETSRV\ 目录下面的其中对应关系是
WEB是C:\WINNT\SYSTEM\INETSRV\WSVCDLL
FTP是 C:\WINNT\SYSTEM\INETSRV\FTPSVCDLL
SMTP是C:\WINNT\SYSTEM\INETSRV\SMTPSVCDLL
我们可以用UltraEdit将他们打开然后查找我们想要找的BANNER的关键字例如IIS的WEB就是要找MicrosoftIIS/
educitycn/img_///jpg>然后直接修改成我们想要修改成的样子这个可以随你高兴了)然后保存就好但需要注意的地方就是
在修改的时候请停止IIS的服务可以用iisreset /stop
由于系统后台的文件保护机制的作用当系统一旦发现重要的DLL文件被修改后就会尝试用%SYSTEMROOT%\system\dllcache 目录下的备份文件来进行恢复所以在修改前我们还需要事先删除%SYSTEMROOT%\system\dllcache目录下的同名文件
当然除了以上的手动修改以外其实还有人写过一个相应的小工具来完成这件事情的使用和操作上就更简单了下面给大家介绍下
educitycn/img_///jpg>educitycn/img_///jpg>educitycn/img_///jpg>注意的是一样先要自己事先停止IIS服务删除DLLCACHE里的备份文件
完成后WINDOWS会出来一个对话框告诉你系统文件被更改需要安装光盘恢复不用理它点取消就好了
educitycn/img_///jpg> educitycn/img_///jpg>修改以后的BANNER成了这个样子
HTTP/ Bad Request
Date: Wed Dec :: GMT
ContentType: text/html
ContentLength:
<html><head><title>Error</title></head>
<body>The parameter is incorrect </body> </html>
可以发现修改后的BANNER已经不再出现MicrosoftIIS/的字样了
不过老实说想要完全隐藏还是不太现实就我来看IIS和APACHE返回的代码格式实在是差的太远了
APACHE是这个样子的
<!DOCTYPE HTML PUBLIC //IETF//DTD HTML //EN>
<HTML><HEAD>
<TITLE> Method Not Implemented</TITLE>
</HEAD><BODY>
<H>Method Not Implemented</H>
get to / not supported<P>
Invalid method in request get /<P>
<HR>
<ADDRESS>Apache
/ Server at localhost Port </ADDRESS>
</BODY></HTML>