搞过内网渗透的,你肯定听过pth攻击。这种攻击效果非常显著,微软也是因此在存储凭证方面做了很大的改变。但即使是不断的更新,发布补丁,pth攻击还是存在。今天我们就来一探究竟。
目录
· pth攻击回顾
· 微软更新
· hash和NTLM介绍
· Pth攻击原理
· Zeros取代LM hash
· 实际中的配置
· pth攻击
· Mimikatz
· SMB pth攻击
· msf scanner/smb/smb_login
· Empire lateral_movement/invoke_smbexec
· Impacket smbclient
· pth-smbclient
· crackmapexec
· PsExec Pth攻击
· Msf windows/smb/psexec
· Msf admin/smb/psexec_command
· Impacket psexec
· WMI pth攻击
· Impacket wmiexec
· Powershell Invoke-WMIExec
· pth-wmic
· exe
· RPC Pth攻击
· Impacket rpcdump
· pth-rpcclient
· pth-net
· pth工具
· PTH Toolkit
- pth-winexe
- pth-curl
· Impacket
- impacket atexec
- Impacket lookupsid
- Impacket samrdump
- Impacket reg
· Pth检测
· Pth防御
· 参考
· 总结
PTH回顾
在后渗透中,获取会话之后,首先就是要获取凭证和NTLM hash值。从红队的视角来看,Pth只是横向渗透的开始。获得hash之后,攻击者就可以对它加以利用,比如他们可以尝试破解,但破解hash值还是比较困难的,费时费力,还不一定能搞到正确的密码,于是就诞生了另一种方法。我们来看一下认证过程,认证期间,首先是获取用户输入的密码,然后将其加密得到hash值,然后再把这个加密的hash值用于后期的身份认证。初始认证完成之后,windows就把这个hash值保存到内存中,这样用户在使用过程中就不用重复的输入密码。在凭证转存中,我们可以看到,我们提取了很多的hash值。作为攻击者,我们是不知道密码的,所以在认证的时候,我们直接提供hash值,不用提供密码,windows就会与保存的hash值对比,一致的话,认证就会通过。这就是所谓的pth攻击了。
微软的修复措施
微软使用AES加密取代了RC4加密,并且引入了凭证保护机制。奇热这导致很多人认为pth攻击从此就不存在了。然而并非如此,这些修复方式只是让攻击变得更加困难,但是并没有解决问题的本质。确实,经过修复之后,很多工具和技巧都失效了,但有一些还是可以用的。下面我会介绍一些。
Hash和NTLM介绍
加密hash函数其实是一种算法,能够获取任意数据块并返回固定大小的bit字符串,也就是hash值。因此只要数据发生改变,hash也会发生变化。举个简单的例子来说,假如你的密码是123456,对其进行加密得到hash,然后你把密码改成1234567,再加密得到hash,这两个hash值是完全不同的。
微软自windows发布以来,就是用了NTLMv2身份认证协议,并且引入了单点登录系统,将凭证缓存在内存中,以便后续的操作会用到。
Pth攻击过程
pth攻击分为两步:
1.提取hash
假如攻击者入侵了一台机器,他可以直接提取受害主机的hash值,也可以提取与受害主机处于同一网络中的其他主机的hash值。
2.利用hash
接着就是利用获取到的hash来登录到受害主机或者其他主机。
NTLM协议是一套微软安全协议,为用户提供身份验证,完整性和机密性。NT hash值是16字节大小的字符串,是通过MD4算法对密码加密所得到的。
注意:
本文主要讲解如何利用hash绕过认证和pth攻击,不会讲解如何获取hash。关于如何获取hash,大家可以参考下面的文章:
· Credential Dumping: NTDS.dit
· Credential Dumping: Local Security Authority (LSA|LSASS.EXE)
这里用一串0代替LM hash
自windows10发布以来,LM hash就不再使用了,但是这次我们用到的工具,在NT和LM时代就已经有了,所以在这些工具中,我们将使用32个0的字符串来代替LM hash值。
环境配置
攻击主机
操作系统:kali Linux 2020.1
IP地址:192.168.1.112
靶机
服务器:
OS:windows server2016
IP地址