DEFCON 20会议,在60秒内捕获:从来宾帐户到Windows域管理员。 第一部分

嗨,我是Zach Feysel,我会尽快讲,如果太快,您可以放慢我的速度。 白天,我是一个五星级的人,晚上,我是DJ和摄影师,可以在Twitter上使用昵称@zfazel找到我。 人们总是问我有关文凭的问题。 我不是列出一堆学位的人之一,因此您最好根据此演示文稿来评判我,而不是根据我拥有的证书数量来评判我。



毫不掩饰的评论:我们在这里没有什么竞争,现在来自芝加哥的家伙们正在第4轨道上,我们都是来自芝加哥的,赶紧举起来自芝加哥的人。 所以,我想我输了。 今晚我将成为泳池中的DJ,所以如果您有空,欢迎与凯特·迈尔斯(Kate Myers)展开战斗,此后,我将回到芝加哥参加另一场黑客大会。 去年有500人参加,今年我们希望会有更多的客人。 我的312个人也将在那里,有关此会议的更多信息,请访问thotcon.org。

因此,为了不浪费时间,我们将讨论称为NTLM-Relay的哈希传递攻击的替代方法,这是用于NTLM身份验证请求的协议间跨协议中继的新工具集,用于自动客户端身份验证的新方法和新方法。您可以使用哈希传递的目的。
让我们从NTLM开始,对于那些不知道NTLM 101是什么的人,可以在不到10分钟的时间内陈述整个观点。 那么什么是LM / NTLM? 它是Microsoft开发的用于Windows的密码存储库和网络身份验证协议。 该死,我的幻灯片坏了! 因此,LM哈希是一种用于存储长度少于15个字符的用户密码的格式,该密码分为7个字节的2个部分,并转换为大写。 我希望您能看到LM和NTLM哈希的外观。 我不会浪费时间讲述LM的优缺点,大家都知道,如果不是,请谷歌搜索。



NTLM哈希通常区分大小写,长度不受限制,不会分成字符组,并且比LM稍强,但这也不是没有问题。 现在我将谈论它们。 第一个漏洞是“哈希传递”攻击的可能性,该攻击使黑客可以登录到使用基于NTLM / LM协议的客户端身份验证的远程服务器。 抱歉,伙计们,我把幻灯片弄混了,我5分钟前就把它们做了,总之,LM很烂。

那么什么是NTLM身份验证? 这是远程服务的网络身份验证。 她需要证明您确实是您自己的名字。 该服务通常在单独的计算机上运行,​​您要在该计算机上访问该服务提供的资源,例如,文件服务器是一种服务,而文件是资源。 稍后,我们将介绍这些服务是什么。

当我们谈论NTLM v1,v2,NTLM 2(无论是签名的还是未签名的)时,我们可能会感到困惑,因此让我们快速回顾一下NTLM身份验证。 在身份验证期间,将发送3种类型的消息。



类型1是客户要求服务器建立联系的请求,例如“我想验证”。 您会看到由Wireshark捕获的分段数据包,其中包含支持身份验证的标志,工作站的名称及其域名。

类型2消息是服务器响应。 如果您从“类型1”消息中注意到我们还不知道该用户是谁,则他只是要求连接到服务器,并希望了解该请求是否受支持。



您在这里看到NTML Challenge服务器响应是一组每次更改的数字。 屏幕截图显示了一个静态答案,可用于创建“彩虹表”。 因此,服务器以第二种类型的消息作为响应:“这是我支持的,这是我的域名,这是我的服务器名”。 该答案用于“加盐”密码的哈希,因此每次获得唯一答案时,您将无法对同一请求重复一次。

类型3消息-这是客户端身份验证消息。



这是服务器的响应,如果对会话进行了签名,则将使用NTML哈希的密码哈希以及用户名,工作站名称和域名及其会话密钥进行哈希处理。

这就是NTML版本1。NTML版本2与它非常相似,但是在响应密码和调用客户端中添加了附加参数,以防止使用“彩虹表”,即客户端对它们使用随机元素。

我们需要讨论的另一件事是集成的Windows身份验证。 它是必需的,以便您不必每次都使用密码重新输入系统即可使用资源和服务。 如果您连接到域服务器或内部Web服务器,则Windows不会要求您输入密码,它只会要求输入API并从中接收系统应用于身份验证的信息。
在本地安全性的上下文中,HTTP通过仅检查单个单词的域名来使用受信任的安全区域,受信任的站点或本地站点来进行保护。 我将尝试快速刷新您的记忆。 单字域首先在DNS服务器上搜索DNS名称,然后检查其主机或DNS主机名并将其传回。 它检查您的全名的结构,然后执行NBNS,这是对该域名的广播请求。 实际上,他问网络:“嘿,我在找一个名字 ,你认识那个名字的人吗?”,以MBNS多媒体广播模式在局域网上分发此请求。

就像我说过的那样,由于我们到处都使用SMB协议,因此没有任何限制,我们只有使用SMB的自动身份验证。 这会引起一些问题。

考虑“哈希传递”方法。 从协议可以看出,NTML不使用原始密码进行身份验证,因此我们所需的只是NTML哈希本身。 我们可以使用各种Windows工具访问NTML哈希,即从本地存储或内存中提取此哈希。 所有这些都已在其他演讲中进行了描述,我将快速提醒您问题的实质,以显示这两种方法之间的差异。
事实是,通常对于此哈希传递,您需要在本地系统管理员级别进行访问,因为使用来宾帐户,您将无法访问本地存储或本地内存。

那么,什么是NTLM中继?它与“哈希传递”方法有何不同? 他们不断告诉我:“啊,您在谈论哈希传递!”,我回答:“不,我在谈论NTLM中继!”。 区别在于NTLM中继不需要管理员特权即可访问网络或系统。 实际上,您从内部或外部连接到网络并开始以访客身份工作。 没有凭证,没有对系统的访问权,如果您返回上述消息1,2,3,则仅对请求进行身份验证。 当主机响应您的请求并确保您是您时,不会进行任何验证。
我们要做的是创建一个欺诈性服务器来接收身份验证请求,然后将其中继到目标服务器。

让我们听听这个故事,以便您了解问题的实质。 早在1996年,Dominic Brezinsky使用CIFS访问协议(SMB协议的第一个版本)在身份验证过程中发现了一个漏洞。 之后,他们首先讨论了使用NTLM中继的可能性。 在2001年,NTLM设法在SMB中发现了一个漏洞。 首先,Veracode员工Christian Ryu(又名Dildog)在DefCon会议上说了这一点,然后黑客Josh Bushbinder(又名Dystic爵士)发布了与此漏洞兼容的漏洞利用代码。 我们使用了Telnet协议和IE浏览器漏洞,您可以在其中键入telnet:// ip并自动进行身份验证。



之后,NTLM中继方法开始用于将SMB请求重定向到其他主机或它自己的主机。 这种情况一直持续到2008年11月,当时Microsoft Windows在可能的地方打了补丁,阻止了NTLM身份验证请求随补丁MS08-068一起返回。

因此,由于协议设计功能,我们无法将身份验证请求返回给主机,而只能将其转发给其他主机。 2008年,一个绰号为Grutz的家伙就DefLon NTLM的去世发表了声明。 我认为这是近年来最好的表现之一,因为它对公司环境产生了巨大影响。



他称自己的乐器为Pokemon Squirtle(宠物小精灵)的名字,并以“中间的猴子”作为比喻“中间的猴子”的技术。 该工具允许NTLM中继通过HTTP执行,并且还可以与SMB很好地配合,接收身份验证请求。



该屏幕快照是两天前拍摄的,他的Squirtle应用程序的开发仍在进行中。 我决定让大家都熟悉这些漏洞,我们反复讨论这些漏洞,因为这些漏洞无法以任何方式解决,并且无处不在。 我属于公司环境,因此我很清楚自己不断抱怨的问题-网站不对身份验证请求进行SSL加密,就像它们不对Cookie进行加密一样。 2010年,发布了名为Firesheep的Firefox浏览器扩展。

您可能对这个工具很熟悉,该工具用于拦截流行网站的未加密HTTP cookie,以及通过冒充其他用户的方式通过Wi-Fi或网络嗅探来侦听与网站打交道的其他会话。



我问自己,人们从何而来创建此类工具的冲动。 事实证明,这一切都与易用性有关。 创建一个允许您模拟其他人的应用程序很容易。 因此,我决定从头开始,制作一个允许使用NTLM Relaying方法向人们展示它像Firesheep一样简单的应用程序。



我开始研究NTLM中继,以了解如何实现多协议支持。 许多人都在谈论这种支持的理论可能性,但是没有人将其付诸实践。 因此,我的目标是为NTLM创建Firesheep。
我决定开始学习Ruby,因为我最初打算将自己的漏洞利用集成到Metasploit中。 2012年,我想在Black Hat和DefCon会议上解决这个话题,但是我的报告被拒绝了。 我的讲话不仅遭到拒绝,还收到了一封虚假的电子邮件,DefCon接受了我的报告。 一位朋友以为诱骗我很有趣,他真是个白痴。 他在这里有一个朋友,他的表演获得批准,我的朋友接了我,并向我发送了他的电子邮件内容。 我没有注意标题,标题为“ From Nikita”,并感到惊慌,因为意识到我应该在一个半小时内在DefCon上讲话,但随后我收到一封拒绝的真实信件。

您认为这结束了故事吗? 不,三个星期后,尼基塔告诉我:“嘿,我们星期天有空缺,有人拒绝参加,您想代替他发言吗?” 我以为还不错,但是后来我意识到我几乎没有时间来参加演奏,因此开始疯狂地编写代码,试图按时完成所有工作。

那我有什么问题呢? 首先,外部工具无法完成我需要的Pentester工作,因为它们非常缺乏各种可以返回认证请求的协议。 大多数协议与SMB和HTTP的使用有关,它们都不支持LDAP进行MySQL身份验证,或者至少测试远程桌面,VPN等。

另一个问题是它们都将每个请求转发到相同的目的地。 也就是说,我们接收到用户数据,计算机帐户,并且将所有身份验证发送到一个目的,因此,我们无法在身份验证之前(即在收到类型3消息之前)识别用户。 如果您还记得这些类型为1,2,3的消息,那么类型2的消息就是服务器的响应。 在每个会话中它都是唯一的,我不知道这些用户是谁,直到他们发送最后一条Type 3消息为止,而且我也不知道该用户来自哪个服务器。 我对为什么没有工具可以执行此操作感兴趣,因此我仔细研究了SMB和HTTP等协议,稍后我们将更详细地讨论。

Windows 8和Windows 2012默认仍支持NTLM。 这很可怕,因为我们知道这些协议的漏洞,但是NTLM并没有消失。 因此,作为渗透测试者,我们通知组织他们必须保护自己免受此类攻击。
因此,我想解决这个问题,并创建了一个名为ZackAttack的工具。 我知道它看起来很丑,但是我们经历了很多名字,我个人最喜欢最后一个-“ NTLMv2? itch子请...“。



该工具包含什么? 我将快速浏览这些幻灯片,因为我认为您已经足够有趣。 ZackAttack由几个不同的组件组成,我们将讨论每个组件以及它们之间的关系。

首先,有一个HTTP SMB服务器-这是一个接受身份验证请求的欺诈性服务器。 因此,客户端以该服务器为目标进行身份验证,然后服务器使它们保持身份验证。 接下来,我们有一套自动操作的规则。

我们拥有此类自动利用程序的客户端,以及可以与传输NTLM中继请求的任何第三方应用程序关联的API。



最后,我们有一代有效载荷可以迫使客户为我们自动进行身份验证。

什么是欺诈性服务器? 首先,他们对用户进行身份验证并保存给我们,稍后,我将告诉您我们如何使用它。



我们需要所有这些人来维持其身份验证状态。 有许多工具可以在首次成功通过身份验证后禁用用户,但是我们的ZackAttack工具可以使用户尽可能长时间地进行身份验证。 在用于SMB的Windows LAN上,这大约是断开连接之前的30次。 因此,我们需要找出该用户是谁,同时保持其身份验证。

第一个身份验证请求是类型为112233的静态调用。参与渗透测试的人员都知道,这是“彩虹表”的一种任务。 就像我说的,我们需要找出该用户是谁,但是直到我们收到第3类消息之前,我们才知道这一点,因此我们发送了很多电话。 当系统忘记用户是谁并要求他每次进行身份验证而不关闭会话时,我将其称为“阿尔茨海默氏症要素”。

之所以这样做,是因为HTTP,WPAD和其他请求并不总是支持cookie,此外,如果您尝试通过Internet进行远程操作,则无法通过IP或源端口进行SMB标识。

因此,对于HTTP服务器,我们使用带有Keep-Alive参数的302重定向,它允许我们在套接字关闭的同时保持会话打开状态,并且在我们进行身份验证之后,我们知道他们是谁,并且在会话结束之前我们都知道这一点。

使用SMB很难,我不得不编写一个自定义的SMB服务器,虽然有点麻烦,但是无论如何它都能工作。 我不会深入研究SMB协议的身份验证机制,因为它会花费几个小时,因此我将简要解释一下。 服务器收到身份验证请求后,似乎忘记了该用户是谁,并说:“哦,您好,很高兴认识您!” “很酷,我想联系!” “等等,你是谁?”再次要求验证请求。

因此,我们需要接收来自HTTP和SMB服务器的身份验证请求。 许多人问我们如何进行“中间人”攻击。 有几种不同的方法可以使人们通过我们的服务器进行身份验证,然后发送给他们进行其他操作。 因此,请考虑我们工具中的有效载荷是多少。

首先,这是WPAD-一种用于自动代理配置的协议,它使您可以确定配置文件的位置。 如您所知,在Windows上,当您尝试连接时,会出现一个带有小勾号的窗口,“自动找到我的连接设置”会激活WPAD。 该协议发送用于检查DNS和网络广播的请求,以便您可以伪造这些请求并做出响应。

默认情况下,在Windows中,计算机将使用当前用户凭据通过HTTP自动验证WPAD服务器。

18:00分钟

DEFCON会议20.在60秒内捕获:从访客帐户到Windows域管理员。 第二部分



感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们, 为我们为您发明的入门级服务器的独特模拟,为Habr用户提供30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps,直到春季免费,直到半年付款,您都可以在此处订购。

戴尔R730xd便宜2倍?在荷兰和美国,我们有2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) 阅读有关如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?

Source: https://habr.com/ru/post/zh-CN436472/


All Articles