一、中招勒索病毒
突然发现网站不能提交数据了。以为是服务挂了,打开服务器发现,服务没挂,报了一个sql的错误。然
后打开数据库,发现数据库提示密码错误。通过服务器进入数据库,发现多了一张表 readme,内容大概是往
xxxx账户支付比特币,就可以把表跟数据还给你。通过了解得知,就算支付了, 应该也不会把表跟数据还给
你,因为大部分都是用一个sql脚本 删除了你的表跟数据,然后建了一张readme的表而已。
二、解决办法
- 幸好开启了mysql的binlog。 使用命令将binlog文件转换为sql文件,binlog编号越大代表为最新的记录,
- 可以通过创建时间来判断。
mysqlbinlog /var/lib/mysql/mysql-binlog.000001 > /var/lib/mysql/1.sql
如果是mysql 是docker服务 需要进入容器内容执行此命令
进入容器的命令为
docker exec -it mysql /bin/sh/
进去mysql安装位置
cd /var/lib/mysql
执行命令
mysqlbinlog /var/lib/mysql/mysql-binlog.000001 > /var/lib/mysql/1.sql
- 得到了sql文件查询 create命令 和drop 命令,果然找到了删除表跟创建readme表的命令。
找到执行这些破坏命令的前一行或者时间点。
3.根据行数或者时间节点 导出正常的恢复sql。
mysqlbinlog --start-position=0 --stop-position=1845 /var/lib/mysql/mysql-binlog.000001 > /var/lib/mysql/1.sql
mysqlbinlog --start-datetime='2021-01-01 09:00:00' --stop-datetime='2021-02-22 15:00:00' /var/lib/mysql/mysql-binlog.000001 > /var/lib/mysql/1.sql
- 进去mysql 命令面板 删除被破坏的表
mysql> drop database `order`;
mysql> drop database `PLEASE_READ_ME_VVV`;
-
根据初始化脚本建好对应的表
-
执行sql脚本恢复
mysql> source /var/lib/mysql/1.sql;
三、思考为什么会中招。
密码太简单了 关闭对外端口