一般情况下,软件的漏洞信息和特定版本是相关的,因此,软件的版本号对攻击者来说是很有价值的。 在默认情况下,系统会把Apache版本模块都显示出来(http返回头信息)。如果列举目录的话,会显示域名信息(文件列表正文),如:
[root@localhost tmp]# curl -I 192.168.80.128:88 HTTP/1.1 403 Forbidden Date: Wed, 21 Jul 2010 13:09:33 GMT Server: Apache/2.2.15 (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修改好的如下:
ServerTokens ProductOnly ServerSignature Off2、重启或重新加载Apache就可以了。 测试一下,如下:
[root@localhost tmp]# 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版本号与操作系统信息已经隐藏了。 下面的方法只适合于用源码编译安装的Apache版本,里面版本的信息可以自定义修改。 目的: 对Apache源码文件进行简单修改,以诱骗普通攻击者,或者自娱自乐! 方法:修改Apache的几个源代码文件,然后自己编译安装。 一、文件操作 1、修改文件:srcdir/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、修改文件:srcdir/include/os.h
#define PLATFORM “这里填写操作系统的名称,例如:Win32″3、修改文件:srcdir/os/PLATFORM/os.h
#define PLATFORM “这里填写操作系统的名称,例如:Win32″4、修改文件:srcdir/modules/generators/mod_info.c
Search “Apache Server Information” replace with “这里填写在查看server-info现实的页面标题,例如:Microsoft-IIS Information”5、修改文件:srcdir/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: July 26 2010 15:20:36页面底部显示:(例如在以上两个测试和indexes情况之下) Microsoft-IIS/6.0/7.0 (Win32) Server at 127.0.0.1 Port 80 PHP隐藏版本号的修改方法如下: php屏蔽浏览器头信 X-Powered-By 将php.ini中
expose_php = On改为:
expose_php = Off如果没有找到上面的代码,就新添加一个!