信息收集
端口扫描
使用nmap进行端口扫描,发现存在大量端口。
然后探测端口对应服务。
发现存在445,464,1433等端口。
还发现了域名sequel.htb以及子域名dc.sequel.htb,将它加入host文件。
服务探测
使用openssl去探测它。
接着使用crackmapexec爆破smb
输入任意用户名和密码。然后会列出目录。
接着使用-N参数进行连接
发现存在一个pdf文件。
获取密码提示
打开发现提示。
通过pdf文件获取到连接mssql的信息。
漏洞利用
连接SQL数据库
连接mssql数据库,使用mssqlclient.py进行连接。
列出4个数据库。
此时我还可以进行更多枚举:
- 检查 DNS 的区域传输/暴力子域。
- 枚举带有或不带有凭据的 LDAP。
- 使用信用来运行寻血猎犬。
- 使用 Kerberoast 的信用。
- 通过 Kerberos 暴力破解用户名/密码。
获取 Net-NTLMv2
以 root 身份启动Responder,监听服务tun0:
读取主机上的共享文件。
获取一个hash值。
Hashcat碰撞
使用hashcat破解hash,通过hash爆破获取登录密码。
WinRM远程连接
使用wirrm进行连接。
翻文件
翻一些文件。
翻到了logs文件。这个是记录登录日志的文件。
通过查看文件内容,发现了登录密码密码和用户。
接着继续使用winrm进行登录。
获取user.txt
进入Desktop目录下,获取user.txt。
权限提升
接着进行权限提升操作。
识别 ADCS
Windows 域中始终需要枚举的一件事是查找 Active Directory 证书服务 (ADCS)。检查这一点的快速方法是使用crackmapexec(它可以作为 sql_svc 或 Ryan.Cooper):
上传Certify 工具。然后去查找一些可利用的漏洞。
使用它去列举当前用户。
获取管理员证书
使用Certify.exe,它来获取管理员的证书。
使用openssl来进行转换。
获取TGT
上传cert.pfx以及Rubeus的副本(从SharpCollection下载),然后运行asktgt命令,向其传递证书以作为管理员获取 TGT:
.\Rubeus.exeasktgt/user:administrator/certificate:C:\Users\Ryan.Cooper\Documents\cert.pfx/getcredentials/show/nowrap
获取管理员NTLM-Hash
运行相同的命令/getcredentials /show /nowrap,并成功获取管理员的NTLM 哈希值。
获取root.txt
使用管理员的 NTLM 哈希,我将通过 Evil-WinRM 进行连接:
并成功获取root.txt
思考与总结:
文章主要运用了银票攻击,获取管理员hash,然后继续远程登录获取root.txt文件。
Kerberos 身份验证流程:
用户使用用户名和密码登录。
1a.密码转换为 NTLM 哈希,时间戳使用该哈希进行加密,并作为身份验证票证 (TGT) 请求 (AS-REQ) 中的身份验证器发送到 KDC。
1b.域控制器 (KDC) 检查用户信息(登录限制、组成员身份等)并创建票证授予票证 (TGT)。
-
TGT 被加密、签名并交付给用户 (AS-REP)。**只有域中的 Kerberos 服务(KRBTGT)可以打开和读取 TGT 数据。
-
用户在请求票证授予服务 (TGS) 票证 (TGS-REQ) 时向 DC 出示 TGT。DC 打开 TGT 并验证 PAC 校验和 – 如果 DC 可以打开票证并检查校验和,则 TGT = 有效。TGT 中的数据被有效复制以创建 TGS 票证。**
4. 使用目标服务帐户的 NTLM 密码哈希对 TGS 进行加密并发送给用户 (TGS-REP)。
5. 用户连接到在适当端口上托管服务的服务器并提供 TGS (AP-REQ)。该服务使用其 NTLM 密码哈希打开 TGS 票证。
银票概述:
银票证是伪造的 Kerberos 票证授予服务 (TGS) 票证,也称为服务票证。
如下图所示,与域控制器没有 AS-REQ / AS-REP(步骤 1 和 2)以及 TGS-REQ / TGS-REP(步骤 3 和 4)通信。由于银票是伪造的 TGS,因此与域控制器没有通信。
创建银票:
为了创建或伪造银票,攻击者必须了解目标服务的密码数据(密码哈希)。**如果目标服务在用户帐户的上下文中运行,例如 MS SQL,则需要服务帐户的密码哈希才能创建银票。
使用Kerberoast破解服务帐户密码是识别目标服务关联密码数据的一种潜在方法。
计算机还托管服务,最常见的服务是利用“cifs”服务的 Windows 文件共享。由于计算机本身托管此服务,因此创建银票所需的密码数据是关联计算机帐户的密码哈希。当计算机加入 Active Directory 时,将创建一个新的计算机帐户对象并将其链接到该计算机。**密码和关联的哈希值存储在拥有该帐户的计算机上,NTLM 密码哈希值存储在该域的域控制器上的 Active Directory 数据库中。
如果攻击者可以获得计算机的管理员权限(以获取调试访问权限)或能够作为本地系统运行代码,则攻击者可以使用 Mimikatz 从系统转储 AD 计算机帐户密码哈希(NTLM 密码哈希用于加密) RC4 Kerberos 票证):
Mimikatz “privilege::debug” “sekurlsa::logonpasswords” 退出
银票特点:
1.白银票据是一个有效的票据授予服务(TGS)Kerberos票据,因为Kerberos验证服务运行的每台服务器都对服务主体名称的服务帐户进行加密和签名。
2.黄金票据是伪造TGT并且有效的获得任何Kerberos服务,而白银票据是伪造TGS。这意味着白银票据仅限于特定服务器上的任何服务。
3.大多数服务不验证PAC(通过将PAC校验和发送到域控制器进行PAC验证),因此使用服务帐户密码哈希生成的有效TGS可以完全伪造PAC
4.攻击者需要服务帐户密码哈希值
5.TGS是伪造的,所以没有和TGT通信,意味着DC从验证过。
6.任何事件日志都在目标服务器上。
银票所需参数:
- /target– 目标服务器的 FQDN。
- /service– 目标服务器上运行的 kerberos 服务。这是服务主体名称类(或类型),例如 cifs、http、mssql。
- /rc4– 服务的 NTLM 哈希(计算机帐户或用户帐户)
银票默认组:
- 域用户 SID:S-1-5-21\
-513 - 域管理员 SID:S-1-5-21\
-512 - 架构管理员 SID:S-1-5-21\
-518 - 企业管理员 SID:S-1-5-21\
-519 - 组策略创建者所有者 SID:S-1-5-21\
-520
Mimikatz 命令示例:
以下 Mimikatz 命令为服务器 adsmswin2k8r2.lab.adsecurity.org 上的 CIFS 服务创建银票证。为了成功创建此银票,需要从 AD 域转储或通过在本地系统上运行 Mimikatz(如上所示)来发现 adsmswin2k8r2.lab.adsecurity.org 的 AD 计算机帐户密码哈希(Mimikatz“特权::调试”“sekurlsa::登录密码”退出)。NTLM 密码哈希与 /rc4 参数一起使用。服务 SPN 类型也需要在 /service 参数中标识。最后,需要在 /target 参数中提供目标计算机的完全限定域名。不要忘记 /sid 参数中的域 SID。
mimikatz “kerberos::golden /admin:LukeSkywalker /id:1106 /domain:lab.adsecurity.org /sid:S-1-5-21-1473643419-774954089-2222329127 /target:adsmswin2k8r2.lab.adsecurity.org /rc4 :d7e2b80507ea074ad59f152a1ba20458 /service:cifs /ptt” 退出
保留计算机帐户
一旦攻击者能够访问计算机帐户密码哈希,该帐户就可以用作“用户”帐户来查询 Active Directory,但更有趣的用例是创建 Silver Tickets 以访问具有管理员权限的计算机托管服务。由于域计算机帐户密码更改策略更多地是一个指南,因为域控制器不会强制更改它们(默认设置为 30 天,但由计算机实际更改密码决定),因此一旦攻击者知道了电脑账号密码,就可以长期使用。即使计算机帐户密码多年未更改,Active Directory 也不会阻止计算机帐户访问 AD 资源。**
攻击者还可以阻止计算机帐户密码更改:
- 以下注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange = 1。
- 有一个客户端组策略设置可防止计算机更改最常用于支持 VDI(虚拟桌面)的密码。启用组策略设置“域成员:禁用计算机帐户密码更改”会阻止应用此 GPO 的计算机更改其 AD 计算机帐户密码。
“域成员:禁用计算机帐户密码更改策略设置确定域成员是否定期更改其计算机帐户密码。将其值设置为“启用”可防止域成员更改计算机帐户密码。**将其设置为禁用允许域成员更改由域成员的值指定的计算机帐户密码:最长计算机帐户密码期限策略设置,默认情况下为每 30 天。” - 域组策略“域成员:机器帐户密码最长期限”告诉加入域的计算机应多久更改其计算机帐户密码(尽管这更多的是指导方针,而不是规则)。默认情况下,该值设置为“30”,但如果设置为“0”,计算机将无法更改其密码。
- 有一个域控制器组策略设置“域控制器:拒绝计算机帐户密码更改”,该设置将域控制器设置为阻止客户端更新 AD 中的计算机帐户密码。
“此安全设置决定域控制器是否拒绝成员计算机更改计算机帐户密码的请求。默认情况下,成员计算机每 30 天更改一次计算机帐户密码。如果启用,域控制器将拒绝计算机帐户密码更改请求。
如果启用,此设置不允许域控制器接受对计算机帐户密码的任何更改。”
对于攻击者来说,即使在所有用户、管理员和服务帐户密码发生更改后,这是一种有效的(也是当前的)方法来保持访问。
在正常的 Kerberos 操作中,身份验证票证 (TGT) 用于为每个启用 Kerberos 的服务请求服务票证 (TGS)。Silver Tickets 通过直接注入伪造的 Kerberos TGS 票证来绕过此正常过程。访问目标服务可能需要多张银票。
检测银票:
检测白银票证的最佳机会是监视工作站、服务器和域控制器上的 Windows 安全事件,以了解域字段中存在异常(包括字段为空白或 null )的登录/注销事件。
关于黄金票据和白银票据的一些区别:
1.访问权限不同
- Golden Ticket: 伪造TGT,可以获取任何Kerberos服务权限
- Silver Ticket: 伪造TGS,只能访问指定的服务
2.加密方式不同
- Golden Ticket 由Kerberos的Hash—> krbtgt加密
- Silver Ticket 由服务器端密码的Hash值—> master key 加密
3.认证流程不同
- Golden Ticket 的利用过程需要访问域控(KDC)
- Silver Ticket 可以直接跳过 KDC 直接访问对应的服务器
原文链接:https://bbs.ichunqiu.com/thread-63461-1-1.html
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论