信息收集:
nmap -p- -sT --min-rate=10000 -Pn 10.129.95.154
nmap -p- -sU --min-rate=10000 -Pn 10.129.95.154
nmap -p53,80,88,135,139,389,445,593,636,3268,3269,5985,9389,49666,49691,49692 -sT -sV -sC -O -Pn 10.129.95.154
nmap -p53,80,88,135,139,389,445,593,636,3268,3269,5985,9389,49666,49691,49692 --script=vuln -sT 10.129.95.154
通过nmap探测到存在 intelligence.htb,dc.intelligence.htb两个域名,加入hosts文件中,
发现53端口开放,且获得域名,尝试区域传输后没有什么信息
dig @10.129.95.154 axfr intelligence.htb
ldapsearch探测出了两个域名DomainDnsZones.intelligence.htb与ForestDnsZones.intelligence.htb,加入hosts文件中
smb协议与rpc协议也无法匿名登陆,只好查看80端口,尝试从web端获取信息
在网站里发现了两个pdf
下载pdf后,发现了两个用户名,记录下来
利用kerbrute尝试 一下,确实是域用户
检查是否设置了不需要预身份验证,失败(AS-REP-roasting)
到这里后,感觉思路中断了,看了一下0xdf的思路HTB: Intelligence | 0xdf hacks stuff
这里需要枚举更多的pdf获取其他用户名,枚举脚本:
#!/usr/bin/env python3
import datetime
import io
import PyPDF2
import requests
t = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2021, 7, 4)
keywords = ['user', 'password', 'account', 'intelligence', 'htb', 'login', 'service', 'new']
users = set()
while True:
url = t.strftime("http://intelligence.htb/documents/%Y-%m-%d-upload.pdf")
resp = requests.get(url)
if resp.status_code == 200:
with io.BytesIO(resp.content) as data:
pdf = PyPDF2.PdfFileReader(data)
users.add(pdf.getDocumentInfo()['/Creator'])
for page in range(pdf.getNumPages()):
text = pdf.getPage(page).extractText()
if any([k in text.lower() for k in keywords]):
print(f'==={url}===\n{text}')
t = t + datetime.timedelta(days=1)
if t >= end:
break
with open('users', 'w') as f:
f.write('\n'.join(users))
运行脚本后会得到30个用户与一个密码
利用kerbrute验证用户,显示所有用户都能正常使用
利用crackmapexec进行密码喷射,发现Tiffany.Molina用户能与密码匹配
查看smb目录的权限
smbclient连接后找到了user.txt
在IT目录下发现了一个powershell脚本
似乎是检查开头为web的计算机,且每五分钟检查一次 ,那下一步就是模拟web开头的计算机,然后捕获它发送的请求
但在添加DNS的时候发生了错误,不清楚为什么报错(重置了下机器依旧有问题,更换python版本依旧报错)
假设上一步正常,那么此时这里也应该收到了来自Ted.Graves的连接并且捕获到NTLMv2
利用john对捕获到的hash破解
通过该用户的凭据,利用ldapsearch可以收集到大量的信息
在检查过后发现可以通过当前用户转储MSA的密码(Attacking Active Directory Group Managed Service Accounts (GMSAs) – Active Directory Security)存在约束委派
利用gMSADumper转储密码,成功获取了svc_int的hashGitHub - micahvandeusen/gMSADumper: Lists who can read any gMSA password blobs and parses them if the current user has access.
但是遗憾的是,无法直接利用这个hash,因此我们需要去请求administrator的票据
它提示我们错误,并显示clock错误
利用ntpdate去更新时间与10.129.138.217相同
再次请求administrator的TGT票据,成功获取administrator.ccache
将票据添加到环境变量中
利用wmiexec成功登陆,获取administrator权限