如何隐藏mysql版本

网友投稿 1288 2023-11-13

如何隐藏mysql版本

本文小编为大家详细介绍“如何隐藏mysql版本”,内容详细,步骤清晰,细节处理妥当,希望这篇“如何隐藏mysql版本”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

如何隐藏mysql版本

隐藏mysql版本的方法:1、通过“mysql -uroot -p> select version();”命令查看当前mysql 版本;2、开启MySQL服务,添加防火墙策略;3、备份文件“mysqld.bak”;4、打开“/usr/sbin/mysqld”文件,并替换其中的版本信息即可。

隐藏MySQL/MariaDB真实版本信息

项目中,甲方对服务器做安全扫描,发现存在较多 MySQL 低版本漏洞,并要求修复。但考虑到业务的影响,不方便直接对当前版本做升级,且我们业务部署在内网环境,也做了网络访问限制,因此实际安全隐患较小。这里尝试寻找其他的方法进行规避,即修改 MySQL 的版本号,隐藏其真实的版本信息

探测MySQL/MariaDB版本信息

查看当前版本的方法有很多,常见的有:

服务器上执行 mysql -V

登录mysql,使用sql语句查询

mysql -uroot -p> select version();

没有登录权限的情况下,还可以使用 telnet 或 nmap 工具进行探测扫描,得到 mysql 的版本信息:

telnet

telnet [host] [port]

nmap

nmap -T4 -sC -sV -p [port] [ip]

隐藏MySQL真实版本信息

测试环境序号名称版本备注1Linux操作系统CentOS 7.6IP:192.168.64.1472MySQL数据库5.7.22rpm安装安装过程

下载安装 rpm 包

yum -y installwget telnet nmap net-toolswget -P /opt/mysql https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tartar -xf /opt/mysql/mysql-5.7.22-1.

el7.x86_64.rpm-bundle.tar -C /opt/mysqlcd /opt/mysqlls -lh /opt/mysql/

yum -y remove mariadb*

yum -y install

\

mysql-community-common-5.7.22-1.

el7.x86_64.rpm \

 mysql-community-libs-5.7.22-1.

el7.x86_64.rpm \

mysql-community-client-5.7.22-1.

el7.x86_64.rpm \

 mysql-community-server-5.7.22-1.el7.x86_64.rpm

2. 开启 MySQL 服务,添加防火墙策略

systemctl start mysqld && systemctl status

mysqld

firewall-cmd --permanent --add-port=3306/tcpfirewall-cmd --reloadfirewall-cmd --list-all

3. 设置密码

passwd=`grep password /var/log/mysqld.log|awk {print $NF}`mysqladmin -u root -p$passwd password Aa123456.

4. 设置远程连接

mysql -uroot -pAa123456.

mysql> use mysql;mysql>select user,host from user;mysql> update user set host=% where user=root;mysql> flush privileges;mysql>select user,host from user;

5. 查看当前版本

mysql> select version()

;mysql> \q

mysql -V版本信息探测telnet 192.168.64.147 3306nmap -T4 -sC -sV -p 3306 192.168.64.147修改版本信息

备份文件

cp/usr/bin/mysql /usr/bin/mysql.bakcp /usr/sbin/mysqld /usr/sbin/mysqld.bak

2. 编辑二进制文件,替换其中的版本信息

如果只想对外部探测 MySQL 的真实版本信息进行隐藏,只需改 /usr/sbin/mysqld 文件。 ❗️❗️❗️注意:版本号不可为空或删减其他信息,否则可能导致服务无法启用!vi /usr/bin/mysql# 搜索关键字“Linux”快速定位,修改版本号,建议改为官网最新的稳定版本^@fwrite^@\0^@\t^@\n^@\\^@ERROR^@ %d (%s)^@ at line %lu^@ in file: %s^@ERROR %d (%s): ^@ERROR %d: ^@ERROR: ^@UNKNOWNUSER^@MysqlClient^@LOGNAME^@LOGIN^@SUDO_USER^@Linux^@5.7.22^@x86_64^@Show warnings enabled.^@Showwarnings disabled.^@Aborted^@Bye^@Writing history-file %s# 参考案例:^@fwrite^@\0^@\t^@\n^@\\^@ERROR^@ %d (%s)^@ at line %lu^@in file: %s^@ERROR %d (%s): ^@ERROR %d: ^@ERROR: ^@UNKNOWN USER^@MysqlClient^@LOGNAME^@LOGIN^@SUDO_USER^@Linux^@5.7.37^@x86_64^@Show warnings enabled.^@Show warnings disabled.^@Aborted^@Bye^@Writing history-file %s

vi /usr/sbin/mysqld

# 搜索关键字“--language”快速定位,修改版本号,建议改为官网最新的稳定版本H<8b>^P1öéz¬,ÿ1Òëõ^@^@H<83>ì^HH<83>Ä^HÃ^@^@^@^@^@^@^@^@^@^@^@^A^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@%s: %s^@MYSQL_AUDIT_GENERAL_ERROR^@OFF^@BOTH^@NO_AUTO_CLEAR^@NO_INTERNAL_LOOKUP^@Unknown^@tcp^@MYSQL_TCP_PORT^@/var/lib/mysql/mysql.sock^@MYSQL_UNIX_PORT^@Unable to delete pid file: %s^@%.3f^@.lower-test^@.LOWER-TEST^@Cant create test file %s^@Shuttingdown slave threads^@--lc-messages-dir^@--language/-l^@--binlog_max_flush_queue_time^@5.7.22^@Linux^@%s  Ver %s for %s on %s (%s)# 参考案例:H<8b>^P1öéz¬,ÿ1Òëõ^@^@H<83>ì^HH<83>Ä^HÃ^@^@^@^@^@^@^@^@^@^@^@^A^@^B^@^@^@^@^@^@^@^@^@^@^@^@^@%s: %s^@MYSQL_AUDIT_GENERAL_ERROR^@OFF^@BOTH^@NO_AUTO_CLEAR^@NO_INTERNAL_LOOKUP^@Unknown^@tcp^@MYSQL_TCP_PORT^@/var/lib/mysql/mysql.sock^@MYSQL_UNIX_PORT^@Unable to delete pid file: %s^@%.3f^@.lower-test^@.LOWER-TEST^@Cant create test file %s^@Shutting down slave threads^@--lc-messages-dir^@--language/-l^@--binlog_max_flush_queue_time^@5.7.37^@Linux^@%s  Ver %s for %s on %s (%s)

3. 重启服务

systemctl restart mysqld

systemctl status mysqldnetstat -nplt |grep mysqld

4. 确认版本

mysql -Vmysql -h 192.168.64.147 -uroot -pAa123456.mysql> select version();mysql> \q

5. 其他业务相关的测试

版本信息复测telnet 192.168.64.147 3306nmap -T4 -sC -sV -p 3306 192.168.64.147

隐藏MariaDB真实版本信息

测试环境序号名称版本备注1Linux操作系统CentOS 7.6IP:192.168.64.1472MariaDB数据库5.5.68rpm安装安装过程

yum安装

yum -y install mariadb-servertelnet nmap net-tools

2. 开启 MySQL 服务,添加防火墙策略

systemctl start mariadb && systemctl status

mariadb

firewall-cmd --permanent --add-port=3306/tcpfirewall-cmd --reloadfirewall-cmd --list-all

3. 设置密码和远程连接

mysqladmin-u root password"Aa123456."

mysql -uroot -pAa123456.

MariaDB [(none)]> use mysql;MariaDB [mysql]> selectuser,host from user;MariaDB [mysql]> update user set host=% where user=root;MariaDB [mysql]> flush privileges;MariaDB [mysql]> select user,host from user;

4. 查看当前版本

MariaDB [mysql]> select version();MariaDB

[mysql]> \q

mysql -V版本信息探测telnet 192.168.64.147 3306nmap -T4 -sC -sV -p 3306 192.168.64.147修改版本信息

备份文件

cp/usr/bin/mysql /usr/bin/mysql.bakcp /usr/libexec/mysqld /usr/libexec/mysqld.bak

2. 编辑二进制文件,替换其中的版本信息

如果只想对外部探测 MariaDB 的真实版本信息进行隐藏,只需改 /usr/libexec/mysqld 文件。 ❗️❗️❗️注意:版本号不可为空或删减其他信息,否则可能导致服务无法启用!vi /usr/bin/mysql# 搜索关键字“-MariaDB”快速定位,修改版本号,建议改为官网最新的稳定版本^@KILL %s%lu^@ERROR^@ at line %lu^@ in file: %s^@ERROR %d (%s)^@ERROR %d^@Linux^@5.5.68-MariaDB^@readline^@x86_64^@vi^@EDITOR^@VISUAL^@Command %.40s failed^@Showwarnings disabled.^@Show warnings enabled.^@Usage: \! shell-command^@Charset changed^@Charset is not found^@showdatabases^@show tables^@%.64s.%.64s^@*** NONE ***^@Connection id:    %lu^@Current database: %.128s# 参考案例:^@KILL%s%lu^@ERROR^@ at line %lu^@ in file: %s^@ERROR %d (%s)^@ERROR %d^@Linux^@10.7.3-MariaDB^@readline^@x86_64^@vi^@EDITOR^@VISUAL^@Command %.40s failed^@Show warnings disabled.^@Show warnings enabled.^@Usage: \! shell-command^@Charset changed^@Charset is not found^@show databases^@show tables^@%.64s.%.64s^@*** NONE ***^@Connection id:    %lu^@Current database: %.128s

vi /usr/libexec/mysqld

# 同样通过搜索关键字“-MariaDB”快速定位,修改版本号,建议改为官网最新的稳定版本^@CLOSE_CONNECTION^@unauthenticated^@unconnected^@Error in accept^@5.5.68-MariaDB^@x86_64^@Linux^@%s  Ver %s for %s on %s (%s)# 参考案例:^@CLOSE_CONNECTION^@unauthenticated^@unconnected^@Error in accept^@10.7.3-MariaDB^@x86_64^@Linux^@%s  Ver %s for %s on %s (%s)

3. 重启服务

systemctl restart mariadb

systemctl status mariadbnetstat -nplt |grep mysqld

4. 确认版本

mysql

-V

mysql -h 192.168.64.147

-uroot -pAa123456.

MariaDB [(none)]> select version();MariaDB [(none)]> \q

5. 其他业务相关的测试

版本信息复测

为防止探测过程中出现错误连接次数太多导致IP被锁定,建议先提高允许的max_connection_errors数量;

或使用清楚缓存的方法,把计数清理掉mysql -h 127.0.0.1

-uroot

MariaDB [(none)]> show global variables like%max_connect_errors%;MariaDB [(none)]> set global max_connect_errors=1000;MariaDB[(none)]> show global variables like %max_connect_errors%;MariaDB [(none)]> flush hosts;MariaDB [(none)]> \q

复测结果

telnet 192.168.64.147 3306nmap -T4 -sC -sV -p 3306 192.168.64.147

读到这里,这篇“如何隐藏mysql版本”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:怎样设计数据库扩展性好?让你的数据库支持业务增长
下一篇:如何增加mysql内存
相关文章