如果您使用 XShell 通过 SSH 连接到远程服务器,您可能经常遇到需要知道 XShell 中保存的密码的情况。感谢d2x3,这里有一个简洁的 Python 脚本可以帮您完成这项工作。
一、获取sid及用户账号名称
首先,您需要获取 SID 和您登录的用户帐户。打开命令提示符并键入以下命令。
WMIC 用户帐户获取名称、sid
输出
管理员 S-1–5–21–848001404–2593868271–2784678393–300
默认帐户 S-1–5–21–848001404–2593868271–2784678393–301
现在您知道登录的用户帐户(管理员)和分配给该用户帐户的 SID。
2.获取XShell 会话的保存位置
此外,您需要知道 XShell 会话的保存位置。如果您在安装 XShell 时使用了默认设置,则应该与下面的设置类似。
C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions
3.使用Xdecrypt
前往此GitHub 链接下载仓库(
https://github.com/dzxs/Xdecrypt)。解压下载的目录并进入目录。如果您使用的是 Windows,请从该位置打开命令提示符或Gitbash 。
python Xdecrypt.py -s [<用户帐户>+<sid>] -p <XShell_Session_location>
4.获取密码
python Xdecrypt.py -s AdministratorS-1–5–21–848001404–2593868271–2784678393–300 -p “C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions”
提示:用户帐户和 sid 需要连接起来。
如果您已经安装了所有软件包,您应该会看到以下输出。
C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\10.3.13.32 — server1.xsh
主机:10.3.13.32:22
用户名:test_user
密码:2019@abcC:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\10.3.13.33 — server2.xsh
主机:10.3.13.33:22
用户名:test_user
密码:2019@abcC:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\10.3.13.34 — server3.xsh
主机:10.3.13.34:22
用户名:test_user
密码:2019@abc
5.其他错误情况
- 没有名为“Crypto”的模块
$ python Xdecrypt.py
Traceback(最近一次调用最后一次):
文件“Xdecrypt.py”,第 8 行,在 <module> 中,
来自 Crypto.Hash 导入 SHA256
ModuleNotFoundError:没有名为“Crypto”的模块
然后,您需要执行以下操作。
pip安装pycryptodome
- 引发 MissingSectionHeaderError(fpname、lineno、line)
$ python Xdecrypt.py
Traceback(最近一次调用最后一次):
文件“Xdecrypt.py”,第 42 行,在 <module>
cfg.read(filepath)
文件“C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\configparser.py”,第 696 行,在 read
self._read(fp, filename) 文件“C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\configparser.py”,第 1079 行,在 _read 中
引发 MissingSectionHeaderError(fpname, lineno, line)
configparser.MissingSectionHeaderError:文件不包含节标题。
文件:'C:\\Users\\Administrator\\Documents\\NetSarang Computer\\6\\Xshell\\Sessions\\10.3.13.32 — server1.xsh',行:1'
[\x00C\x00O\x00N\x00N\x00E\x00C\x00T\x00I\x00O\x00N\x00:\x00P\x00R\x00O\x00X\x00Y\x00]\x00\n'
如果遇到此错误,请打开 Xdecrypt.py python 文件并转到下面的行。
cfg.read(文件路径)
将其更改为,
cfg.read(文件路径,编码=“utf-16”)
您可能需要根据笔记本电脑的配置更改编码格式(utf-8)。这通常可以正常工作。
- 解密后的密码为“无”
C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions\10.3.13.32 — server1.xsh
主机:10.3.13.32:22
用户名:test_user
密码:无
当传递给“-s”的参数错误时,会发生此错误。请确保笔记本电脑用户帐户名和sid之间没有空格。
python Xdecrypt.py -s AdministratorS-1–5–21–848001404–2593868271–2784678393–300 -p “C:\Users\Administrator\Documents\NetSarang Computer\6\Xshell\Sessions”