内网渗透时,除了MS17-010这样的大杀器外,还可以对机器上已保存的远程管理工具和数据库连接工具的凭证进行解密来获取明文密码。我们先讲讲远程管理工具的解密。
1.SecureCRT
SecureCRT 的session文件保存在如下位置:
在SecureCRT7或以下的版本中,配置文件中保存的凭证信息如下:
在SecureCRT8中,配置文件中保存的凭证信息如下:
可以看到二者hash长度不一致,版本也有区别,加密算法肯定不一致。
目前已知的SecureCRT7的加密算法,使用了两次Blowfish算法,密钥是硬编码的。
解密脚本:
https://raw.githubusercontent.com/Synacktiv/stuffz/master/VanDyke_SecureCRT_decrypt.py
实测截图:
对于SecureCRT8,目前算法未知,期待大牛可以逆向出算法。
2.Xshell
Xshell目前主要有Xshell5和Xshell6两个版本,session文件分别保存在如下位置:
配置文件中保存的凭证信息如下:
Xshell的凭证存储用到了当前用户名与SID,以二者组合的SHA256 hash值作为密钥,加密算法是ARC4。
用户名和SID可以用whoami /user获取:
解密工具或脚本:
https://github.com/DoubleLabyrinth/how-does-Xmanager-encrypt-password
https://github.com/jnewing/xdec
https://github.com/dzxs/Xdecrypt
实测截图:
3.WinSCP
WinSCP默认安装在C:\Program Files (x86)\WinSCP,其用户凭证可以保存在注册表或者配置文件中。
配置文件则在C:\Program Files (x86)\WinSCP\WinSCP.ini
或
C:\Users\USERNAME\AppData\Local\VirtualStore\Program Files (x86)\WinSCP\WinSCP.ini
若凭证保存在注册表,可通过修改上图中的配置存储项将凭证存储到文件中。
解密工具或脚本:
https://bitbucket.org/knarf/winscppwd/downloads/winscppwd.exe
https://raw.githubusercontent.com/anoopengineer/winscppasswd/master/main.go
https://raw.githubusercontent.com/YuriMB/WinSCP-Password-Recovery/master/src/main/java/Main.java
实测截图:
未完待续...
文章来源:乌托邦安全技术社区。
领取专属 10元无门槛券
私享最新 技术干货