查看原文
其他

如何在一分钟内用CMD劫持Windows帐户?

2017-03-21 E安全 E安全

安全研究人员承认,他们并不确定此次的新发现属于安全漏洞,抑或是一项正常功能。

E安全3月20日讯 国外安全研究人员亚历山大·科兹尼科夫已经公布了一种能够轻松获取最高级别网络访问权限,而不需要任何密码的方法。

亚历山大·科兹尼科夫在一篇博文中指出,诸如系统权限管理员等高权限用户能够利用内置命令行工具劫持另一登录用户的会话,即使其拥有更高权限。而如果其他登录用户为域管理员,则对其会话进行劫持将允许本地管理员完全访问包括域服务在内的整个网络。

他警告称,利用这项技术,管理员将能够在不触发任何警告的情况下完成会话劫持。

亚历山大·科兹尼科夫指出,他的这项技术方案不仅能够用于劫持更高权限用户的会话,同时还可用于帮助系统管理员获取低权限帐户的访问能力,例如用于访问高敏感度企业应用程序或者企业数据库。

亚历山大·科兹尼科夫举例解释:

“银行雇员可以使用计费系统及其凭证进行登录。假设这位雇员登录至计费系统并开始工作,而后在午餐时间离开并将自己的工作站设备锁定。这时,系统管理员能够利用自己的帐户登录至该工作站。尽管根据银行规定,管理员不应访问计费系统; 但在Windows的内置命令中,管理员完全能够在不进行解锁的前提下劫持员工桌面。也就能够在该计费系统中随意操作,且拥有与对应雇员相等的一切权限。”

整个过程只需要半分钟左右即可完成,感兴趣的朋友可以(需翻墙)查看由其发布的概念验证视频。

亚历山大·科兹尼科夫将此称为一项“高危安全漏洞”,但他自己也承认,他并不确定这到底属于严重缺陷抑或是Windows内有意为之的正常功能。

微软公司在其说明文档内解释了亚历山大·科兹尼科夫在报告中所提及的各款命令行工具的适用范围与限制,并表示该工具会在用户输入错误密码后失效。然而亚历山大·科兹尼科夫对此予以否认。

安全研究人员凯文·博蒙特在推文中确认了这项bug,并表示劫持帐户确实“非常轻松”。

亚历山大·科兹尼科夫称,他已经在Windows 7、Windows 10以及Windows Server 2008与Windows Server 2012 R2上测试了这项bug,凯文·博蒙特则表示这项bug实际上在目前全部受支持的Windows版本上皆可奏效。

不过亚历山大·科兹尼科夫尚未将这项问题报告给微软公司。他表示:

“攻击者并不需要使用metasploit、incognito或者mimikatz等常见的用户凭证操纵或者登录模拟工具,每一项操作都通过内置命令进行。每一位管理员都能够冒充任何登录用户以实现对其系统的本地物理或者远程桌面访问。遗憾的是,我并不确定该如何进行修复,也提不出什么有效的建议。向微软报告后需要等待六个月才能让问题得以解决,而我希望尽快向大家发出通道。”

亚历山大·科兹尼科夫只是类似问题的发现者之一。早在2011年,法国安全研究人员本杰明·德尔就曾经公布过类似的会话劫持漏洞。

之后,微软公司的发言人表示,这项所谓缺陷“并不属于安全漏洞,因为其需要在设备上获得本地管理权限。”

附安全研究详情

能够获得NT AUTHORITY/SYSTEM命令执行许可的高权限用户可轻松劫持任何已登录用户的会话,且无需了解其登录凭证。终端服务会话可处于连接或者断开状态。

此项高危安全漏洞允许任何本地管理员实现如下会话劫持与访问能力:

1. 域管理员会话。

2. 劫持用户正在处理且尚未保存的任何文档。

3. 任何被劫持用户此前曾经登录的其它系统/应用程序(可能包括其它远程桌面会话、网络共享映射、要求其它凭证方可登录的应用程序以及电子邮件等)。

此项安全漏洞被证实作用于:

Windows 2012 R2
Windows 2008
Windows 10
Windows 7

概念验证:

微软公司的官方说明文档帮助我们利用以下命令行操作完成测试:


我们只需要 NT AUTHORITY/SYSTEM 命令行。

最简单的方法为使用psexec:

psexec -s \\localhost cmd

另一种方法为创建一项负责与全部选定会话对接的服务。

1、获取全部会话信息:

C:\Windows\system32>query user
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
 administrator                             1  Disc            1  3/12/2017 3:07 PM
>localadmin            rdp-tcp#55          2  Active          .  3/12/2017 3:10 PM

C:\Windows\system32>

2、 创建用于劫持用户会话的服务:

C:\Windows\system32>sc create sesshijack binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#55"
[SC] CreateService SUCCESS

3、启动此服务:

net setart sesshijack

在此之后,您的当前会话将被替换为目标会话。

E安全注:本文系E安全独家编译报道,转载请联系授权,并保留出处与链接,不得删减内容。联系方式:① 微信号zhu-geliang ②邮箱

@E安全,最专业的前沿网络安全媒体和产业服务平台,每日提供优质全球网络安全资讯与深度思考,欢迎关注微信公众号「E安全」(EAQapp),或登E安全门户网站 , 查看更多精彩内容。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存