温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

发布时间:2021-11-11 11:53:15 来源:亿速云 阅读:199 作者:柒染 栏目:编程语言

这期内容当中小编将会给大家带来有关如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

首先,在这里我要向大家道声抱歉!原本在去年圣诞节时,我就承诺要为大家做这个分享的。但由于一直忙于手头的各种琐事,所以一直拖到了现在。话不多说,我们直切正题!

什么是XML/XXE注入

外部实体注入攻击:XML文件的解析依赖libxml库,而libxml2.9以前的版本默认支持并开启了外部实体的引用,服务端解析用户提交的xml文件时未对xml文件引用的外部实体(含外部普通实体和外部参数实体)做合适的处理,并且实体的URL支持file://和php://等协议,攻击者可以在xml文件中声明URI指向服务器本地的实体,从而就会发生这种攻击。

例如,以下是一个用于漏洞利用的PoC代码:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

任务:

在渗透测试期间,我需要对一个托管文档和文件的Web应用程(如SharePoint)进行审计,以将其分享给其他的同事使用。经过一番测试,我找到了一些XSS/CSRF漏洞,并成功绕过防护机制。这个应用有一个特性引起了我的关注,它可以上传Microsoft文档格式,如.Docx。

我记得,我的一个朋友当时通过一个嵌入的XML代码就成功拿下了Facebook的服务器。

感谢@bbuerhaus 和 @nahamsec托管XXE服务(一个可以通过XXE预定义payload生成Microsoft文件的服务)。

以下是我的第一个payload:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

可以看到通过NC,172.28.1.116成功与我建立了连接!

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

现在,我们能做些什么呢?

由于我知道当前我处理的系统为Windows,因此不能像在Linux中那样读取像/etc/passwd这样的敏感文件路径。我唯一想到的就是,Windows的系统配置文件/windows/win.ini。还好当时坐在我旁边的同事提醒我:“关于Windows最重要的是NTLM哈希”。

这一次我修改了我的payload,并将其指向了我的共享IP地址:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

B00M :D

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

我能够从SSL证书扫描中识别其他服务器(处理不同环境的相同角色),以及最重要的是SMB消息没有签名!

这些信息足以让我们对其发起SMB中继攻击:

首先,让我们尝试做一些基本的RCE :( Ping)

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

通过抓包工具可以清楚的看到ping的完整过程:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

让我们来创建一个用户:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

将他添加到管理员组后,我可以在服务器上做一个RDP远程桌面连接。

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

好吧,我承认当时我还并不知道Impacket有一个很nice的用于转储SAM文件的功能。如果我们只是想指向中继服务器的IP,则不需要添加任何其它参数:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

现在我们获取到了管理员的哈希。让我们在网络中删除哈希,看看会有什么结果。

使用Metasploit中的smb扫描模块,我命中了41个扫描结果。真的是太棒了!

在对这些服务器使用PSExec exploit后,其中一个引起了我的关注:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

B00M !!

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

此帐户是域管理员的成员,让我们通过创建另一个用户来模拟该会话,但这次是:域管理员的成员;

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

让我们来验证下:

如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限

使用此帐户,我可以访问所有DC,PC,甚至转储包含用户所有哈希值的NTDS.DIT文件 :D

XXE漏洞对于企业内部网络来说破坏性不可小觑,特别是在满足所有条件的情况下(解析外部XML实体+SMB消息未签名)。

上述就是小编为大家分享的如何利用XXE漏洞获取NetNTLM Hash并通过SMB Relay取得权限了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI