运用 PtH 进犯 NTLM 认证的 Web 使用

访客5年前黑客资讯983

本文具体介绍了在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发布了一个改善的 *** B客户端,该客户端运用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]  黑客接单网

相关文章

保证你网页的安全

 从技能到安全, 这是一个趋势. 曾经寻求的是比较炫酷的技能, 等完成往后发现, 自己还能做什么. 炫技完了之后,差不多就该到悟道的时分了. 用户安全, 便是一个很大的禅. 苹果回绝 FBI, goo...

HTTPie:WEB开发调试东西

还在用wget和curl?试试HTTPie吧  :) HTTPie (读作aych-tee-tee-pie)是指令行方法的HTTP客户端。可经过简略的http指令,可合作语法发送恣意HTTP恳求数据,...

新手攻略:DVWA-1.9全等级教程之Insecure CAPTCHA

现在,最新的DVWA现已更新到1.9版别(http://www.dvwa.co.uk/),而网上的教程大多停留在旧版别,且没有针对DVWA high等级的教程,因而萌发了一个编撰新手教程的主意,过错的...

经过APACHE ACCESS LOG来使用LFI缝隙

本地文件包括(LFI)缝隙,常被入侵者用来提取站点地点服务器上的不同文件内容,如passwd,hosts等。但你有没有想过将它提升到另一个层级?即经过本地文件包括来获取服务器上的浏览器shell(c9...

XSS终结者-CSP理论与实践

 CSP 全称为 Content Security Policy,即内容安全战略。首要以白名单的方法装备可信任的内容来历,在网页中,能够使白名单中的内容正常履行(包括 JS,CSS,Image 等等)...

秒爆十万字典:奇葩技巧快速枚举“一句话后门”暗码

关于一句话咱们都不生疏,有时会需求爆炸。爆炸的速度和方针的响应速度就有很大的关系了。那假如咱们爆炸的速度能够提高至少1000倍呢? 首要如下图↓ 变量=echo “ok”; 假如这个变量等于暗码的时分...