一般情况下,软件的漏洞信息和特定版本是相关的,因此,软件的版本号对***者来说是很有价值的。
在默认情况下,系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息如:
 

  1. [root@localhost tmp]# curl -I localhost
     
  2. HTTP/1.1 403 Forbidden
     
  3. Date: Wed, 21 Jul 2010 13:09:33 GMT
     
  4. Server: Apache/2.2.9 (CentOS)
     
  5. Accept-Ranges: bytes
     
  6. Content-Length: 5043
     
  7. Connection: close
     
  8. Content-Type: text/html; charset=UTF-8

隐藏方法


1、隐藏Apache版本号的方法是修改Apache的配置文件,如RedHat系的Linux默认是:
 

  1. vim /etc/httpd/conf/httpd.conf

分别搜索关键字ServerTokensServerSignature,修改:
 

ServerTokens OS 修改为 ServerTokens ProductOnly
ServerSignature On 修改为 ServerSignature Off

2、重启或重新加载Apache就可以了。
 

  1. apachectl restart

测试一下,如下:
 

  1. [root@localhost tmp]# curl -I 192.168.80.128:88
     
  2. HTTP/1.1 403 Forbidden
     
  3. Date: Wed, 21 Jul 2010 13:23:22 GMT
     
  4. Server: Apache
     
  5. Accept-Ranges: bytes
     
  6. Content-Length: 5043
     
  7. Connection: close
     
  8. Content-Type: text/html; charset=UTF-8

版本号与操作系统信息已经隐藏了。
3、上面的方法是默认情况下安装的Apache,如果是编译安装的,还可以用修改源码编译的方法:
进入Apache的源码目录下的include目录,然后编辑ap_release.h这个文件,你会看到有如下变量:
 


  1.  
  2. #define AP_SERVER_BASEVENDOR “Apache Software Foundation”
     
  3. #define AP_SERVER_BASEPROJECT “Apache HTTP Server”
     
  4. #define AP_SERVER_BASEPRODUCT “Apache”
     
  5. #define AP_SERVER_MAJORVERSION_NUMBER 2
     
  6. #define AP_SERVER_MINORVERSION_NUMBER 2
     
  7. #define AP_SERVER_PATCHLEVEL_NUMBER 9
     
  8. #define AP_SERVER_DEVBUILD_BOOLEAN 0

可以根据自己喜好,修改或隐藏版本号与名字。

本人修改的部分操作:

一、文件操作

1、修改文件:include/ap_release.h

#define AP_SERVER_BASEVENDOR “这里填写开发组织名,例如:Microsoft Corp.”
#define AP_SERVER_BASEPRODUCT “这里填写服务器软件名,例如:Microsoft-IIS”
#define AP_SERVER_MAJORVERSION “主版本,例如:6″
#define AP_SERVER_MINORVERSION “次版本,例如:0″
#define AP_SERVER_PATCHLEVEL “修正版本,例如:0″

2、修改文件:os/Unix/os.h

#define PLATFORM “这里填写操作系统的名称,例如:Win32″

3、修改文件:os/PLATFORM/os.h

#define PLATFORM “这里填写操作系统的名称,例如:Win32″

4、修改文件:modules/generators/mod_info.c

Search “Apache Server Information” replace with “这里填写在查看server-info现实的页面标题,例如:Microsoft-IIS Information”

5、修改文件:modules/generators/mod_status.c

Search “Apache Server Status” replace with “这里填写在查看server-status现实的页面标题,例如:Microsoft-IIS Status”

说明:

1、path/to/filename 表示要对这个文件进行操作
2、Search “A” replace with “B” 表示在文件之中搜索A,然后使用B替换

二、编译操作

按照一般正常步骤编译安装

结果:
/server-info:

Microsoft-IIS Information

Server Version: Microsoft-IIS/6.0/7.0 (Win32)

/server-status:

Apache Server Status for 127.0.0.1
Server Version: Microsoft-IIS/6.0/7.0 (Win32)
Server Built: Aug 17 2010 16:31:12

页面底部显示:(例如在以上两个测试和indexes情况之下)

Microsoft-IIS/6.0/7.0 (Win32) Server at 127.0.0.1 Port 80