MobaXterm中密码的查看方式

目录

  • 问题描述
  • 解决方案

问题描述

MobaXterm是一款强大的终端连接工具,安装简单便捷,支持多种协议,一般使用免费版本即可满足日常使用要求。在使用MobaXterm进行ssh会话连接时,会提示保存密码,免费版本最多支持20个会话,后续再次连接时直接使用对应的Session即可,无需再次输入密码,MobaXterm会对这些密码进行管理,同时还支持设置本地的Master密码。

自动保存密码确实带来了很多方便,但是问题也恰恰出在了这里,在MobaXterm的免费版本中,我们无法查看保存的密码具体是什么,尽管不影响连接使用,但是难免会遇到要将密码分享出去的时候,这时候又恰恰没有记录,就很尴尬。

解决方案

十分幸运,github上有人开源了代码,用于解决这个问题,下面就来介绍一下这种解决方法。

准备工作

首先,我们需要把代码克隆下来,项目地址如下,具体的代码在python3文件夹中
https://github.com/HyperSine/how-does-MobaXterm-encrypt-password

接下来,我们需要确认MobaXterm中密码存储的位置为注册表

我们可以通过reg query命令验证下信息,命令如下

reg query HKEY_CURRENT_USER\Software\Mobatek\MobaXterm\C   # Credentials
reg query HKEY_CURRENT_USER\Software\Mobatek\MobaXterm\P   # Passwords

以Passwords为例,运行结果如下

可以看到密码被编码成了新的字符串。在运行解码代码之前,我们还需要更新下环境。

pip uninstall pycrypto
pip install pycryptodome

单条密码

下面,我们就可以运行对应的文件进行密码解码了。我们随机挑选一个session,以第一个为例,取最后一列中的字符串W8jczTkOZRzGXWnc(编码后的密码),使用如下命令,即可解码出原始的密码!

python MobaXtermCipher.py dec -p Master密码 W8jczTkOZRzGXWnc

(PS:这里需要区分是否有本地的Master密码,要使用不同的参数,上述为配置了Master密码的情况,具体的可以查看github项目中的Readme)

全部密码

如果我们想看到全部Session的密码,还可以使用项目中的另外一个文件ShowMobaXterm.py。

在作者的尝试过程中,发现也需要修改代码,可能也是和版本相关,大家在使用时可以根据环境情况决定是否要修改。具体的修改内容为注释掉代码中的230、231两行。

ConnPassword = cipher.DecryptPassword(
                Value, 
                # ConnHostname.encode('ansi'), 
                # ConnUsername.encode('ansi')
            ).decode('ansi')

然后,执行该文件即可得到全部Session的密码,这里同样用到了Master密码。

python ShowMobaXterm.py Master密码

输出如下

搞定_

posted @ 2022-11-16 14:26  MasonLee  阅读(7491)  评论(0编辑  收藏  举报