这个问题遇到的比较多,也最头疼,如果没有及时通过Navicat的功能备份链接信息到文件,则重装系统后什么链接信息都没有。
这里需要指出说明一下:
Navicat的数据sql查询文件、备份文件存储在 C:\Users\Administrator\Documents\Navicat\MySQL\servers
navicat的数据库链接信息存储在注册表:HKEY_CURRENT_USER\Software\PremiumSoft
1.注册表文件寻找
注册表系统级的一般是在system32\config目录下,可这个不存储用户数据,也就是不存储 HKEY_CURRENT_USER 这个单元的数据。而恰恰Navicat是存储在这个单元下的,所以我们需要找到用户目录下的 NTUSER.DAT
如果你和我一样是administrator用户,则对应路径是:C:\Users\Administrator\NTUSER.DAT
无论通过什么方式,数据恢复还是ghost提取,还是怎样,只要拿到这个文件即可。
2.加载配置单元
推荐下载使用:Registry Workshop 高级注册表编辑工具
使用注册表工具(Registry Workshop),加载配置单元。
名字起一个方便寻找的,位置随意,下方步骤将以我所选择的HKEY_USERS为准。
在左侧选择对应的目录“software”
绿色范围内的就是你的配置文件了,只要确认有你的数据项,那就继续下面的步骤。
如果没有,或者你和我的Navicat版本不同。则找到对应的目录,确认数据还在,就没有问题。
3.导出Navicat配置单元
选择Navicat的目录,右键,选择导出。
选择导出的位置,输入文件名,保存导出即可。(我已经导出过一次了,所以图中已经有了一个注册表reg文件,可以忽略)
4.修改注册表文件路径
接着再用notepad++打开保存的注册表文件,按ctrl+h替换文件内容
将 HKEY_USERS\dddd\Software
替换为 HKEY_CURRENT_USER\Software
点击全部替换,再ctrl+s保存到文件。
5.导入到当前注册表
我们再双击打开刚才的注册表,使其添加恢复到当前系统注册表中。
6.重新运行Navicat
重新运行Navicat,此时,数据应该已经恢复如初了。
此时链接信息恢复了,但是不包含SQL查询语句哪些,如果你的文件还在,也可以将其文件迁移到新的系统中对应的目录去。
SQL查询记录及备份数据目录为:C:\Users\Administrator\Documents\Navicat\MySQL\servers
Xshell 找回
时隔多日,再记录一下 XSHELL 的密码信息找回,如果你已经重装系统了,和上文一样以前的文件还有保留或者GHO还在,那么这个方法就适用于你。
版本是 XSHELL6
密码文件存储在:C:\Users\Administrator\NetSarang Computer\6\Xshell\Sessions\*.xsh
你可以编辑文件从中找到你的密码字串
如果你运气好,没有重装系统(也就是没有更换用户),那么你可以直接通过下面这个脚本跑出你的密码:
https://github.com/dzxs/Xdecrypt
因为解密这个密码需要用到当前用户的 SID ,但如果你重装过系统,这个 SID 就会被重置更新掉。除非你找到之前的 SID 否则除了暴力破解是没有办法的。
比如这个密匙是通过用户名+SID构成: "AdministratorS-1-5-21-1234567890-123456789-1234567890-500"
用户名:Administrator
SID: S-1-5-21-1234567890-123456789-1234567890-500
RID: 500
RID
Windows系统帐户对应固定的RID:
- 500: ADMINISTRATOR
- 501: GUEST
- 502: krbtgt(域环境)
- 512: Domain Admins(域环境)
- 513: Domain Users(域环境)
- 514: Domain Guests(域环境)
- 515: Domain Computers(域环境)
- 516: Domain Controllers(域环境)
一般我们都是管理员,所以这个 RID 也都是500,文章参考来源:https://3gstudent.github.io/3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E5%B8%90%E6%88%B7%E7%9A%84RID-Hijacking/
如果时运不济注册表文件丢失,或者非要暴力破解的话,枚举并更改中间的数字作为密匙,直到解开密码为止。
和前文一样,如果你还留有注册表文件 C:\Users\Administrator\NTUSER.DAT
,那么你可以将这个文件挂载到注册表配置单元,并将这个配置但愿导出为 reg,这样你就可以通过文本编辑器打开这个文件。
直接搜索 500 或者,S-1-5-21 或者 ConvertUserDevModesCount 这类的关键词,一定可以找到 SID 的字串结构。然后将其代入 python 脚本进行尝试解密。
if not os.path.isdir(args.password):
print (args.sid)
print (args.password)
args.sid = "AdministratorS-1-5-21-1234567890-123456789-1234567890-500"
print (args.sid)
r = decrypt_string(args.sid, args.password)
if r:
print(r)
然后运行:
python3 Xdecrypt.py -p FBO1bmXbG0000000000000000000000000000000000000z2lzLDZSJQ==
如果正确,最后一行就是你的密码。