修改apache编译文件和隐藏方法
一般情况下,软件的漏洞信息和特定版本是相关的,因此,软件的版本号对***者来说是很有价值的。在默认情况下,系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息如:
[*]# curl -I localhost
[*]HTTP/1.1 403 Forbidden
[*]Date: Wed, 21 Jul 2010 13:09:33 GMT
[*]Server: Apache/2.2.9 (CentOS)
[*]Accept-Ranges: bytes
[*]Content-Length: 5043
[*]Connection: close
[*]Content-Type: text/html; charset=UTF-8
隐藏方法:
1、隐藏Apache版本号的方法是修改Apache的配置文件,如RedHat系的Linux默认是:
[*]vim /etc/httpd/conf/httpd.conf
分别搜索关键字ServerTokens和ServerSignature,修改:
ServerTokens OS 修改为 ServerTokens ProductOnly
ServerSignature On 修改为 ServerSignature Off
2、重启或重新加载Apache就可以了。
[*]apachectl restart
测试一下,如下:
[*]# curl -I 192.168.80.128:88
[*]HTTP/1.1 403 Forbidden
[*]Date: Wed, 21 Jul 2010 13:23:22 GMT
[*]Server: Apache
[*]Accept-Ranges: bytes
[*]Content-Length: 5043
[*]Connection: close
[*]Content-Type: text/html; charset=UTF-8
版本号与操作系统信息已经隐藏了。
3、上面的方法是默认情况下安装的Apache,如果是编译安装的,还可以用修改源码编译的方法:
进入Apache的源码目录下的include目录,然后编辑ap_release.h这个文件,你会看到有如下变量:
[*]
[*]#define AP_SERVER_BASEVENDOR “Apache Software Foundation”
[*]#define AP_SERVER_BASEPROJECT “Apache HTTP Server”
[*]#define AP_SERVER_BASEPRODUCT “Apache”
[*]#define AP_SERVER_MAJORVERSION_NUMBER 2
[*]#define AP_SERVER_MINORVERSION_NUMBER 2
[*]#define AP_SERVER_PATCHLEVEL_NUMBER 9
[*]#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
页:
[1]