首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >服务器被黑,MySQL 数据库遭比特币勒索!该如何恢复?

服务器被黑,MySQL 数据库遭比特币勒索!该如何恢复?

原创
作者头像
PHP开发工程师
修改2021-04-22 14:34:37
修改2021-04-22 14:34:37
12.3K0
举报
文章被收录于专栏:thinkphp+vuethinkphp+vue

​大纲 1.经过 2.追查 3.恢复数据库 4.安全设置 5.总结

经过 2020-11-23 早上十点左右,和往常一样打开 Navicat 连接数据库。打开一脸懵逼,库里面只有一张 Waring 表。表内容如下:

🤦‍♂️ 哦豁~ 数据库被黑了。还好是刚建的测试服务器,没多少数据。先看看 0.0175 比特币现在值多少软妹币。👇

换算成人民币是 2196 元,如果是生产环境上估计就想着要交钱了。这里要切记,一定不要付款!老黑们指不定没有给你备份。

追查 看看老黑们有没有留下什么痕迹。

下面是数据库连接日志👇

通过查看日记发现,2020-11-22T18:39:43.674987Z这个时间有一个来源是波兰的 ip 多次尝试使用 root 账户登录。

日志上面记录的时间是世界协调时间,转换成本地时间就是2020-11-23 02:39:43,Waring 表插入的时间是2020-11-23 02:40:43,这就对得上了。说明是 31.179.142.158 这个 ip 在 23 号凌晨 2 点 40 分通过暴力破解登录的。

然而,,知道了也没辙并不能找到人。🤨

由于是测试服务器,数据库都是刚建的也没有备份,重建的话也是麻烦,所以尝试有没有方法补救一下,最好是能恢复回来。

恢复数据库 问了一下社区的朋友,如果数据库有开启 binlog 那就还有恢复的可能。

用宝塔建的数据库默认都会开启 binlog 。

进入服务器内找到了 bin 文件。👇

由于是二进制文件,我们需要转成sql文件再导出来看一下。

代码语言:javascript
复制
$ /www/server/mysql/bin/mysqlbinlog  /www/server/data/mysql-bin.000005 > /www/1.sql

下载到本地,用 vs 打开看一下内容。

直接滑到底,发现老黑是在 at 4126964 这里开始进行操作的。直接就 DROP 了,果然没有职业操守啊🤙

下面通过 binlog 恢复一下数据库。

代码语言:javascript
复制
 # --start-position="219" 第一次操作库的偏移量
 # --stop-position="4124564" 找一个卸库前的偏移量
/www/server/mysql/bin/mysqlbinlog --no-defaults /www/server/data/mysql-bin.000005 --start-position="4" --stop-position="4124564" | /www/server/mysql/bin/mysql -u root -p

回车->输入密码->回车

检查数据库发现表都还原回来了👏🏻

同理,如果是自己不小心删库的同学,也可以尝试用同样的方法恢复。

安全设置 这次应该是被脚本扫到的,吃一堑长一智,赶紧把安全搞一下。

1: 修改 root 登录密码

2: 关掉外网访问改用 ssh

3: 禁掉 phpadmin 公共访问地址

这台机子测试用,如果是生产环境还需更严格的防护。如: 秘钥对登录,跳板机,vpn...

总结 被黑之后搞清楚是哪里被攻击了,是否可以补救?

不要相信坏人说的话

数据库一定不要为了方便 root 裸奔在外网,怎么也得搞个 ssh 。

突然想起之前红衣教主周鸿祎在公开场合说过一个事情,大概是下面这个意思:欧洲一个黑客组织对外宣称要在三年之内,通过黑客技术达到财务自由,结果才一年出头,这个黑客组织就宣布已经赚够钱,不干了。🤷 以前不信,现在我信了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档