记录中招勒索病毒及其解决过程

一、中招勒索病毒

突然发现网站不能提交数据了。以为是服务挂了,打开服务器发现,服务没挂,报了一个sql的错误。然 后打开数据库,发现数据库提示密码错误。通过服务器进入数据库,发现多了一张表 readme,内容大概是往 xxxx账户支付比特币,就可以把表跟数据还给你。通过了解得知,就算支付了, 应该也不会把表跟数据还给 你,因为大部分都是用一个sql脚本 删除了你的表跟数据,然后建了一张readme的表而已。

二、解决办法

  1. 幸好开启了mysql的binlog。 使用命令将binlog文件转换为sql文件,binlog编号越大代表为最新的记录,
  2. 可以通过创建时间来判断。
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
  1. 得到了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
  1. 进去mysql 命令面板 删除被破坏的表
mysql> drop database `order`;
mysql> drop database `PLEASE_READ_ME_VVV`;
  1. 根据初始化脚本建好对应的表
  2. 执行sql脚本恢复
mysql> source /var/lib/mysql/1.sql;

三、思考为什么会中招。

密码太简单了 关闭对外端口
经验分享 程序员 微信小程序 职场和发展