jericho0702 发表于 2018-11-27 12:05:58

修改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]
查看完整版本: 修改apache编译文件和隐藏方法