本文具体介绍了在Windows/Active Directory环境中运用PtH进犯NTLM认证的web运用的具体进程。该技能细节来源于Alva ‘Skip’ Duckwall 和Chris Campbell在2012年blackhat中名为“Still Passing the Hash 15 Years Later…”的讲演主题。
简介
Windows Active Directory环境的首要长处是它运用Kerberos 或许 NTLM认证来完结企业级单点登录(SSO)。这些办法一般用于各种企业资源的拜访操控,从文件同享到Web运用程序,例如SharePoint,OWA或用于特定事务的内部Web运用程序。在Web运用程序的方面,IWA(Integrated Windows Authentication)答运用户经过Kerberos 或许 NTLM认证对Web运用程序进行主动身份验证,比方用于Web运用程序的Windows SSO。众所周知,NTLM身份验证协议的规划或许存在PtH进犯,用户运用哈希暗码而不需原始暗码就能进行身份验证。自1997年开端,这种进犯的公共东西现已存在,其时Paul Ashton发布了一个改善的SMB客户端,该客户端运用LanMan哈希来拜访网络同享。
布景
多年来,PtH针对Windows环境的进犯现已得到了充沛的证明。下面是选取的一些有价值的参考文献:
1. Microsoft的官方文档具体阐明晰在测验NTLM身份验证之前,“客户端核算出一个哈希暗码,丢掉掉实践暗码”的进程。在Windows环境中或许更有助于了解NTLM身份验证为什么存在PtH进犯: https://docs.microsoft.com/en-us/windows/desktop/secauthn/microsoft-ntlm
2. Hernan Ochoa’s的幻灯片评论了PtH开始的东西包:https://www.coresecurity.com/system/files/publications/2019/05/Ochoa_2008-Pass-The-Hash.pdf 。文章叙述了一种从2000年开发的针对Windows机器的PtH进犯办法。
3. 一切关于PtH的文章中,最感兴趣的是pth-suite Linux东西(这东西开始的发布是为Backtrack Linux编写的。一切的东西在Kali Linux中都有了新的方位,有一个需注意的破例,对写这篇博客十分有用,后面会具体阐明): https://passing-the-hash.blogspot.com/
4. “Pass-the-Hash Is Dead: Long Live LocalAccountTokenFilterPolicy”评论的是本地用户账户的PtH,以及自Windows Vista的对PtH添加的额定约束:https://www.harmj0y.net/blog/redteaming/pass-the-hash-is-dead-long-live-localaccounttokenfilterpolicy/
5. 运用Metasploit中的PsExec模块运用PtH: https://www.offensive-security.com/metasploit-unleashed/psexec-pass-hash/
6. Mimikatz中PtH模块的GitHub文档:https://github.com/gentilkiwi/mimikatz/wiki/module-~-sekurlsa#pth
我一直对这种进犯技能感兴趣首要是因为可以运用PtH进犯NTLM认证的Web运用。因为Windows Active Directory环境无处不在,许多的企业内部Web运用都用此验证计划进行登陆,答应从公司工作站无缝SSO(Single Sign-On)到公司资源。因而,假如可以在Windows环境中对这些网站完结PtH进犯,就可以在后续对其进行愈加深化有用的运用。当一个域名悉数运用这种计划时,进犯的影响就十分显着了,比方一个给定域名在完好域名hashdump之后,会包括一切职工用户账户相关的NT哈希。在这种情况下,PtH不需要破解任何哈希暗码就可以模仿恣意公司职工登陆。这意味着即便关于那些具有安全意识的用户,他们或许运用了20多个字符长度的暗码,也无法防止进犯者在企业的Web运用程序上模仿登陆。
运用PtH进犯NTLM认证的Web运用
那么实践中怎么对NTLM认证的网站进行进犯?很长一段时刻以来,我用谷歌搜索这个主题的成果,并没有找到对这种进犯办法具体的介绍(大约在2019-2019年)。在研讨Kali Linux的PtH东西集(pth-suite)时,有个很古怪的问题。大部分本来的pth-suite东西在2019年整合到了Kali Linux中,我之前说到的有一个不同,便是pth-firefox,望文生义便是用于修正Firefox中NTLM认证代码以便可以答应Pth的东西。因为这些Linux东西对我没什么用,我就把注意力搬运到了研讨在Windows主机上运用Mimikatz进行相同的进犯的技能上。
在我自己发现一个可用的技能之后,我最近又偶尔发现了由Alva ‘Skip’ Duckwall 和Chris Campbell在Blackhat 2012宣布的“Still Passing the Hash 15 Years Later…”幻灯片的第30页。它具体介绍了一种办法,在运用Hernan Ochoa的Windows凭证编辑器(WCE)直接注入具体NT哈希到内存后,使IE(或许其他运用Windows内置“Internet Options”的浏览器)可以经过IWA进行认证。他们在讲演中的第18分29秒给出了这种技能的演示。我花了许多时刻才找到这些信息,并为实践运用的相关进程写了文档,这篇博客的后续内容将介绍在Windows10主机中怎么运用Mimikatz进行进犯。
进犯
装备环境
为了演示运用NTLM身份验证的Web运用程序,我是用了Exchange 2013服务器,装备为专门运用IWA进行OWA。在Exchange服务器上运转PowerShell装备指令如下:
Set-OwaVirtualDirectory -Identity “owa (Default Web Site)” -FormsAuthentication $false -WindowsAuthentication $true
Set-EcpVirtualDirectory -Identity “ecp (Default Web Site)” -FormsAuthentication $false -WindowsAuthentication $true
其它预先预备的条件:
l Exchange服务器已参加test.com域。在此域上,运用杂乱的暗码和相应的邮箱创立名为TESTpath的用户。核算此用户暗码的NT哈希值,以便稍后进犯运用。NT哈希生成如下:
python -c 'import hashlib,binascii; print binascii.hexlify(hashlib.new("md4", "Strong,hardtocrackpassword1".encode("utf-16le")).digest())'
57f5f9f45e6783753407ae3a8b13b032
l 在此之后,在未入域的Windows 10主机上下载最新版别的Mimikatz,该主机与Exchange服务器衔接的网络相同。咱们为了可以运用Exchange服务器的域名而不是IP地址,将此独立核算机上的DNS服务器设置为test.com的域名操控器。
[1] [2] 黑客接单网