白袍的小行星

Hack The Box-Active

字数统计: 875阅读时长: 3 min
2020/06/27 Share

这道算是比较有水平的题目了,涉及到Windows域的一些知识,比较适合用来入门。

开局先扫描端口:

Nmap scan report for bogon (10.10.10.100)
Host is up (0.44s latency).
Not shown: 983 closed ports
PORT STATE SERVICE VERSION
53/tcp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2020-06-27 11:00:11Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49157/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49158/tcp open msrpc Microsoft Windows RPC

主要的服务有Kerberosldapnetbios-ssn这些。

普通用户

先从139看起,这个端口一般用于文件共享,用的是SMB协议,所以可以用smbmap来枚举一下共享目录的信息。

因为没有用户名和密码的其他信息,所以直接枚举:

只有一个有读取权限,那就读取吧,用smbclient来连接:

翻了半天后在\active.htb\policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\machine\preferences\groups\>找到个Groups.xml,里面有一个域用户和密码。

密码是密文,看起来很像base64,其实是AES-256.

本来这个加密强度基本上是解不开的,但是微软公布了此加密的私钥,任何人都可以解密出密码了,我们可以用gpp-decrypt这个工具来解密。

密码是GPPstillStandingStrong2k18,有了它我们又多了一些权限:

连接Users,可以直接拿到user.txt了:

smbclient //10.10.10.100/Users -U SVC_TGS

管理员

要想拿到更高权限的内容,就必须转向其他的路,别忘了我们还有Kerberos没探索。

关于Kerberos攻击我了解的不多,之前所了解的都是关于协议内容方面的。

这次我们用到的是一种叫Kerberoasting的攻击技术,首先需要了解kerberos的认证过程和SPN相关。

之前写过此方面文章,所以不再赘述,大致就是:用户拿到TGT后,可以请求获取任意服务TGS,用户会收到包含加密服务票据的TGS响应数据包,我们拿到它可以破解出服务账户的哈希。

这是因为kerberos的认证机制,导致任何经过了身份验证的用户都可以得到被加密的TGS,从而进行破解。

另外要说的就是SPN,简单来说就是用来标识服务的,Kerberos使用SPN决定用哪个服务的哈希来加密票据。在加密的时候,域控要通过SPN来查询对应的服务账户,进而使用它的哈希来加密TGS.

SPN也分为两种类似,分别是域用户和机器账户的,机器账户的不能用于远程连接,且30天随机生成更换一次,很难破解,所以我们要关注的就是域用户类的SPN.

先把域名加进hosts里:

10.10.10.100 active.htb

再使用GetUserSPNs去查询SPN并获取TGS:

后面就可以直接破解了:

使用psexec就可以获得SYSTEM的shell:

总结

还是学到了不少内容,有一些新的攻击方式以前没用过。

CATALOG
  1. 1. 普通用户
  2. 2. 管理员
  3. 3. 总结