从勒索病毒加密的SQLServer数据库中恢复数据

本文讲述了SQLServer数据库被LockBit病毒加密的困境,解析了病毒行为,发现仅头部加密,提出针对性恢复方法,详细描述了数据恢复步骤,并给出防护建议。

1. 问题描述

用户的SQLServer数据库遭到"LockBit"勒索病毒攻击,数据库宕机无法访问。

SQLServer数据库数据文件被加密且扩展了文件后缀名:“.lockbit”。
如:
数据文件原有文件名为:“testdb1.mdf”
加密后的文件名则被修改为:“testdb1.mdf.lockbit

同时在被加密的文件目录下留了一封勒索信:“Restore-My-Files.txt”
在这里插入图片描述

2. "LockBit"病毒加密分析

知道了文件名被篡改,第一想法是把文件名改回原来的名字,看看是否能拉起数据库,但是尝试失败(想想也是,病毒没那么傻~~)。

那么就只有深入研究下被加密的数据文件,看看到底病毒做了哪些手脚。
通过十六进制编辑器工具打开被加密的文件, 发现文件确实被加密了。
左图是被加密的文件,右图是正常的数据文件。加密后的文件显示为乱码形式。
在这里插入图片描述
看到这一幕,有点绝望,在不知道加密算法和密钥的情况下,解密的可能性为0…

好吧,再往下看看,果然有惊喜!
勒索病毒只加密了文件头部256KB字节的内容,之后的数据没有被加密!
在这里插入图片描述

为什么只加密文件头的一部分数据?
想想是因为勒索病毒采用的加密算法加密强度太高了,加密时所需时间很长。而对于动不动就上百GB的数据库文件而言,加密时间就更长了。

对于对称加密算法而言,加密时间长,解密时间也长,黑客也不想给自己找麻烦。


3.数据恢复思路

SQLServe数据文件MDF格式,8KB是一个页面。
病毒加密了前256KB数据,也就是 32 个页面。
而对于SQLServe来说,前32个页面基本是数据库创建时就填充的数据库系统信息,很少有用户表数据存储于前32页面中。

那么数据恢复的方法也就明确了:跳过前32个页面,扫描32页之后的有效数据,将其恢复到新的数据库中!


4.恢复实战

根据SQLServer MDF 数据文件的组织格式,层层剖析,恢复页面中的有效数据。

具体实施起来挺复杂,不光要考虑普通表数据,还要考虑LOB大对象数据、视图/函数/存储过程 等对象的恢复,总之力求完美,SQLServer有的对象,都要考虑进去。

最终将加密的数据库成功恢复出来,数据验证使用正常!
在这里插入图片描述

5.友情提示

1)做好局域网防护
局域网内的主机密码不要使用相同的密码,一台攻陷,全网瘫痪!同时关闭不必要的网络端口。

2) 此方法只能恢复被加密的SQLServer数据库数据文件,其它类型的文件,如 word、图片等无法恢复出来。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duanbeibei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值