处理扫描器扫出的漏洞,基本有四种方法:一是升级软件包到新版本(包括打补丁和整个替换升级),二是修改banner配置项(包括禁用banner和修改banner内容),三是添加白名单(包括主机防火墙和软件白名单),四是强制替换版本字符串。
具体到mysql,升级是比较麻烦的各种配置选项可能不兼容,多次探究基本没有确认没有banner配置项,添加白名单要整理比较费劲,今天试了强制替换版本字符串发现可行。
strings /usr/sbin/mysqld | grep 5.5.55
在第一步中查到的版本号为5.5.55所以我们这里grep 5.5.55,具体改为自己的版本号即可
sed -i 's/5.5.55/5.8.55/' /usr/sbin/mysqld
这里我们只需要替最开头查到的那个5.5.55后边/export开头的那些都不用管
service mysql restart
telnet 192.168.220.128 3306
可以看到banner中的版本号已成功修改由5.5.55变为5.8.55。使用nmap确认如下图
①在mysql5.5中启停使用的是server mysql start/stop而在之后的版本中使用的是service mysqld start/stop,由于我这里是5.5版本,开始没注意一直去改/usr/bin/mysql而不成功
后来查看rpm安装包有释放mysqld时,才想起service后接的其本质是/etc/init.d下的脚本而不是程序名--虽然一般来说这两者名称一般一样--这才去找/usr/sbin/mysqld修改
②还是一样要强调,初步看来这样强制修改后程序运行正常,但没经长久验证对功能和软件升级是否有影响,所以仅供参考