在使用Nginx(或lnmp)做反向代理、集群或是做跨域配置、Apache(或lamp)和Tomcat做为应用使用时,其相关版本号软件名称信息泄露,此时攻击者会利用相应软件版本当前漏洞,进行有效的相应攻击

一、攻击示例

        截图tomcat为例(Nginx、Apache类似),攻击者有可能会故意访问一个不存的页面,来获取对应应用APP的名称版本号利用软件当前版本存在的漏洞进行攻击。

二、解决办法 

        把Nginx、Apache、Tomcat对应的版本号软件名称进行隐藏修改,其中Nginx、Apache需要编译安装前进行源文件内容修改来达到隐藏软件名称和版本号的目的,Tomcat解压之后进行文件修改来达到隐藏软件名称和版本号的目的。下面会对每一种应用服务进行版本号隐藏详细介绍

2.1.1、Nginx(或LNMP)

1、解压nginx安装包,并修改源文件参数

        [root@kafka01 core]# cd /root/nginx-1.21.4/src/core

        [root@kafka01 core]# vi nginx.h

        找到以下参数进行修改(举例说明可以根据实际情况进行修改

        [root@kafka01 http]# cd /root/nginx-1.21.4/src/http

        [root@kafka01 http]# vi ngx_http_header_filter_module.c

        [root@kafka01 http]# cd /root/nginx-1.21.4/src/http

        [root@kafka01 http]# vi ngx_http_special_response.c

        修改完成之后,再进行编译安装makemake install)。

 2、进入nginx.conf配置文件中进行web版本的隐藏

        [root@kafka01 nginx]# cd /usr/local/nginx/conf

        [root@kafka01 nginx]# vi nginx.conf

        重启nginx生效。 

3、测试软件版本号和软件名称隐藏结果

        [root@kafka01 nginx]# curl -I http://localhost

        从测试结果可以看出软件名称已经被改为我们自己定义的“Platform App”,并且版本号也消失不见。如果不在nginx.conf添加server_tokens off参数,此时会把之前自己自定义的版本号输出如下: 

        此时不管是不是输出版本号,对攻击者来说已经无法得知其软件的真正名称,从而也避免了利用软件名称查找露洞攻击的风险 

2.1.2、Apache(或LAMP)

1、解压http文件,并修改源文件参数

 1.1、隐藏应用名称和版本号

        [root@kafka01 include]# cd /root/httpd-2.4.1/include

        [root@kafka01 include]# vi ap_release.h

 1.2隐藏平台类型 

        [root@kafka01 include]# cd /root/httpd-2.4.1/os/unix

        [root@kafka01 include]# vi os.h

         保存以上文件之后,再进行编译安装makemake install)。

1.3验证修改结果

        [root@kafka01 apache]# curl -I http://localhost

        从结果中看出Server字段内容,已经改为我们自己自定义应用名称、版号和平台类型

        如果版本号和平台类型都不想让其获取的话,可以httpd.conf配置文件修改或是添加ServerSignature off”和“ServerTokens prod”这2个参数之后,重启httpd使其生效

        [root@kafka01 apache]# curl -I http://localhost

2.1.3、PHP信息隐藏 

        php信息隐藏相对来说,操作比较简单,只需要把“expose_php = On”改成“expose_php = Off即可

        [root@kafka01]# vi /etc/php.ini

        找到expose_php = On”改成“expose_php = Off”。

2.1.4、Tomcat

1、解压tomcat,并修改信息

1.1、隐藏命令行下的头部信息

        通过命令行获取http请求返回头部信息

        [root@kafka01 conf]# cd /usr/local/tomcat/conf

        [root@kafka01 conf]# vi server.xml

         用命令进行测试结果如下

         [root@kafka01 conf]# curl -I http://192.168.2.12:8080/index.html

1.2、修改网页展示版本信息 

        通过网页访问tomcat网站,测试页面错误页面包含Tomcat版本信息,此时可以用以下方面把相关信息进行隐藏。

        [root@kafka01 lib]# cd /usr/local/tomcat/lib

        [root@kafka01 lib]# jar -xf catalina.jar

        [root@kafka01 lib]# cd org/apache/catalina/util

        [root@kafka01 lib]# vi ServerInfo.properties

        再将修改后的信息压缩回jar包。

        [root@kafka01 lib]# jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

        或是直接catalina.jar下载下来,用压缩工具打开,进行文件内容的修改。

        重启Tomcat后所修改内容生效

1.3、用浏览器测试修改后的结果 

        当访问相关页面出现问题时,报错页面显示出的应用名称和版本号都是自己自定义的信息,避免了利用软件名称和版本号查找露洞攻击的风险。如下图所示

原文地址:https://blog.csdn.net/myself88129/article/details/130010929

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_40718.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注