君子藏器于身待时而动,安全不露圭角覆盂之安。
——AnonySec
前言
SecureCRT是运维人员常用的管理工具。但由于某些运维人员的安全意识不高,平时很可能会把SSH的连接密码都保存在里面,这就给了渗透人员可乘之机,为后续跨平台横向移动做了准备。而我们的主要目的是为了解密保存在SecureCRT中的这些SHH连接密码,并通过这种方式实现Windows到Linux之间的快速横向渗透。
所有操作全部在管理员权限下进行,解密脚本仅限于 SecureCRT 7.x 以下版本,高版本需要使用文章末的方法。如果SecureCRT有启动密码,Config加密了,就不要搞了。
确定目标SecureCRT的详细版本
想办法确定SecureCRT的详细版本,通过powershell脚本搞定,或者直接RDP登录连接查询等 「绿色版无安装记录」。发现目标所用的详细版本为 7.1.1(build 264)。
1 | beacon> powershell-import /Users/anonysec/ListInstalledPrograms.ps1 |
确定SecureCRT配置文件目录下的Sessions目录
默认情况下,SecureCRT的Config目录路径为:%APPDATA%\VanDyke\Config\Sessions\
如果无法确定路径,可以通过图形界面在SecureCRT菜单的全局选项中来确认。
Sessions目录下的每个ini文件都会以连接的IP或域名来命名。
1 | beacon>shell dir %APPDATA%\VanDyke\Config\Sessions\ |
拷贝下载Sessions目录的ini文件
直接到Sessions目录下载ini文件可能会有问题(应该程序占用),即使下载下来,到本地可能无法解密。所以,先用Invoke-NinjaCopy.ps1脚本把ini文件先copy到其他目录,然后再去下载。
1 | beacon> powershell-import /Users/anonysec/Invoke-NinjaCopy.ps1 |
脚本解密Session
将下载的ini文件拷贝到本地,利用脚本进行解密。
环境:python 2.7、pycrypto库。
此处解密脚本仅限于 SecureCRT 7.x 以下的版本!
1 | sudo pip2 install pycrypto |
1 | python SecureCRT-decryptpass.py 192.168.144.128.ini |
SecureCRT高版本解决
如果目标的SecureCRT版本较高,无法进行解密该怎么办?此处以 8.5.3(X64 build 1867)为例,直接把对应%APPDATA%\VanDyke\Config\
整个目录拷贝到本机SecureCRT的Config目录下,然后直接连接。
目标SecureCRT版本与本地版本需一致,否则可能会出现问题。